php form, kolla ifall email finns i databas

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Apr 2003

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();

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)

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

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.

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Apr 2003

varför ska jag köra mysqli_real_escape string ?

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)

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004
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.

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Apr 2003

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

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)

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Apr 2003

ä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"; }

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)

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004
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.

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Apr 2003
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.

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)