Form werkt niet...

Status
Niet open voor verdere reacties.

tv woofing

Gebruiker
Lid geworden
28 jul 2009
Berichten
26
Beste Helpmij'ers,

Ik heb een probleem met een email script.

Om te checken of alle info ingevuld is, gebruik ik if(isset($_POST['user']){..}else{..}

Alleen, als ik het script test, en opzettelijk bij 'user' niks invul, krijg ik niet de foutmelding die ik hoor te krijgen.

Dit is mijn code:

PHP:
<?php

if(isset($_POST['submitted'])){
$check = 0;
	if(isset($_POST['user'])){
	$user = $_POST['user']; 
	$check = $check + 1;
	} else { die('<p style="color:red;">Vul aub een gebruikersnaam in! Als u niet geregistreerd bent op het forum, voer dan een ander pseudoniem in.</p>'); }

		if(isset($_POST['email'])){
	$email = $_POST['email']; 
	$check = $check + 1 ;
	} else { die('<p style="color:red;">Vul aub een emailadres in! </p>'); }
		
		if(isset($_POST['url'])){
	$url = $_POST['url'];
	$check = $check + 1;
	} else { die('<p style="color:red;">Vul aub een url in! </p>'); }
	
		if(isset($_POST['extra'])){
	$extra = $_POST['extra']; 
	$check = $check + 1;
	} else { die('<p style="color:red;">Vul aub extra informatie in! </p>'); }
	

	
	$to = "ontvanger@site.be";
	$subject = "New bug reported by $user";
	$message = "A new bug was reported. Link to bug:\n$url\nExtra information contains:\n\n$extra\n\nSpecified e-mail address: $email";
	$from = "email@site.nl";
	$headers = "Headers: $from";
	
	mail($to,$subject,$message,$headers);
	
	
		if(mail($to,$subject,$message,$headers)){
		
		echo '<p style="color:red;">E-mail verstuurd! Bedankt voor je bijdrage! '.$check.' </p>'; } 
		else { echo '<p style="color:red;">Fatal error: message not sent</p>'; }
	
} 


?>

<p><form name="reportform" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<p>Bent u geregistreerd op het forum en zo ja, wat is uw gebruikersnaam?</p>
<p><input type="text" name="user" /></p>

<p>Wat is uw email-adres?</p>
<p><input type="text" name="email" /></p>

<p>Waar bevindt zich de bug? (Geef aub de URL)</p>
<p><input type="text" name="url" /></p>

<p>Wat is er precies fout? (extra uitleg)</p>
<p><textarea rows="10" cols="50" name="extra" ></textarea></p>

<input type="hidden" value="submitted" name="submitted" />

<p><input type="submit" value="Meld deze bug!" /></p>

</form></p>

Note: de $check gebruik ik om te kijken hoeveel ik heb ingevuld. Als ik één vak niet invul, hoor ik "3" te krijgen. Maar toch krijg ik steeds "4", desondanks het ontbreken van info.
 
Laatst bewerkt:
Je moet niet kijken of een variabele bestaat, maar of er wel iets in zit om het zo maar even te zeggen.

Zo doe ik het meestal:

PHP:
if ( trim ( $var ) != '' ) {

}

Dat betekent haal alle whitespace weg aan het begin en eind (spaties, enters, tabs, etc) en kijk of de inhoud dan niet gelijk is aan een lege string.

M.a.w. kijk of de inhoud van de variabele niet alleen bestaat uit whitespace.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan