php form, kolla ifall email finns i databas

Permalänk
Medlem

php form, kolla ifall email finns i databas

Tanken här är att när man skickar iväg form så ska den kolla ifall email inte redan finns i databasen.
Jag tror att jag har skrivit allt rätt men jag får :
Fyll i alla uppgifter
Fatal error: Function name must be a string in C:\AppServ\www\reg.php on line 43
Där rad 43 är = if(mysqli_num_rows($sql)>=1)

// Create connection $con = mysqli_connect($servername, $username, $password, $dbname); // Check connection if ($con->connect_error) { die("Connection failed: " . $con->connect_error); } // Tar value från form $username= $_POST['username']; $password= $_POST['password']; $repass = $_POST['repassword']; $email= $_POST['email']; // förhindra sql injection $username= stripcslashes($username); $password= stripcslashes($password); $username= mysqli_real_escape_string($con, $_POST['username']); $password= mysqli_real_escape_string($con, $_POST['password']); if(isset($_POST['submit'])) { //Uppmanar mig att fylla i alla uppgifter i form formuläret if($username && $password && $repass && $email){ } else { echo "Fyll i alla uppgifter"; } $sql = mysqli_query($con,$sql("SELECT FROM users (email) where (email = '$email')")); if(mysqli_num_rows($sql)>=1) { echo "name already exists"; } else { //Tar värden från formuläret och skriver in i sql $sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')"; } // Om allt gick som det ska eller inte if ($con->query($sql) === TRUE) { echo "Användaren skapades"; } else { echo "Något är fel " . $sql . "<br>" . $con->error; } } $con->close();

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Medlem

SQL förfrågan är felaktig och bör vara typ :
"SELECT email FROM users WHERE email = '$email'"

Sen kör du inte "mysqli_real_escape_string" på $email.

Permalänk
Medlem

varför ska jag köra mysqli_real_escape string ?

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Medlem
Skrivet av Lady:

varför ska jag köra mysqli_real_escape string ?

I DIN kod står det "// förhindra sql injection" innan du gör det så du borde veta.

https://sv.wikipedia.org/wiki/SQL-injektion

Dessutom har du i en tidigare tråd (http://www.sweclockers.com/forum/trad/1431135-php-kod-insert-...) blivit informerad om vad det är.

Permalänk
Medlem

Att bli informerad och att förstå är två olika saker.

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Medlem

även om jag ändrar till ->
så är problemet kvar med att function must be a string.

$sql = mysqli_query($con,$sql("SELECT email FROM users where (email = '$email')")); if(mysqli_num_rows($sql)>=1) { echo "name already exists"; }

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Medlem
Skrivet av Lady:

$sql = mysqli_query($con,$sql("SELECT email FROM users where (email = '$email')"));

Bör nog vara : $sql = mysqli_query($con,"SELECT email FROM users where email = '$email'");

http://php.net/manual/en/mysqli.query.php

Du bör nog gå tillbaka till att lära dig grunderna istället för att spela "kodbingo" (slumpmässigt ändra din kod tills det fungerar).
Sen är det viktigt att kunna läsa manualen. Där finns det ofta kod som man kan se hur funktionerna fungerar och används.
Jag försöker inte vara elak här. Du försöker bygga någonting som vida överstiger din förmåga vilket gör att du behöver någon som håller din hand vid varenda feltillfälle.

Permalänk
Medlem
Skrivet av iXam:

Bör nog vara : $sql = mysqli_query($con,"SELECT email FROM users where email = '$email'");

http://php.net/manual/en/mysqli.query.php

Du bör nog gå tillbaka till att lära dig grunderna istället för att spela "kodbingo" (slumpmässigt ändra din kod tills det fungerar).
Sen är det viktigt att kunna läsa manualen. Där finns det ofta kod som man kan se hur funktionerna fungerar och används.
Jag försöker inte vara elak här. Du försöker bygga någonting som vida överstiger din förmåga vilket gör att du behöver någon som håller din hand vid varenda feltillfälle.

Nja, kodbingo är det alltid när man lär sig och det är så man lär sig.
Jag tycker php sidan är röriga jämfört med wc3 där det är lättare att förstå men när man ska tillämpa i sitt test så funkar det inte alltid.

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)