Ergebnis 1 bis 7 von 7

Thema: registrierscript fehler

  1. #1

    registrierscript fehler

    Hi!

    Mal wieder macht ein Code mucken. Und ich hab keine Ahnung wie ich das da raus kirege! Unzawr: Ich habe einen Code der EIntragungen in eine Datenbank macht. Dannach prüft er RadioButtons. Dann macht er dementsprechend eintragungen. Oder mehr, er SOLL es. Aber er macht es net. ich habe es dannach mit Insert und Mit Update probiert...hilt alles net...

    Hier der Code:

    PHP-Code:
    <?php
    include ("dbconnect.php");
    ?>
    <html>
    <head>
    <h1>
    <center>Willkommen!</center>
    <h3><br>
    <CENTER>Hier können sie sich anmelden!</CENTER>
    </h3>
    </h1>
    </head>
    <body>
    Um sich anzumelden müssen sie einige Daten angeben. Diese Daten werden nicht an Dritte weitergegeben, sondern ausschließlich für diese Seite verwendet. Unter Umständen benutzen wir ihre E-Mail Adresse um ihnen einen Newsletter zu zuschicken.<br><br><br>
    <form>
    <font size=2 color=red>
    Bitte geben sie hier ihren gewünschten Usernamen ein:<br>
    <input name="username"><br><br>
    Bitte geben sie hier ihr gewünschtes passwort ein:<br>
    <input type="password" name="userpasswort"><br>
    Bitte bestätigen sie ihr Passwort:<br>
    <input type="password" name="passwortbestätigung"><br><br>
    Bitte geben sie ihre E-Mail Adresse ein:<br>
    <input name="usermail"><br><br>
    Wählen sie bitte ihre gewünschte Rasse:<br>
    <input type=radio name="userrasse" value="mensch">Mensch<br>
    <input type=radio name="userrasse" value="elf">Elf<br>
    <input type=radio name="userrasse" value="orc">Orc<br>
    <input type=radio name="userrasse" value="untot">Untot<br>
    (Menschen und Elfen sind Verbündete, wie auch Orcs und Untote. Alle Rassen haben ihre Vor- und nachteile!)<br><br>
    Bitte überprüfen sie ihre Angaben bevor sie ihre Angaben abschicken!<br>
    <input type="submit" name="abschicken" value="Anmelden"><br>
    </font>
    </form>
    <?php
    if (isset($abschicken))
    {
    $pruefpw "SELECT nick FROM user WHERE nick = '" $_GET['username'] . "'";
    $result mysql_query($pruefpw);
    if(
    mysql_num_rows($result) > 0
    {
    echo 
    "Ihr Username ist bereits belegt!";
    }
    else
    {
    if (
    $userpasswort == $passwortbestätigung)
    {
    if (
    $usermail != "")
    {
    //Datenbankeinträge machen:
    $datenbank "INSERT INTO user (nickname, passwort, email, waffe, schild, helm, rüstung, stein, holz, eisen, einwohner, steinlevel, eisenlevel, holzlevel, einwohnerlevel, geld, rasse) VALUES ('" .$username"', '$userpasswort', '$usermail', 'Holzschwert', 'Kein Schild', 'Kein Helm', 'Keine Rüstung', '100', '100', '100', '10', '1', '1', '1', '1', '100', '" .$userrasse"')";
    $eintragen mysql_query($datenbank);
    if (
    $userrasse == "elf")
    {
    $eintragung_a1 "UPDATE user (stärke, verteidigung, status, magie) VALUES ('10', '14', 'Lebend', '20') WHERE nickname = '$username'";
    $eintragung_b1 mysql_query($eintragung_a1);
    echo 
    '<meta http-equiv="refresh"content="0;URL=registriert.html">';
    }
    elseif (
    $userrasse == "mensch")
    {
    $eintragung_a1 "UPDATE user (stärke, verteidigung, status, magie) VALUES ('13', '13', 'Lebend', '10') WHERE nickname = '$username'";
    $eintragung_b1 mysql_query($eintragung_a1);
    echo 
    '<meta http-equiv="refresh"content="0;URL=registriert.html">';
    }
    elseif (
    $userrasse == "orc")
    {
    $eintragung_a1 "UPDATE user (stärke, verteidigung, status, magie) VALUES ('20', '5', 'Lebend', '5') WHERE nickname = '$username'";
    $eintragung_b1 mysql_query($eintragung_a1);
    echo 
    '<meta http-equiv="refresh"content="0;URL=registriert.html">';
    }
    elseif (
    $userrasse == "untot")
    {
    $eintragung_a1 "UPDATE user (stärke, verteidigung, status, magie) VALUES ('15', '10', 'Lebend', '15') WHERE nickname = '$username'";
    $eintragung_b1 mysql_query($eintragung_a1);
    echo 
    '<meta http-equiv="refresh"content="0;URL=registriert.html">';
    }
    }
    else
    {
    echo 
    'Anmeldung fehlgeschlagen. Sie müssen eine Mailadresse auswählen!';
    }
    }
    else
    {
    echo 
    "Anmeldung fehlgeschlagen! Ihr Passwort stimmt nicht mit der passwortbestätigung überein!";
    }
    }
    }
    ?>
    </body>
    </html>
    Was ich möchte ist: Der code soll funktionieren !^^


    Danke im Voraus!

  2. #2
    Die SQL Syntax ist falsch. Richtig sieht sie so aus:
    Code:
    UPDATE tabelle SET `feld` = 'wert' WHERE `feld` = 'wert'

  3. #3
    Das muss ein = hin und kein VALUES? dann is das anders als beim INSERT?

    Naja, ich verscuhs mal.


    editas klappt auch net...frustrierend....

    Geändert von raian (11.06.2005 um 10:49 Uhr)

  4. #4
    Müsste aber gehen. Probier zB das:
    Code:
    UPDATE `user`
    SET `stärke` = '15',
    `verteidigung` = '10',
    `status` = 'Lebend',
    `magie` = '15'
    WHERE `nickname` = '$username'
    Das musst du so bei allen UPDATEs machen, dann sollte das gehen....

  5. #5
    Mal von dem in meinen Augen grauenhaften HTML abgesehen, solltest du dir ordentliche SQL-Queries angewöhnen. Versuch einfach mal nach dem Query, der ausgeführt werden soll, ein echo mysql_error() und sag uns, ob und was ausgegeben wird. Außerdem könnte ein Fehler sein, dass eines deiner Felder "status" heißt. AFAIK gibt es auch ein MySQL-Schlüsselwort, das STATUS heißt. Deshalb solltest du deine Feld-Namen in `` setzen.

  6. #6
    Aha! Mit den `` gehts... aber sonst gehts auch imer ohne die... ich blick das alles net xD

  7. #7
    Meistens kann man die `` weglassen, aber wenn ein Feld von dir beispielsweise select heißt, wüsste MySQL bei einem solchen Query nicht, was da das zweite SELECT soll und würde nen Syntax-Fehler ausspucken:
    Code:
    SELECT select FROM tabelle WHERE bla = 1
    Wenn du aber den Feldnamen in `` setzt, weiß MySQL, dass das ein Feldname und kein Befehl ist
    Code:
    SELECT `select` FROM tabelle WHERE bla = 1
    Gut, nun nehmen wir an, deine Tabelle heißt nicht "tabelle" sondern, weil du Englisch bevorzugst, "table". Da würde MySQL auch streiken (glaube ich), weil TABLE auch ein MySQL-Schlüsselwort ist. Das Ergebnis wäre das selbe wie oben: Syntax-Fehler.
    Code:
    SELECT `select` FROM table WHERE bla = 1
    Wenn du den Tabellenname aber auch in `` setzt, weiß MySQL wieder, dass es kein Befehl sondern ein Name ist.
    Code:
    SELECT `select` FROM `table` WHERE bla = 1
    Um solche Probleme von vornherein zu vermeiden, sollte man alle Tabellen- und Feldnamen immer in `` setzen:
    Code:
    SELECT `select` FROM `table` WHERE `bla` = 1 AND `blub` = 2

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •