Varför fungerar inte min PHP-kod?


Bästa svaret

Första saker först …

Skicka inte någonsin användaruppgifter direkt till databasen. Det finns aldrig en anledning till varför det är en bra idé.

$name = mysqli\_real\_escape\_string($mysqli, $\_POST["name"]);

$pass = mysqli\_real\_escape\_string($mysqli, $\_POST["password"]);

Att använda real\_escape\_string() förhindrar att ditt skript hackas med en SQL-injektion. Om du behöver använda värdena någon annanstans kan du komma undan det när du skapar din fråga.

$name = $\_POST["name"];

$sql = "SELECT * FROM users WHERE username = "".mysqli\_real\_escape\_string($mysqli, $name).""";

Gör något liknande varje gång du skapar en SQL-fråga. Din INSERT -frågan borde också ha värden, antingen genom att fly från värdet som är lagrat i variabeln eller att undgå det när du skapar frågan.

Varför du ser ”bra jobb” utan att ange data …

Du ser aldrig till att det faktiskt är ingång. Ditt skript kommer att försöka interagera med databasen även om användaren inte har fyllt i formuläret ännu.

if(isset($\_POST["username"]) && isset($\_POST["password")) {

// put the rest of your script here

}

?>

Varför inga databasposter skapas.

Hmm ... Jag är inte säker. Speciellt eftersom det står att det fungerade .

Försök att göra ändringarna ovan och lägg sedan en kommentar på det här svaret för att meddela mig om det finns en förändring och vad den förändringen är och vi kan gå därifrån.

Kontrollera även dina serverloggar för att se om det finns några fel där. Om du inte kan göra det eller om fel är inaktiverade kan du försöka lägga till detta högst upp i skriptet:

ini\_set("error\_reporting", E\_ALL);

ini\_set("html\_errors", true);

ini\_set("display\_errors", "stdout");

Förresten ...

Dina etiketters for -attribut ska peka på elementets ID.

Du har ...

Du borde ha…

Svar

php

$ host = "AAAAAA"; $ user = "AAAAA"; $ pass = "AAAAAA"; $ db = "AAAAA";

$ connect = mssql\_connect ($ host, $ user, $ pass) eller die ("Kan inte ansluta"); $ database = mssql\_select\_db ($ db, $ connect) eller die ("Det går inte att ansluta till vald databas");

if (isset ($ \_POST (["submit"]))) {$ email = S\_POST ["e-post"]; $ firstname = S\_POST ["firstname"]; $ efternamn = S\_POST ["efternamn"]; $ pwd = S\_POST ["pwd"];

if trim($firstname) == "" || trim($lastname)=="" || trim($pwd)== ""

{

echo "You must enter both a firstname, lastname and password!!";

}

else

{

$sql = "INSERT INTO users ([email],[first\_name],[last\_name],[password])VALUES("$email","$firstname","$lastname","$pwd")";

$result = mssql\_query($sql);

if(!$result)

{

echo mssql\_error();

exit;

}

mssql\_free\_result($result);

mssql\_close();

echo "Data successfully inserted!!";

}

}

E-post:
Förnamn:
Efternamn:
Lösenord:
nput typ = "skicka" namn = "skicka" värde = "Registrera"

?>

så php co de jag ursprungligen gav dig var bara ett exempel, även en enkel ekokod fungerar inte. ja, jag har skrivit koden på notepad ++ och laddat upp den genom att klistra in koden i kompozer. se jag fick höra att det måste laddas upp med .php förlängning istället för hmtl och det är anledningen till att det inte fungerar. men jag tycker att det är förvirrande, så hur bifogar jag det till en viss länk på min indexsida. råd och låt mig veta vad du tycker. uppskattar det

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *