Forum > Övriga serverspråk > PHP
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
| Skriv ut1. 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.
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)
du saknar ju en slut parantes för VALUES.
Herregud, hur kunde jag missa det?!?! :P
Tack för hjälpen.