Archiv verlassen und diese Seite im Standarddesign anzeigen : [HTML] Anmeldeformular: Felder werden nicht an DB übergeben
Gravenstein 04-01-2009, 12:02 Hallo,
ich bin am verzweifeln, denn ich bin noch ziemlich neu was MySQL etc. angeht, doch hier geht es nur um das HTML Formular. Deswegen habe ich es auch hier gepostet.
Und zwar, benutze ich diesen HTML Code als Formular:
(Sieht weiter unten)
Das Formular wird zwar erfolgreich abgesendet an die Datenbank, jedoch sind die Salten in der die Daten drinstehen sollen leer.
Damit es besser verstanden wird hier ein Screen: http://img212.imageshack.us/img212/9526/hgfdgwu8.png
Zum Test habe ich erstmal nur username und passwort erstellt. Ich weiß, dass ich die anderen Felder noch hinzufügen muss, die auch im Formular stehen.
Wie muss das Formular verändert werden, damit das Formular die Daten überträgt?
Wäre nett wenn ihn mir helfen könnt.
ghostgambler 04-01-2009, 12:53 Bei mir steht der gesamte Code in einer Zeile...
Abgesehen davon fehlt da der wichtige Code - der PHP-Code, der in die Tabelle einträgt.
Gravenstein 04-01-2009, 13:30 Hier die Codes:
Anmeldeformular:
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<form action="senden.php" method="post" name="form" id="form">
<div width="50px">Anrede</div>
<select name="anrede">
<option>Herr</option>
<option>Frau</option>
</select><br />
<div width="50px">Benutzername:</div> <input type="text" name="benutzername" /><br />
<div width="50px">Vorname:</div> <input type="text" name="vorname" /><br />
<div width="50px">Name:</div><input type="text" name="name" /><br />
<div width="50px">Straße / Nr.:</div><input type="text" name="strasse / nr" /><br />
<div width="50px">PLZ / Ort:</div><input type="text" name="plz / ort" /><br />
<div width="50px">Land:</div><input type="text" name="land" /><br />
<div width="50px">E-Mail Adresse:</div><input type="text" name="email" /><br />
<div width="50px">Klamm-ID:</div><input type="text" name="klammid" /><br />
<div width="50px">Passwort:</div><input type="passwort" name="passwort" /><br />
</select><br />
<input type="submit" value="Send" />
<input type="reset" value="Reset" />
</form>
<body>
</body>
</html>
?>
PHP Code:
<?php
$host = "localhost";
$user = "///";
$passwd = "///";
$db=mysql_connect($host, $user, $passwd) or exit ("Keine Verbindung hergestellt!");
mysql_select_db("///") or exit ("Datenbank nicht geöffnet!");
$sqlbef = "insert into user (username, passwort, gruppe) values ('$username', '$passwort', '$gruppe')";
$sqlerg = mysql_query($sqlbef, $db) or die(mysql_error());
if ($sqlerg == true) {
echo"Anmeldung erfolgreich!";
} else {
echo"Anmeldung nicht erfolgreich!";
}
mysql_close($db);
?>
An der PHP-Datei liegt es nicht, denn wie ich schon gesagt habe Anmelden funktioniert.
Der HTML Code für das Formular ist falsch. Ich vermute die einzelnen Zeilen:
<div width="50px">Klamm-ID:</div><input type="text" name="klammid" /><br />
sind falsch. Diese müssen glaube ich irgendwie ein $ Zeichen enthalten wie in der PHP Datei. Ich weiß nur nicht wo?
Poste den Code doch bitte (gemäß unseren Regeln (http://www.php-resource.de/forum/showthread.php?s=&threadid=50454)) hier im Forum. Das hat den Vorteil, dass dein Problem auch später noch nachvollziehbar bleibt.
Gravenstein 04-01-2009, 14:00 So habe es geändert.
Perfekt!
Jetzt noch mal kurz einen Blick hier rein (http://www.php-resource.de/forum/showthread.php?s=&threadid=50454). Und ALLES befolgen! (error-reporting, ausgabe der SQL-Query)
Wie sieht es mit register_globals aus? On oder Off? Sollten generell off sein, nur dass du deine Programmierung auch daran anpassen solltest. ;)
Hallo,
sql Tip: user_ID
html Tip: das Passwort input Feld ist vom type passworD
vg
gourmet
Original geschrieben von gourmet
sql Tip: user_ID Nirgendwo wird von user_ID gesprochen???
Gravenstein 04-01-2009, 14:31 Original geschrieben von TobiaZ
Perfekt!
Jetzt noch mal kurz einen Blick hier rein (http://www.php-resource.de/forum/showthread.php?s=&threadid=50454). Und ALLES befolgen! (error-reporting, ausgabe der SQL-Query)
Wie sieht es mit register_globals aus? On oder Off? Sollten generell off sein, nur dass du deine Programmierung auch daran anpassen solltest. ;)
register_globals ist glaube ich off. Es handelt sich um einem Free Anbieter. Bei den meisten ist das off.
Trotzdem ich glaube ich bin zu blöd dafür. Ich kapiere es einfach nicht :goth:.
Original geschrieben von gourmet
Hallo,
sql Tip: user_ID
html Tip: das Passwort input Feld ist vom type passworD
vg
gourmet
Danke für den HTML Tip: habe es geändert. Eine User ID brauche ich nicht.
register_globals ist glaube ich off. Es handelt sich um einem Free Anbieter. Bei den meisten ist das off. Trotzdem ich glaube ich bin zu blöd dafür. Ich kapiere es einfach nicht . Wenn du nicht in der Lage bist $_POST zu verwenden, dann glaube ich das auch. Tut mir leid, aber das sind absolute Grundlagen. Wer die noch nicht drauf hat, sollte lieber noch ein bisschen mit HTML rumspielen. :teach:
*move* nach PHP, da hier offensichtlich kein HTML-Problem vorliegt.
Original geschrieben von TobiaZ
Nirgendwo wird von user_ID gesprochen???
^^jup, aber seine tabelle user enthält eine spalte ID die nirgends im query auftaucht???
Wenn du dir den Screenshot mal ansiehst, dürfte dir auffallen, dass er auto_increment gesetzt hat und die Vergabe der ID sinniger Weise dem SQL-Server überlässt.
Original geschrieben von TobiaZ
Wenn du dir den Screenshot mal ansiehst, dürfte dir auffallen, dass er auto_increment gesetzt hat und die Vergabe der ID sinniger Weise dem SQL-Server überlässt.
sehen kann man es nicht auf dem Screen, es sieht so aus, aber sicher sein anhand des Screen würde ich mir da nicht.
Naja, wenn man bedenkt, dass die zugehörige Query keine ID vorgibt, und alle anderen Daten (aufgrund des register_globals-Problems) leer sind, kann man schon davon ausgehen. Zumal man hier immer ein wenig Glaskugel benötigt. ;)
Jedenfalls würde ich nie (erst recht nicht pauschal) empfehlen, die UserID vom PHP-Script vorgeben zu lassen.
Gravenstein 05-01-2009, 13:16 So, es funktioniert jetzt alles wunderbar, ich habe es hinbekommen.
nevermind 05-01-2009, 23:17 Als kleinen Tip noch. Evtl. solltest du dich direkt mit
http://de.php.net/mysql_real_escape_string
vertraut machen. Ich kann es aus eigener Erfahrung nur empfehlen das direkt zu nutzen. Je nachdem was du übergibst äußerst Sinnvoll bzw. nicht zu ersetzen.
Dann doch direkt beim Anfang anfangen: SQL-Injections. real_erscape_string ist ja nur die Funktion, die es verhindert. Man sollte aber auch wissen, warum man sie nutzt. ;) Aber wichtiger Hinweis.
Gravenstein 18-01-2009, 13:36 Hallo, da bin ich wieder.
Ich möchte kein anderes Thema aufmachen, da es sich hierbei um eine Frage zum Anmeldeformular bzw. MySQL handelt.
Und zwar, möchte ich, dass, wenn sich jemand über das Anmeldeformular anmeldet, dass die Uhrzeit und das Datum automatisch in der DB eingetragen werden. Nur weiß ich jetzt nicht wie ich das machen könnte.
Hilfreich wäre ein Code den ich im Abfragefenster einfügen könnte?
Weiß jemand wie so ein Code aussieht?
mach es direkt mit SQL. DATETIME und NOW.
peter
php_fussel 18-01-2009, 18:31 ... also so:
$sqlbef = "insert into user (username, passwort, gruppe, 'datum')
values ('$username', '$passwort', '$gruppe', 'now()')"
... Du kannst aber auch eine Variable im PHP-Script anlegen und mit der funktion ... time() war das glaube ich ... füllen und den Wert als Timestamp speichern (hat einige Vorteile).
... bla, bla
$datum = time();
...
$sqlbef = "insert into user (username, passwort, gruppe, 'datum')
values ('$username', '$passwort', '$gruppe', '$datum')"
... und was die hier angeschprochene ID betrifft ... solche
Generierungen überlässt man üblicherweise der Datenbank
per autoinkrement (wie auch schon gesagt wurde).
Gruß php_fussel
Gravenstein 18-01-2009, 19:49 Ich habe es jetzt hinbekommen.
|
|