|
You last visited: Today at 07:32
Advertisement
MySQL INSERT INTO trägt nicht alle Daten aus Formular ein
Discussion on MySQL INSERT INTO trägt nicht alle Daten aus Formular ein within the Web Development forum part of the Coders Den category.
08/26/2012, 14:52
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 1,533
Received Thanks: 810
|
MySQL INSERT INTO trägt nicht alle Daten aus Formular ein
Hallo, ich wollte mir eine kleine Regi basteln.
Dabei stoße ich auf das Problem, dass Username sowie Password eingetragen werden aber die E-Mail nicht. Hier einmal der komplette Code sowie DB:
Das Formular:
PHP Code:
<link rel="stylesheet" type="text/css" href="../style.css" /> <h3>Registrierung</h3> <form action="index.php?page=reg" method="post" id="regist"> <table width="400" border="0" align="center"> <tr> <td align="left"><b>Benutzername:</b></td> <td><input name="user" type="text" size="30" maxlength="30" /></td> </tr> <tr> <td align="left"><b>Passwort:</b></td> <td><input name="pass" type="password" size="30" maxlength="30" /></td> </tr> <tr> <td align="left"><b>E-Mail</b></td> <td><input name="email" type="text" size="30"/></td> </tr> </table> <input name="submit" type="submit" value="Registrieren" /> </form>
Die MySQL-Tabelle:
PHP Code:
-- -- Tabellenstruktur für Tabelle `user` --
CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user` varchar(30) COLLATE latin1_german2_ci DEFAULT NULL, `pass` varchar(30) COLLATE latin1_german2_ci DEFAULT NULL, `email` varchar(50) COLLATE latin1_german2_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=42 ;
-- -- Daten für Tabelle `user` --
Der PHP-Code:
PHP Code:
<?php
$server = ''; $username = ''; $password = '';
mysql_connect($server, $username , $password) or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("") or die ("Datenbank konnte nicht ausgewählt werden");
$user = $_POST['user']; $pass = $_POST['pass']; $email = $_POST['email'];
if(isset($_POST['submit'])){ $md5 = md5($pass);
mysql_query("INSERT INTO user (user, pass, email) VALUES ('$user', '$md5', '$email') LIMIT 1");
} ?>
Die MySQL-Daten passen natürlich.
Hoffe, da kann mir wer helfen
|
|
|
08/26/2012, 15:18
|
#2
|
elite*gold: 52
Join Date: Feb 2012
Posts: 61
Received Thanks: 2
|
Also bei mir kommt
Quote:
|
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1
|
Ohne LIMIT 1 werden die Daten mit email eingetragen
|
|
|
08/26/2012, 15:49
|
#3
|
elite*gold: 0
Join Date: Mar 2010
Posts: 1,533
Received Thanks: 810
|
Hm, stimmt nun gehts bei mir auch, hatte vorher nur das Problem, das die Datenbankeinträge doppelt gemacht wurden, danke dir
|
|
|
08/26/2012, 15:51
|
#4
|
elite*gold: 52
Join Date: Feb 2012
Posts: 61
Received Thanks: 2
|
Gerne
|
|
|
08/26/2012, 17:49
|
#5
|
elite*gold: 0
Join Date: Mar 2010
Posts: 1,533
Received Thanks: 810
|
Um das Thema nochmal aufzugreifen, wie kann ich nun prüfen ob die Felder, user pass email, befüllt sind?
Anhand des bisherigen Scriptes oben...
|
|
|
08/26/2012, 17:59
|
#6
|
elite*gold: 0
Join Date: Jan 2009
Posts: 70
Received Thanks: 19
|
Entweder schon beim eintragen überprüfen ob was drin ist ansonsten ne Fehlermeldung ausgeben.
Beim absenden des Formulars auf Inhalt prüfen (Javascript) oder aber mit PHP wieder ausgeben lassen --> SELECT * FROM user WHERE user='$user' <-- würde jetzt noch mit mysql_fetch_object verarbeiten und dann ausgeben und überprüfen.
MfG, Mdna
|
|
|
08/26/2012, 18:10
|
#7
|
elite*gold: 52
Join Date: Feb 2012
Posts: 61
Received Thanks: 2
|
Also per Javascript würde ich es nicht machen.
Du kannst auch per if abfrage prüfen ob das Feld leer ist.
|
|
|
08/26/2012, 18:25
|
#8
|
elite*gold: 0
Join Date: Jan 2009
Posts: 70
Received Thanks: 19
|
Quote:
Originally Posted by -b4ck
Also per Javascript würde ich es nicht machen.
Du kannst auch per if abfrage prüfen ob das Feld leer ist.
|
Mit Javascript kann man es schon überprüfen bevor es nur in berührung mit PHP kommt, das is deutlich effektiver
Und in welcher Sprache willste die If-Abfrage machen?
|
|
|
08/26/2012, 18:29
|
#9
|
elite*gold: 52
Join Date: Feb 2012
Posts: 61
Received Thanks: 2
|
Quote:
Originally Posted by mdna
Mit Javascript kann man es schon überprüfen bevor es nur in berührung mit PHP kommt, das is deutlich effektiver
Und in welcher Sprache willste die If-Abfrage machen?
|
Ja aber Javascript kann ich einfach aus stellen.
Ganz einfach mit php
|
|
|
08/26/2012, 18:31
|
#10
|
elite*gold: 727
Join Date: Feb 2012
Posts: 1,206
Received Thanks: 303
|
Du kannst es so abfragen:
PHP Code:
if($_POST["name"] == ""){ echo "name ist leer!"; } else { echo "name hat den Inhalt \"".$_POST["name"]."\"!"; }
Oder auch mit der Funktion empty()
PHP Code:
if ( empty ( $d ) ) { echo 'Variable $d ist leer.<br />'; }
|
|
|
08/26/2012, 18:33
|
#11
|
elite*gold: 0
Join Date: Jan 2009
Posts: 70
Received Thanks: 19
|
Nun warum nich, grundsätzlich würde ich das ganze nochmal mit JScript überprüfen.
Außerdem --> mit ner entsprechenden Option kann man verhindern das die Seite ohne JScript einfach so geht ;D
|
|
|
08/26/2012, 20:12
|
#12
|
elite*gold: 99
Join Date: Apr 2011
Posts: 730
Received Thanks: 236
|
Quote:
Originally Posted by mdna
Nun warum nich, grundsätzlich würde ich das ganze nochmal mit JScript überprüfen.
Außerdem --> mit ner entsprechenden Option kann man verhindern das die Seite ohne JScript einfach so geht ;D
|
Nie auf clientseitige überprüfungen verlassen!
|
|
|
08/26/2012, 20:22
|
#13
|
elite*gold: 0
Join Date: Jan 2009
Posts: 70
Received Thanks: 19
|
Ganz verlassen sowieso nicht, aber überprüfen und direkt abfangen wenn da schon ein Feld leer ist, spart Traffic und Serverperformance, da nicht das ganze PHP-Script aufgerufen werden muss sondern nur ein Formular.
MfG, Mdna
|
|
|
08/26/2012, 20:34
|
#14
|
elite*gold: 25
Join Date: Apr 2010
Posts: 1,019
Received Thanks: 331
|
Teilweise richtig mdna*.
Letztendlich benutzen wir JavaScript doch nur für die User, damit die Überprüfungen direkt dargestellt werden. Wenn man rein technisch gesehen eine Überprüfung beim Formular vornimmt und dann noch einmal bei PHP hat man unnützen Code in JavaScript.
Was machst du denn, wenn die Leute die Werte faken? Also quasi die Überprüfung einfach überspringen und dann leere Werte übergeben? Ist ja nicht allzuschwer, mit einer kurzen Deaktivierung von JS...
Es sollten alle Daten die einfach kommen noch einmal von PHP überprüft werden (bzw. NodeJS).
|
|
|
08/26/2012, 20:50
|
#15
|
elite*gold: 0
Join Date: Jan 2009
Posts: 70
Received Thanks: 19
|
Um jetzt nicht ne ewige Grundsatzdiskussion über Überprüfung und soweiter anzufangen (oder eher um sie frühzeitig zu stoppen) --> mal wieder back to topic:
Wie die Mehrheit schon gesagt hat solltest du deine Daten BEVOR du sie in die DB schreibst mit PHP überprüfen, siehe dazu Codebeispiel von DasPrinzip
MfG, Mdna
|
|
|
 |
Similar Threads
|
[Fehler] mysql backup einfügen / mysql startet nicht
07/29/2012 - Metin2 Private Server - 0 Replies
Hallo Leute,
dieser fehler geht mir so langsam auf die nerven, und hoffe mir kann hier jemand weiter helfen.
Also, ich hab mir ein backup geholt von meiner datenbank (/var/db/mysql)
den Inhalt
account
common
hotbackup
|
[Hilfe]XAMPP macht MySql nicht auf !! pls gebe tv daten !!
10/08/2010 - Metin2 Private Server - 1 Replies
Also
XAMPP macht MySql nicht auf !! pls gebe tv daten !!
per pn wer mir hilft bekommt 20thx's plss
habe hp usw. schon eingerichtet und ip auch schon eingestellt :D bitte hilft mir
|
Charakter trägt in der Lobby braunen Mantel - im Spiel ist er nicht sichtbar
07/19/2010 - Diablo 2 - 3 Replies
Hallo,
die Überschrift sagt eigentlich schon alles.
Ich habe den Bluebird-Bot mit 2 CD-Keys verwendet.
Kann mir einer helfen, dieses Problem zu beheben?
Danke
|
[Release] MySQL Insert system
07/18/2010 - CO2 PServer Guides & Releases - 18 Replies
Ello!
First of all, this is NOT sourcedependent, which means you can use this on any source without modifying the code.
This is an replacement for all of you who still uses normal MySQL queries. Use this code to clean up, make it easier and more orginazed.
Here's how it looks:
Example: (Original (LOTF for example))
|
[HELP]C# MySQL Command insert if not exsist?
09/04/2009 - CO2 Private Server - 8 Replies
MySqlCommand Command = new MySqlCommand("INSERT INTO accounts(AccountID,LogonType) VALUES ('" + fillBox.Text + "','3')", Connection);
Now, I want it to check if the value of fillBox.Text doesn't excist before making the account, so It wont create the same account. I tried making it in a try, that didn't help, it just make several accounts with the same name.
~Bas
|
All times are GMT +1. The time now is 07:34.
|
|