• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

PHP string teilweise checken

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
ich bin dabei ein einfaches Formular zu validieren und bei einem Feld sieht das bisher so aus:
Code:
// Check if contact detail is available.
if ($_POST['contact_detail'] == '' || $_POST['contact_detail'] == 'enter your phone or email') {
	$errors[] = "Whoops, you forgot to fill out a field.";
}
Der checkt jetzt ob das Feld ganz leer ist oder ob es den initial value enthält. Wie bekomme ich das hin, dass er jetzt den initial value prüft auch wenn er nur teilweise vorhanden ist.

Er soll also den error array auch ausgeben wenn in dem Feld so was steht wie enter you oder enter your ph oder email oder or email...

Die live Seite (und das Markup) kann man hier sehen: kntrast.com

Thanks,
Max
 

skuZz

Rheinischer Krummstiel
Registriert
30.12.07
Beiträge
377
ich würde noch zwei if schleifen einbauen. allerdings hast du noch ein anderes problom. wer garantiert dir, dass jemand auch eine telenummer oder email eingibt. Nach deinem Code, kann man jeden mist eintippen. Würde deshalb entsprechende parameter einbauen!
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
Ich würde ne Regex nehmen und auf das prüfen was rein soll und nicht auf das was eventuell drin sein könnte, aber nicht soll
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Was zeno sagt. Ansonsten empfehle ich empty() statt $xyz==''. :)
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Ja moment ich mach mal kurz...schick euch dann den Code.
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Voila...

Code:
<?php
	// Required functions.
	// Check if valid email.
	function valid_email($str) {
		return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
	}
	
	//Check if valid phone.
	function valid_phone($str){
		return ( ! preg_match("/^([0-9])+$/i", $str)) ? FALSE : TRUE;
	}
	
	// Wait 3 seconds.
	sleep(3);

	// Check if contact detail is available.
	if (valid_email($_POST['contact_detail']) == FALSE || valid_phone($_POST['contact_detail']) == FALSE) {
		$errors[] = "Whoops, looks like your email or phone number is invalid.";
	}

	//Display erros in log.
	if (is_array($errors)) {
		while (list($key,$value) = each($errors)) {
			echo $value;
		}
	}
	
	else {
		//Complete fields.
		$contact_detail = $_POST['contact_detail'];
		
		//Email Header.
		$to = '[email protected]';
		$from = "From: " . $_POST['$contact_detail'];
		$subject = "Potential client inquiry";
		
		//Email Body.
		$body = "Hi,\nI am a potential client. Contact me ($contact_detail) and don't forget to be polite.";
		
		//Send Email
		if (mail($to, $subject, $body, $from)) {
			echo "We've received your digits. We'll contact you within the next 24 hours.";
		}
		
		else {
			echo "Whoops, looks like it didn't work. Try again in a second.";
		}
	} 
?>
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Fehler drinn...muss kurz weg! Wenn ihr ihn findet könnt ihr ihn ja posten...
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
So jetzt gehts:
Code:
// Required functions.
// Check if valid email.
function valid_email($str) {
	return (! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}

//Check if valid phone.
function valid_phone($str){
	return (! preg_match("/^([0-9])+$/i", $str)) ? FALSE : TRUE;
}

// Wait 3 seconds.
sleep(3);

// Check if contact detail is available.
if (valid_email($_POST['contact_detail']) == FALSE) {
	if (valid_phone($_POST['contact_detail']) == FALSE) {
		$errors[] = "Whoops, looks like your email or phone number is invalid.";
	}
}

Das einzige was ich nicht hinbekomme ist, dass ich validiere ob die Telefon Nummer mindestens 5 Zeichen lang ist... ich weiss nicht genau wo ich nach <5 prfüfen muss...
 
Zuletzt bearbeitet: