php pflichtfeld + abbrechen

patrick1527

Mitglied
Hi

Ich bin gerade dabei ein paar Tutorials durch zugehen um in PHP besser zu werden =).
Jetzt bin ich dabei mit hilfe von Tutorials ein G-Book zu coden das auch soweit funktioniert, jetzt möchte ich gerne pflichtfelder hinzufügen, wenn diese nicht ausgefüllt werden soll eine fehlermeldung ausgegeben werden und der vorgang soll abgebrochen werden (Das senden)

die ausgabe das ein feld nicht ausgefüllt wurde habe ich geschaft aber das abbrechen funktioniert irgendwie nicht =(
würde mich über hilfe freunen

PHP:
<?php
echo '
<form action="" method="post">
<table>
<tr><td>Name:</td><td> <input type="text" name="username"></td></tr>
<tr><td>Email:</td><td> <input type="text" name="email"></td></tr>
<tr><td>Homepage:</td><td> <input type="text" name="homepage"></td></tr>
<tr><td colspan="2">Nachricht:<br>
<textarea name="nachricht" cols="35" rows="8"></textarea><td></tr>
<tr><td colspan="2"><input type="submit" value="Eintragen" name="senden"></td></tr>
</center></form> 
</table>
</form>
';
IF(isset($_POST["senden"])){
include('datenbank.php');
$username = $_POST["username"];
$email = $_POST["email"];
$homepage = $_POST["homepage"];
$nachricht = $_POST["nachricht"];
$zeit = time();
$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht, zeit) VALUES('','$username','$email','$homepage','$nachricht','$zeit')";
$eintragen = mysql_query($code);
IF($eintragen){
$pflichtfeld = $_POST["username"];
}
if($pflichtfeld == "")
{
print "<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Namen</b> anzugeben!</b><br>";
}
else
{
echo "Beitrag wurde hinzugefügt";
}
}
 
Setz einfach die Prüfung (if($pflichtfeld vor dem Datenbank eintrag. Wenn prüfung ok ist dann eintragen ansonsten nicht. If else zweig oder du schreib noch ein If Anweisung dazu.
 
PHP:
<?php 
IF(isset($_POST["senden"])){ 

	$pflichtfeld = mysql_escape_string($_POST["username"]); 
	if(empty($pflichtfeld) || $pflichtfeld == "") {
		$fehler.="<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Namen</b> anzugeben!</b><br>"; 

	if(empty($fehler) || $fehler==""){
		include('datenbank.php'); 
		$username = mysql_escape_string($_POST["username"]); 
		$email = mysql_escape_string($_POST["email"]); 
		$homepage = mysql_escape_string($_POST["homepage"]); 
		$nachricht = mysql_escape_string($_POST["nachricht"]); 
		$zeit = time(); 
		$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht, zeit) VALUES('','$username','$email','$homepage','$nachricht','$zeit')"; 
		$eintragen = mysql_query($code); 
		echo "Beitrag wurde hinzugefügt"; 
		}
} 
Else{
echo $fehler;	
echo ' 
<form action="" method="post"> 
<table> 
<tr><td>Name:</td><td> <input type="text" name="username"></td></tr> 
<tr><td>Email:</td><td> <input type="text" name="email"></td></tr> 
<tr><td>Homepage:</td><td> <input type="text" name="homepage"></td></tr> 
<tr><td colspan="2">Nachricht:<br> 
<textarea name="nachricht" cols="35" rows="8"></textarea><td></tr> 
<tr><td colspan="2"><input type="submit" value="Eintragen" name="senden"></td></tr> 
</center></form>  
</table> 
</form> 
'; 
}
?>

Mfg Splasch
 
Zuletzt bearbeitet:
Hi

Danke für deine hilfe nur leider gibt er mir eine fehlermeldung aus =(
Parse error: parse error, unexpected $ in /var/www/web9/html/news/neu.php on line 36

mfg
 
Hast du danach noch was stehen? Ich hab dir den Code abgeändert.(Hab noch vergessen eine Klammer zu setzen)

PHP:
<?php 
IF(isset($_POST["senden"])){ 

	$pflichtfeld = mysql_escape_string($_POST["username"]); 
	if(empty($pflichtfeld) || $pflichtfeld == "") {
		$fehler.="<p class=\"normal\"><b>Fehler!</b><br>Bitte vergessen Sie nicht Ihren <B>Namen</b> anzugeben!</b><br>"; 
	}
	if(empty($fehler) || $fehler==""){
		include('datenbank.php'); 
		$username = mysql_escape_string($_POST["username"]); 
		$email = mysql_escape_string($_POST["email"]); 
		$homepage = mysql_escape_string($_POST["homepage"]); 
		$nachricht = mysql_escape_string($_POST["nachricht"]); 
		$zeit = time(); 
		$code = "INSERT INTO gbuch (id, username, email, homepage, nachricht, zeit) VALUES('','$username','$email','$homepage','$nachricht','$zeit')"; 
		$eintragen = mysql_query($code); 
		echo "Beitrag wurde hinzugefügt"; 
		}
} 
Else{
echo $fehler;	
echo ' 
<form action="" method="post"> 
<table> 
<tr><td>Name:</td><td> <input type="text" name="username"></td></tr> 
<tr><td>Email:</td><td> <input type="text" name="email"></td></tr> 
<tr><td>Homepage:</td><td> <input type="text" name="homepage"></td></tr> 
<tr><td colspan="2">Nachricht:<br> 
<textarea name="nachricht" cols="35" rows="8"></textarea><td></tr> 
<tr><td colspan="2"><input type="submit" value="Eintragen" name="senden"></td></tr> 
</center></form>  
</table> 
</form> 
'; }
?>

Mfg Splasch
 
Hi
Danke funktioniert so weit außer das er die fehler meldung nicht mehr ausgibt (weil er warscheindlich auf die zeigen.php umspringt) sonst funktioniert es

mfg

edid/ liegt leider nicht daran.
wenn ich ohne angaben einen eintrag machen möchte zeigt er mir nurnoch die bisjetzt vorhandenen beiträge an aber ohne fehlermeldung =(
mfg²
 
Zuletzt bearbeitet:
edid/2/
finde den fehler nicht =( wie kann ich es so einstellen das er eine fehlermeldung ausgibt und nicht dann nurnoch die bereits vorhandenen einträge anzeigt ?

/edid
sry wegen 2.post
mfg
 
Zurück