Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Jobbigt SQL fel

Hejsan, av den här koden:

<?php
session_start();
include("config.php");

if(isset($_SESSION["user_id"])){
    header("Location:index.php");
    exit;
}

if(isset($_POST["submit"])){
    $username = protect($_POST["username"]);
    $password = $_POST["password"];
    $errors = array();
    if(!$username){
        $errors[] = "You need to supply a username!";
    }
   
    if($username){
        $checkusername = mysql_query("SELECT * FROM accounts WHERE username = '".$username."'") or die(mysql_error());
        if(mysql_num_rows($checkusername) == 1){
            $errors[] = "The username you supplied is already taken!";
        }
    }
   
    if($username){
        if(!ctype_alnum($username)){
            $errors[] = "Your username can only contain a-z A-Z 0-9";
        }
    }
   
    if(!$password){
        $errors[] = "You must enter a password!";
    }
   
    if($password){
        if(!ctype_alnum($password)){
            $errors[] = "Your password can only contain a-z A-Z 0-9";
        }
    }
   
    if(!$errors){
    $new_pw = md5("kikugalanet" . $password);
        $insert = mysql_query("INSERT INTO accounts(username,password) VALUES('".$username."','".$new_pw."'") or die(mysql_error());
        $errors[] = "Your account is now created!";
    }

}
?>
<html>
<head>
    <title>Register</title>
</head>
<body>
Register on PFlyff.<br>
Then please fill in this information:<br>
<form action="register.php" method="post">
Username:<br>
<input type="text" name="username"><br>
Password:<br>
<input type="password" name="password"><br>
<br>
<input type="submit" value="Register" name="submit">
</form>
<?php
if(isset($errors)){
    foreach($errors as $e){
        echo $e . "<br>";
    }
}
?>
</body>
</html>

får jag det här felet?

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 '' at line 1


Har sökt igenom hur länge som helst nu tycker jag.

Its not about how hard you can hit, its how hard you can get hit, and still go on.
Taggar: php, SQL,
ID: #15292 | Skapades: 2009-04-08 20:15:25 | Tråden har 4 svar och har lästs 205 gånger.

voigtan
voigtan

Gradering

#15293

1. Vilken rad är det?

[kod].....SELECT * FROM accounts WHERE username = '".$username."'...[/kod]gissar jag på?

2. Prova skriv ut SQL frågan i ren text

3. Varför hämtar du ut all data ( * ) när det är bara 1 fält du vill plocka ut (kolla om användarnamnet är upptaget, extremt onödigt att ta ut mer data än vad du behöver.

4. Kollar att du har rätt namn på dina fält.

underlättar också om man få reda på hur din databas tabell ser ut.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15293 | Skapades: 2009-04-08 20:48:16

Det är på INSERT satsen.
Jag vet att det är onödigt att hämta ut allt.
Det är bara tillfälligt.
Det här blir resultatet:
INSERT INTO accounts(username,password) VALUES('pettersoft','36ddaa78842860d9a9733ee8f7a5919a' när jag skriver ut det (echo)

Its not about how hard you can hit, its how hard you can get hit, and still go on.
ID: #15294 | Skapades: 2009-04-08 20:53:07

voigtan
voigtan

Gradering

#15295

du saknar ju en slut parantes för VALUES.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15295 | Skapades: 2009-04-08 20:53:38

Herregud, hur kunde jag missa det?!?! :P
Tack för hjälpen.

Its not about how hard you can hit, its how hard you can get hit, and still go on.
ID: #15296 | Skapades: 2009-04-08 20:56:07
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy