PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage !?!?!


KJ187
04.12.2002, 18:21
Ich will ein Login bauen.
Ich bekomme aber immer die echo "Fehler beim eintrag"

Was sagt ihr dazu... indet ihr den fehler ?

<?
//Festlegung der Serverdaten:
$dbserver = "";
$dbuser = "";
$dbpwd = "";
$dbname = "";


if((isset($_POST['Benutzername'])) && (isset($_POST['Kennwort'])))
/*Überprüft ob eine Eingabe stattgefunden hat*/
{
// Herstellen einer Datenbankverbindung:
$verbindung = @mysql_connect("$dbserver","$dbuser","$dbpwd");

echo (mysql_error());

if (!$verbindung) {
echo "Keine Verbindung möglich!\n";
exit;
}

echo (mysql_error());

// Passwort verschlüsseln:
//$Kennwort = md5($Kennwort);

// Mysql Query zum speichern des Eintrags:
$query = "INSERT INTO Benutzerdaten SET (Benutzername,Kennwort) VALUES ('$Benutzername','$Kennwort')";

echo (mysql_error());

// Ausführen der Query

$result = mysql_db_query($dbname,$query,$verbindung);
if($result)
{
echo "Der Benutzer \"$username\" wurde erfolgreich in die Datenbank eingetragen";
echo "Username: \"$Benutzername\".";
echo "Passwort: \"$Kennwort\".";
echo "Loggen Sie sich bitte mit Ihren Daten neu ein !";
}
else
{
echo "Warnung:\n";
echo "Fehler beim Eintragen";
}
echo (mysql_error());
}
?>

Shark
12.12.2002, 13:52
Deine Query ist falsch.

Sie muss folgenden Aufbau haben:
INSERT [insertoptionen] INTO tablename [(columnlist)] VALUES (value),(...), ...

Also muss es bei Dir heissen:
$query = "INSERT INTO Benutzerdaten (Benutzername,Kennwort) VALUES ('$Benutzername','$Kennwort')";

Das SET ist zuviel.
Wenn Du SET verwendest, dann müsste die Abfrage folgendermassen aussehen:
INSERT [insertoptionen] INTO tablename SET column1=Value1, column2=Value2 ,...

martin
12.12.2002, 14:58
versuchs mal mit dem code:


<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);

// ----- Festlegung der Serverdaten ----- //

$dbserver = "";
$dbuser = "";
$dbpwd = "";
$dbname = "";

// ----- Überprüft ob eine Eingabe stattgefunden hat ----- //

if ((isset($_POST['Benutzername'])) && (isset($_POST['Kennwort']))) {

if ((empty($_POST['Benutzername'])) || (empty($_POST['Kennwort']))) {
echo 'Benutzername oder Kennwort ungültig';
exit;
}

// ----- Herstellen einer MySQLverbindung ----- //

$verbindung = @mysql_connect("$dbserver","$dbuser","$dbpwd") or die("Es konnte keine Verbindung zum MySQL Server aufgebaut werden.<br />MySQLfehler: ".mysql_error());

// ----- Datenbank auswählen ----- //

@mysql_select_db($dbname) or die ("Datenbank nicht gefunden<br />Mysqlfehler: ".mysql_error());


// ----- Passwort verschlüsseln ----- //
//$Kennwort = md5($Kennwort);

// ----- addslashes ----- //

$Benutzername = addslashes($Benutzername);
$Kennwort = addslashes($Kennwort);

// ----- Query ausführen ----- //

$result = @mysql_query("
INSERT INTO Benutzerdaten
(Benutzername,Kennwort) VALUES ('$Benutzername','$Kennwort')",$verbindung)
or die("Query fehlgeschlagen<br />MySQLfehler: ".mysql_error());

@mysql_close($verbindung);

// ----- im Erfolgsfall Ergebnis ausgeben ----- //

print <<<bla
Der Benutzer $username wurde erfolgreich in die Datenbank eingetragen.<br /><br />
Username: $Benutzername<br />
Passwort: $Kennwort<br /><br />
Loggen Sie sich bitte mit Ihren Daten neu ein!
bla;

} else {
echo 'Benutzername oder Kennwort nicht angegeben!';
}
exit;
?>



ich hab das nur schnell geschrieben und nicht getestet. sollte aber funktionieren.
muss ich das weiter erläutern?

du solltest aber zumindest den benutzernamen und das passwort weiter überprüfen z.b. auf eine mindestlänge oder ungewünschte zeichen.
wo die variable $username plötzlich herkommt ist mir nicht klar.