php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
PHP-Programmierung funktioniert nicht richtig


 
disco4
26-05-2003, 15:14 
 
In meinen Programm funktioniert folgendes nicht.


Es dient dazu ein Formular zu erzeugen mit 6 Eingabefelder.
Wenn die Felder falsch oder nicht ausgefüllt sind wird der Feldname
rot dargestellt.
Bei dem Feld Vorname wird aber keine Eingabe akzeptiert. Die Feld-
beschreibung bleibt rot und die Eingabe verschwindet nach der Enterein-
gabe.
Bei allen anderen Feldern funktioniert es so wie es soll.
Es erscheint auch keine Fehlermeldung.
Wo habe ich hier einen Fehler gemacht.
Das PHP-programm hängt hinten dran.
PS: Der Editor hat einige Einrückungen nicht übernommen!!
Vielleicht hat jemand eine Idee woran es liegen kann.

Willi

<html>
<head>
<title>Benutzer</title>
</head>
<body>
<?
include "mysql.inc";

// 1) VARIABLEN anlegen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$vorname_control=true;
$name_control=true;
$geburtstag_control=true;
$email_control=true;
$strasse_control=true;
$postleitzahl_control=true;
$total_control=true;
$vorname="";
$name="";
$geburtstag="";
$email="";
$strasse="";
$postleitzahl="";


// 2) Überprüfen ob Formulardaten empfangen werden ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// if(isset($name)){ // unsichere Methode --Daten können auch per GET übegeben werden
if($HTTP_POST_VARS['control'])
{
print "Daten empfangen<br>";

// 3) Übertragen der empfangenenen Daten in die lokalen Variablen
$vorname=trim($HTTP_POST_VARS['vorname']);
$name=trim($HTTP_POST_VARS['name']);
$geburtstag=trim($HTTP_POST_VARS['geburtstag']);
$email=trim($HTTP_POST_VARS['email']);
$strasse=trim($HTTP_POST_VARS['strasse']);
$postleitzahl=trim($HTTP_POST_VARS['postleitzahl']);

// 4) Überprüfen der empfangenenen Daten
if(!(strlen($vorname)>0))
{
$total_control=false;
$vorname_control=false;
}

if(!(strlen($name)>0))
{
$total_control=false;
$name_control=false;
}

if(!(preg_match("/^\d\d\.\d\d\.\d{4}$/",$geburtstag)))
{
$total_control=false;
$geburtstag_control=false;
}
// Email soll kein Pflichtfeld sein -->
// Nur wenn überhaupt eine E-mail angegeben wurde, diese überprüfen.
if(strlen($email)>0)
{
if(!(preg_match("/^[a-zA-Z\d_\-\.]+@[a-zA-Z\d_\-]+\.[a-zA-Z]{2,4}$/",$email)))
{
$total_control=false;
$email_control=false;
}

}

if(!(strlen($strasse)>0))
{
$total_control=false;
$strasse_control=false;
}

if(!(strlen($postleitzahl)>0))
{
$total_control=false;
$postleitzahl_control=false;
}
// 5) Reaktion auf Auswertung
// entweder: kein Fehler --> Daten in DB schreiben
if($total_control==true)
{
$connect=mysql_connect($host,$username,$password);
mysql_select_db('db_brasilien',$connect);
mysql_query("insert into t_frauen_aus_recife (vorname,name,geburtstag,email,strasse,postleitzahl) values ('$vorname','$name','$geburtstag','$email','$strasse','$postleitzahl')",$connect);
mysql_close();

// Bestätigungsmail versenden

print "Ihre Daten wurden entgegengenommen<br>";
exit;
}

// oder: --> Formular erneut anzeigen mit hervorgehobenen Fehlern
if($total_control==false)
{
print "Bitte korrigieren Sie die Rot markierten Felder<br>";

}

}

?>

<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="text" vorname="vorname" value="<? echo $vorname ?>">
<? if($vorname_control==true){echo "Vorname";}else{echo "<font color='red'>Vorname *</font>";} ?><br>
<input type="text" name="name" value="<? echo $name ?>">
<? if($name_control==true){echo "Name";}else{echo "<font color='red'>Name *</font>";} ?><br>
<input type="text" name="geburtstag" maxlength="10" value="<? echo $geburtstag ?>">
<? if($geburtstag_control==true){echo "Geburtstag";}else{echo "<font color='red'>Geburtstag *</font>";} ?>&nbsp;&nbsp;Format: (03.03.1900)<br>
<input type="text" name="email" value="<? echo $email ?>">
<? if($email_control==true){echo "Email";}else{echo "<font color='red'>Email *</font>";} ?>&nbsp;&nbsp;(Email ist keine Pflichteingabe)<br>
<input type="text" name="strasse" value="<? echo $strasse ?>">
<? if($strasse_control==true){echo "Strasse";}else{echo "<font color='red'>Strasse *</font>";} ?><br>
<input type="text" name="postleitzahl" value="<? echo $postleitzahl ?>">
<? if($postleitzahl_control==true){echo "Postleitzahl";}else{echo "<font color='red'>Postleitzahl *</font>";} ?><br>
<input type="hidden" name="control" value="data">
<input type="submit" value="abschicken">
</form>


<?
//print "<hr>";
//show_source(__FILE__);
?>
</body>
</html>

php-tags by Abraxax

 
RobertTheHero
26-05-2003, 15:36 
 
<input type="text" vorname="vorname" value="<? echo $vorname ?>">


das Attribute "vorname" kenn ich persönlich nicht ;)

 
MelloPie
26-05-2003, 20:31 
 
:respekt:

 
Titus
27-05-2003, 12:07 
 
um Robert´s Hinweis noch etwas deutlicher zu machen:

<input type="text" vorname="vorname" value="<? echo $vorname ?>">

das rot markierte muss weg.

P.S. - noch ein Tipp: Wenn du normalen Text in eine HTML-Seite (ganz besonders in Formularfelder) ausgibst, benutze die Funktion htmlentities (http://www.php-resource.de/manual.php?p=function.htmlentities).


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:17 Uhr.