De ce nu funcționează codul meu PHP?


Cel mai bun răspuns

Primele lucruri mai întâi …

Nu transmite niciodată datele furnizate de utilizator direct în baza de date. Nu există niciodată un motiv pentru care să fie o idee bună.

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

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

Utilizarea real\_escape\_string() va împiedica piratarea scriptului cu o injecție SQL. Dacă trebuie să utilizați valorile în altă parte, atunci le puteți scăpa atunci când creați interogarea.

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

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

Faceți ceva similar de fiecare dată când creați o interogare SQL. Cererea dvs. INSERT ar trebui să aibă și valori scăpate, fie prin scăparea valorii stocate în variabilă, fie prin scăparea acesteia atunci când creați interogarea. „bdbd3b205f”>

De ce vedeți „o treabă bună” fără a introduce date …

Nu vă asigurați niciodată că există de fapt este de intrare. Scriptul dvs. va încerca să interacționeze cu baza de date, chiar dacă utilizatorul nu a completat încă formularul.

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

// put the rest of your script here

}

?>

De ce nu sunt create înregistrări ale bazei de date.

Hmm ... Nu sunt sigur. Mai ales că se spune că a funcționat .

Încercați să faceți modificările de mai sus, apoi postați un comentariu la acest răspuns pentru a mă anunța dacă există o schimbare și care este acea modificare și putem merge de acolo.

Verificați și jurnalele serverului pentru a vedea dacă există erori acolo. Dacă nu puteți face acest lucru sau erorile sunt dezactivate, puteți încerca să adăugați acest lucru în partea de sus a scriptului:

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

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

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

Apropo ...

Atributele for ale etichetelor dvs. ar trebui să indice ID-ul unui element.

Aveți ...

Ar trebui să aveți ...

Răspuns

php

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

$ connect = mssql\_connect ($ host, $ user, $ pass) sau die ("Imposibil de conectat"); $ database = mssql\_select\_db ($ db, $ connect) sau die („Nu se poate conecta la baza de date selectată”);

if (isset ($ \_POST (["submit"]))) {$ email = S\_POST ["e-mail"]; $ prenume = S\_POST ["prenume"]; $ lastname = S\_POST ["lastname"]; $ 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!!";

}

}

Email:
Prenume:
Nume:
Parolă:
nput type = "submit" name = "submit" value = "Register"

?>

deci php co De ce ți-am dat inițial a fost doar un exemplu, chiar și un cod de ecou simplu nu funcționează. Ei bine, am scris codul pe Notepad ++ și l-am încărcat lipind codul în kompozer. vezi mi sa spus că trebuie încărcat cu extensia .php în loc de hmtl și acesta este motivul pentru care nu funcționează. dar mi se pare confuz, deci cum îl pot atașa la un anumit link din pagina mea de index. vă rog un sfat și spuneți-mi ce credeți. apreciez-o

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *