PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem: PHP-Script nach füllen eines Formulars ausfüllen


Shenzu
15.05.2012, 08:43:10
Hallo liebe Community,

ich habe mich entschlossen eine neue Sprache zu lernen und habs mal mit PHP versucht ^^.

Ich bin aber schon direkt auf ein Problem gestoßen und zwar sieht das wie folgt aus.

register.php enthällt sowohl php als auch HTML. Das HTML-Formular enthällt ein Textfeld, zwei Passwordfelder und einen Submit-Button. Ich möchte nun dass das PHP-Script ausgeführt wird, sobald man den Senden-Button gedrückt hat. Jedoch bekomme ich immer sobald ich die Seite aufrufe die Fehlermeldungen das Variablen undefined sind. Daher habe ich dann eine Prüfung eingebaut die checkt, ob vom Formular etwas per $_POST geschickt wurde. Das klappt auch soweit allerdings wird dann beim ersten Aufruf der Seite gleich die Fehlermeldung im else-Teil ausgegeben, klar kann ich die weg machen, jedoch will ich ja später wenn der User ein Feld nicht ausgefüllt hat eine Meldung zurückgeben.

Ich weiß das ich die Fehler beim ersten durchlauf einfach abfangen kann indem ich das

Ich stelle einfach mal meinen Code hier rein und ich hoffe ihr könnt mir irgendwie helfen ;P

<? include("db_connection.php");

if(isset($_POST['tbx_username'], $_POST['tbx_passwd'], $_POST['tbx_passwd2']))
{
$new_user = $_POST['tbx_username'];
$new_passwd = $_POST['tbx_passwd'];
$new_passwd2 = $_POST['tbx_passwd2'];
}


if(empty($new_user) || empty($new_passwd) || empty($new_passwd2))
{
echo "Ein oder mehrere Felder sind nicht gefüllt!";
}
else
{
$var=0;
$result = readData("localhost", "user1", "password1", "testdb", "SELECT username FROM users");
while($row = mysql_fetch_object($result))
{
if($row->username === $new_user)
{
$var=1;
}
}
if($var==0)
{

}
else
{
echo "User ist bereits vorhanden!";
}
}


?>

<form action="register.php" method="POST">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="Text" name="tbx_username" maxlength="10" size="15">
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<input type="Password" name="tbx_passwd" maxlength="10" size="15">
</td>
</tr>
<tr>
<td>
Repeat:
</td>
<td>
<input type="Password" name="tbx_passwd2" maxlength="10" size="15">
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="Submit" value="Registrieren">
</td>
</tr>
</table>

urvater
15.05.2012, 13:35:43
Solange das Formular nicht abgesendet wird, sind die POST Variablen, die du zur Auswertung nutzt noch nicht vorhanden. Also prüft man einfach ob es einen Request mit Postdaten gibt, bevor man die Prüfung startet.
Ansonsten halt die Ausgabe des Formulars.

if($_SERVER['REQUEST_METHOD'] == 'POST']{
#führe hier die Prüfung durch
} else {
#zeige hier das Formular an
}

Shenzu
16.05.2012, 11:09:37
Hat wunderbar geklappt, danke dir.