|
 |
|
| Autor |
Nachricht |
@nd| Neuer [User]

Anmeldung: 04.06.08 Beiträge: 4
|
Verfasst am: 21.07.2008, 21:24 Titel: Problem mit Registrierungs Script |
|
|
Hallo,
ich bin gerade dabei für meine Seite eine Registrierungs Funktion zu bauen und komme an einer Stelle nicht weiter. Mein Script sieht momentan so aus, noch recht simpel, aber ich wollte, dass erstmal das funktioniert:
| Code: | <?
$server = "localhost";
$benutzer = "benutzer";
$kennwort = "pw";
$verbindung = mysql_connect ($server, $benutzer, $kennwort);
mysql_select_db("db_name", $verbindung);
$username = $_POST["nick"];
$eintrag = "INSERT INTO user (`id`, `nick`) VALUES ('', '$username')";
$eintragen = mysql_query($eintrag);
echo "eingetragen!!!";
?>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form action="register2.php" method="post">
Name: <input name="nick" type="text" value="">
<input type="submit" name="senden" value="Absenden" />
</form>
</body>
</html> |
Es funktioniert soweit auch, dass wenn man einen Namen in das Feld schreibt und auf den Button klickt, dass er in die Datenbank eingetragen wird. Das Problem ist nur, das er auch einen Datenbankeintrag schreibt wenn man diese Seite aufruft, dieser Eintrag ist allerings leer. Auch wenn man die Seite aktualisiert wird ein leerer Eintrag in die DB geschrieben.
Früher hatte ich deswegen folgenden code verwendet:
| Code: | if($senden == Absenden)
{
$username = $_POST["nick"];
$eintrag = "INSERT INTO user (`id`, `nick`) VALUES ('', '$username')";
$eintragen = mysql_query($eintrag);
echo "eingetragen!!!";
} |
Also das wenn man den Button drückt das script ausgeführt wird und nicht beim laden der Seite. Doch wenn ich es so verwende passiert gar nichts wenn ich auf den Button drücke.
Meine Frage ist also wie ich es erreiche das das Script erst ausgeführt wird, wenn ich den Button drücke.
Vielen Dank schonmal
Mfg
@nd|
|
|
| Nach oben |
|
 |
chris1988 Bekannter [User]

Anmeldung: 12.12.05 Beiträge: 1596
|
Verfasst am: 22.07.2008, 00:03 Titel: |
|
|
prüf doch einfach, ob $_POST["nick"] leer ist oder nicht.
Nur wenn er nicht leer ist -> ausführen.
if (!$username == "") { ...
Ich hoffe mal, dass du das ganze noch gegen SQL-Injection absicherst...  _________________ Mancher ertrinkt lieber,
als daß er um Hilfe ruft.
(Wilhelm Busch)
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 22.07.2008, 07:18 Titel: |
|
|
| Code: |
<?
$server = "localhost";
$benutzer = "benutzer";
$kennwort = "pw";
if($_POST['senden'])
{
$verbindung = mysql_connect ($server, $benutzer, $kennwort);
mysql_select_db("db_name", $verbindung);
$username = $_POST["nick"];
$eintrag = "INSERT INTO user (`id`, `nick`) VALUES ('', '$username')";
$eintragen = mysql_query($eintrag);
echo "eingetragen!!!";
}
?>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form action="register2.php" method="post">
Name: <input name="nick" type="text" value="">
<input type="submit" name="senden" value="Absenden" />
</form>
</body>
</html>
|
beim vorigen code, mit dem | Code: | | if($senden==Absenden) | ist klar das nie was passiert ist, weil dei if-abfrage immer false war...
1. $senden sollte der wert vom button sein, also $senden = $_POST['senden']
2. $senden == Absenden?! Absenden ist genau gar nichts 
|
|
| Nach oben |
|
 |
@nd| Neuer [User]

Anmeldung: 04.06.08 Beiträge: 4
|
Verfasst am: 22.07.2008, 11:49 Titel: |
|
|
Super mit "$senden = $_POST['senden']" funktioniert es jetzt, danke
Und vielen Dankfür den Hinweis mit SQL-Injection, davon habe ich bisher noch gar nichts gehört gehabt, fange erst so richtig an mich in php und mysql einzuarbeiten, hatte vor einiger Zeit damit zwar schonmal gearbeitet aber auch nicht sehr ausführlich.
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde
|
| Seite 1 von 1 |
|  |