mysql
Sven
- datenbank
Hi!
Habe folgendes Problem:
Ich mache mir für meine Homepage gerade ein Login bereich.
Habe mit der Registrierung angefangen. Habe mir zuerst eine index.php erstellt:
<?php
require("config.php");
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die ("Username oder Passwort falsch!");
mysql_select_db("svensdelphisource_de_db") or die ("Die Datenbank existiert nicht");
?>
<html>
Willkommen auf meiner Page!
Hier kannst du dich <a href="login.html">Registrieren</a>
</html>
Tabelle (Username, Password, eMail) exixtiert schon!!
Habe nur den Code wieder raußgenommen, weil beim 2 mal dann ein Fehler kam! Dann habe ich die Regist.html gemacht:
<html>
<head>
<td>
<th width="75%" align="left" valign="top">
<br>
<div style="text-align:left; border:thin solid #3462B9;">
<font color="#000000">
<div align="center">Registrieren</div></div><br><br>
<FORM NAME="login" ACTION="register.php" METHOD="POST">
<table>
<tr><td valign="top">Username:</td><td width="5"> </td><td><input type="text" name="username" size="30"></td></tr>
<tr><td valign="top">Passwort:</td><td width="5"> </td><td><input type="text" name="password" size="30"></td></tr>
<tr><td valign="top">eMail:</td><td width="5"> </td><td><input type="text" name="email" size="30"></td></tr>
<tr><td colspan="3" height="10"><input type="hidden" name="login" value="0017881"></td></tr>
<tr><td colspan="2"> </td><td><input type="submit" value="Abschicken"> <input type="reset" value="Zurücksetzen"></td></tr>
</table>
</form>
<br>
</font>
</div>
</div>
</th>
</td>
</tr>
</table>
</font>
</html>
Wenn man JETZT auf Abschicken klickt, ruft sich die register.php auf. Dann bekomme ich ein FEHLER! Der code sieht so aus:
<?php
$Result=sprintf("INSERT INTO News (Username, Password, eMail) VALUES ('%s', '%s', '%s')", $_POST['login']['username'], $_POST['login']['password'], $_POST['login']['email']);
mysql_query($Result) OR die ("Fehler!");
echo "Ihre Registrierung war erfolgreich!";
?>
Was mache ich falsch? Ich hoffe ihr könnt mir helfen!
MFG
Sven!
Huhu Sven
Dann bekomme ich ein FEHLER!
Wohl eher ein "Fehler!", so steht es zumindest in Deinem Code.
<?php
$Result=sprintf("INSERT INTO News (Username, Password, eMail) VALUES ('%s', '%s', '%s')", $_POST['login']['username'], $_POST['login']['password'], $_POST['login']['email']);
mysql_query($Result) OR die ("Fehler!");
echo "Ihre Registrierung war erfolgreich!";
?>
Was mache ich falsch? Ich hoffe ihr könnt mir helfen!
Du lässt Dir die Fehlermeldung nicht ausgeben ( mysql_error() ).
Die Variable welche den SQL-Query enthält als $Result zu bezeichnen ist meiner Meinung nach etwas unglücklich gewählt und verwirrend.
Ein "result" (resource identifier) wird von der Funktion mysql_query zurückgegeben.
Häufig anzutreffen sind z.B. folgende Benennungen der Variablen:
$query = 'SQL-Statement';
$r = mysql_query($query);
$row = mysql_fetch_assoc($r);
oder
$sql = 'SQL-Statement';
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
oder etwas ähnliches
Viele Grüße
lulu
Hallo,
Wenn man JETZT auf Abschicken klickt, ruft sich die register.php auf. Dann bekomme ich ein FEHLER! Der code sieht so aus:
Was kommt denn für ein Fehler???
Mit freundlichen Grüßen,
Michael Nagler
Hallo,
Wenn man JETZT auf Abschicken klickt, ruft sich die register.php auf. Dann bekomme ich ein FEHLER!
Was für einen? Wie lautet die Fehlermeldung?
die Funktion mysql_error() und der Inhalt von $php_errormsg können Dir wahrscheinlich weiterhelfen.
Gruß Henk
Bekomme die Meldung: Table 'svensdelphisource_de_db.news' doesn't exist
<?php
$Result=sprintf("INSERT INTO News (Username, Password, eMail) VALUES ('%s', '%s', '%s')", $_POST['login']['username'], $_POST['login']['password'], $_POST['login']['email']);
mysql_query($Result) OR die ("Fehler!");
echo "Ihre Registrierung war erfolgreich!";
?>Was mache ich falsch? Ich hoffe ihr könnt mir helfen!
MFG
Sven!
Hello,
$sql = "INSERT INTO News (Username, Password, eMail) VALUES ('".$_POST['username']."',' ".$_POST['password']."', '".$_POST['email']."')";
----
$res = mysql_query($sql,$con) OR die (mysql_error());
if ($res)
{
echo "Ihre Registrierung war erfolgreich!";
}
?>
Bekomme immer die Meldung: Table 'svensdelphisource_de_db.news' doesn't exist
-----
Entweder hast Du dich oben verschrieben oder unten die Fehlermeldung falsch wiedergegeben.
Die Tabellennamen und Feldnamen sind case sensitive
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi!
Habe den Code mal genommen den du gepostet hast. Da bekam ich diese Meldung zurück: Parse error: parse error, expecting T\_VARIABLE' or
'$'' in /data/members/free/tripod/de/s/v/e/svensdelphisource/htdocs/register.php on line 3
Hm... muss ich mich vielleicht nochmal verbinden zu der datenbank?
Bei der index.php wird man verbunden mit der Datenbank. Und ausgewählt wird die auch. Bleibt die Verbindung? Oder nochmal verbinden bevor hinzufügen?
Hello,
$sql = "INSERT INTO News (Username, Password, eMail) VALUES ('".$_POST['username']."',' ".$_POST['password']."', '".$_POST['email']."')";
----
$res = mysql_query($sql,$con) OR die (mysql_error());if ($res)
{
echo "Ihre Registrierung war erfolgreich!";
}?>
Hello,
$sql = "INSERT INTO News (Username, Password, eMail) VALUES ('".
$_POST['username']."',' ".$_POST['password']."', '".
$_POST['email']."')";
-----
<<ohne Worte>>
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi!
??? Sorry, noch nih mit mysql gearbeitet. Heute das 1 mal. Kann das noch nocht so gut. Wo ist den der Fehler?
Hello,
$sql = "INSERT INTO News (Username, Password, eMail) VALUES ('".
$_POST['username']."',' ".$_POST['password']."', '".
$_POST['email']."')";
-----<<ohne Worte>>
Hello,
ich hatte nur einen Klecks auf meiner nichtvorhandenen Brille. Muss gerade an die Antwort von Erwin denkan auf "was geht denn da im Kopf vor?". So war das wohl bei mir eben.
Also, Fehler kann ich so auch nicht entdecken. Kann sein, dass ich den übersehe, glaube aber eher, dass der viel weiter oben steht.
Außerdem solltest Du nicht die $_POST-Variablen direkt ins SQL-Statement stopfen. Die müssen vorher "kastriert" werden.
Wenn magic_quotes_gpc(), dann stripslashes() mit jedem Wert und DANN AUF JEDEN FALL mysql_escape_string() auf jeden Wert anwenden.
Und wenn es nur so ein paar Werte sind, kann man auch skalare Scriptvariablen verwenden:
$name = mysql_escape_string(stripslashes($_POST["name"]));
$email = mysql_escape_string(stripslashes($_POST["email"]));
$pw = mysql_escape_string(stripslashes($_POST["password"]));
und die dann ins Statement einsetzen. Dann wird das nicht so ein Häkchenhaufen...
$table = "News"; ## bitte Schreibweise prüfen!
$sql = "insert into $table (Username, Password, eMail) VALUES ('$name','$pw','$email')";
Und Schuss.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
Habe den Code mal genommen den du gepostet hast. Da bekam ich diese Meldung zurück: Parse error: parse error, expecting
T\_VARIABLE' or
'$'' in /data/members/free/tripod/de/s/v/e/svensdelphisource/htdocs/register.php on line 3
$sql = "INSERT INTO News (Username, Password, eMail) VALUES ('".$_POST['username']."',' ".$_POST['password']."', '".$_POST['email']."')";
----
$res = mysql_query($sql,$con) OR die (mysql_error());if ($res)
{
echo "Ihre Registrierung war erfolgreich!";
}?>
Hab mich da eben selber verlesen. Also ohne zu wissen, was in den Zeilen 2,3,4 steht, ist das schwer nachvollziehbar.
Hast Du beim Verbinden die Connection-Number auch in $con gespeichert?
$con = mysql_connect( ...);
$db = mysql_select_db($dbname,$con);
...
Liebe Grüße aus http://www.braunschweig.de
Tom
hi,
ne hatte ich noch nicht! HAbe aber jetzt gemqacht. kommt trozdem gleiche Fehlermleudntg :((((
$sql = "INSERT INTO News (Username, Password, eMail) VALUES ('".$_POST['username']."',' ".$_POST['password']."', '".$_POST['email']."')";»» »» »» $res = mysql_query($sql,$con) OR die (mysql_error());
if ($res)
{
echo "Ihre Registrierung war erfolgreich!";
}?>
$con = mysql_connect( ...);
$db = mysql_select_db($dbname,$con);
Huhu Sven
na also klappt doch ;-)
Bekomme die Meldung: Table 'svensdelphisource_de_db.news' doesn't exist
Offensichtlich gibt es also in der Datenbank "svensdelphisource_de_db"
keine Tabelle "news".
Viele Grüße
lulu