• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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: