• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem beim senden an eine MySQL-DB

Status
Für weitere Antworten geschlossen.

Ritschie

Neues Mitglied
Hi,

wie der Titel schon sagt habe ich ein Problem beim senden von Daten an eine MySQL Datenbank.

Und zwar handelt es sich hierbei um ein Formular zur Regestration von neuen Benutzern.
Ich habe es jetzt so weit geschafft, das mir die PHP ordnungsgemäß angezeigt wird und auch eine Verbindung zur Datenbank herstellt
Jedoch wenn ich die eingegebenen Daten Absende kommt der querryfehler:

"Aufgrund eines Fehlers konnte der Eintrag nicht hinzugefügt werden!"

könnt ihr mir helfen den Fehler zu finden?
(Sorry fals ich den Code nicht richtig eingeschoben habe... bin relativ neu auf dem gebiet und lerne mir das ganze mittels ein paar tutorials und der DVD Video2Brain selbst jedoch ist vieles für mich noch nicht so verständlich)

Hier der Code:
PHP:
<head>
    <title>Regestrierung auf BEAR-ONLINE</title>
</head>
    <?php
    $db=mysql_connect('localhost' ,'[Username]' ,'[Password]') 
or die('Could not connectet: '.mysql_error());
    mysql_select_db('generaljack_03') or die('Could not select database'); 
    
    if ($submit == "Absenden") {
        $user=$username;
        $pass=$userpas;
        $email=$usermail;
        $sql="INSERT INTO 'users' 
        (ID, UserName, UserPass, UserSession, UserMail) VALUES 
        ('', '".$user."', '".$pass."', '', '".$email."');";
        $exe = mysql_query($sql);
        #echo($exe);
        #echo($sql);
        
    if ($exe == "1") {
        echo("<font color='#000000'>Eintrag wurde erfolgreich hinzugefügt!</font>");
    } 
    else {
        echo("<font color='#000000'>Aufgrund eines Fehlers konnte der
        Eintrag nicht hinzugef&uuml;gt werden!</font>");
        };
    };
    ?>
    <form method="post">
        Benutzername:<input type="text" name="username" /><br>
        Passwort:<input type="password" name="userpass" /><br>
        E-Mail:<input type="text" name="usermail" /><br>
        <input type="submit" name="submit" value="Absenden">
    </form>
Da ich relativ neu auf dem gebiet bin bitte ich euch, mir anfängerfreundliche Antworten zu schreiben^^
Wie oben erwähnt gibt es noch vieles was ich einfach noch nicht so richtig zuordnen kann :)
 
Zuletzt bearbeitet:
Du hast ein ; in deiner Abfrage, daran wird es wahrscheinlich liegen, probier mal folgendes:
PHP:
$sql = "INSERT INTO 'users' (UserName, UserPass, UserMail) VALUES ('$user', '$pass', '$email')";
$exe = mysql_query($sql);
Die Variablen zuweisungen sind unnötig ($user = $username), außerdem brauchst du nur die Felder in einer Abfrage angeben, die befüllt werden.

Hoffe dass ich dir weiterhelfen konnte
 
So, dann versuche ich Dir mal ein paar anfängerfreundliche Tipps zu geben. Ganz wichtig: Niemals die Verbindungsdaten hier reinposten! Du hast ja schon 2 Debug-Ausgaben in Deinem PHP-Code. Mich würde erstmal interessieren, wie die Ausgabe von $sql aussieht. Ob das sql-query richtig ausgeführt wird, kannst Du so nicht abfragen. In $exe erhältst Du die Resourcen-Id des sql-queries. Wenn die Abfrage nicht erfolgreich war, steht meines Wissen NULL drin. Deswegen reicht die Abfrage:
PHP:
if ($exe) {
   echo "ok";
} 
else {
   echo "nicht ok";
}
Gruß thuemmy
 
Erst einmal DANKE das ihr mir helft :)))))

Ich hab das eben ausprobiert.
$sql und
$exe
wie oben angeführt geändert

-> Keine Veränderung

auch die if abfrage habe ich wie oben gezeigt korrigiert und wieder wird mir "Aufgrund eines Fehlers konnte der Eintrag nicht hinzugefügt werden!" ausgegeben also "nicht OK"

Auch in der DB hab ich nachgesehen ob sich was getan hat leider fehlanzeige

Kann das an den Parametern der DB liegen?
hab die zusammenstellung aus einem tut jedoch wurde in diesem die userdaten nur mittels eines SQL befehls direkt in PhP my admin in die DB geschrieben...
 
kommt das hier: 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 ''users' (UserName, UserPass, UserMail) VALUES ('Richard', '', 'ritschie1988@hotm' at line 1

Keine Ahnung was das bedeutet^^

MySQL version: MySQL 5.1
 
Versuchs mal so:

PHP:
$sql = "INSERT INTO `users` (`UserName`, `UserPass`, `UserMail`) VALUES ('$user', '$pass', '$email')";
 
Du hast ein ; in deiner Abfrage, daran wird es wahrscheinlich liegen, probier mal folgendes:
PHP:
$sql = "INSERT INTO 'users' (UserName, UserPass, UserMail) VALUES ('$user', '$pass', '$email')";
$exe = mysql_query($sql);
Die Variablen zuweisungen sind unnötig ($user = $username), außerdem brauchst du nur die Felder in einer Abfrage angeben, die befüllt werden.

Hoffe dass ich dir weiterhelfen konnte

Versuchs mal so:
PHP:
$sql = "INSERT INTO `users` (`UserName`, `UserPass`, `UserMail`) VALUES ('$user', '$pass', '$email')";

Ja, ein Tabellenname gehört nicht in Hochkommas sondern entweder ohne oder zwischen ``
 
Danke Gollhardt mit den `` funktioniert es.
die $sql spuckt nun dies aus:
INSERT INTO `users` (`UserName`, `UserPass`, `UserMail`) VALUES ('Richard', '', '[email protected]')

jedoch wird das Passwort nicht mit übertragen...
irgendwo is da noch der Wurm drin...
bzw wisst ihr wie ich das PW beim eintragen verschlüssele ?

hir der code der das ganze dann beim login auf der Page mit der Datenbank vergleicht:
PHP:
function check_user($name, $pass)
{
    $sql="SELECT UserId
    FROM users
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
    LIMIT 1";
    $result= mysql_query($sql) or die(mysql_error());
    if ( mysql_num_rows($result)==1)
    {
        $user=mysql_fetch_assoc($result);
        return $user['UserId'];
    }
    else
        return false;
}
 
Danke jetzt nachdem ich das ganze verschlüsselt habe wird auch das PW übertragen^^

wer sich das ganze mal ansehen möchte kann dies gerne unter:
http://generaljack.ge.funpic.de/BEAR-online/login.php ansehen^^
(Vorsicht Augenkrebsgefahr^^)

is zwar noch nicht viel dahinter aber dafür das ich erst 2 tage dran sitz und vorher keine ahnung davon hatte find ichs recht nice^^

Ich möchte mich nochmals bei euch allen für die grosse Hilfe bedanken.
Echt ein tolles Forum^^
Wir lesen uns sicher mal wieder

Grüsse Richard

@mod pls close da fehler gefunden und erledigt
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben