Miért nem működik a PHP-kódom?


Legjobb válasz

Először az első …

Ne soha ne adja át a felhasználók által szolgáltatott adatokat közvetlenül az adatbázisba. Soha nincs oka annak, hogy ez jó ötlet.

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

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

Az real\_escape\_string() használata megakadályozza, hogy a szkriptet SQL-injekcióval feltörjék. Ha máshol kell használnia az értékeket, akkor a lekérdezés létrehozásakor elkerülheti azt.

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

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

Csináljon valami hasonlót minden alkalommal, amikor SQL-lekérdezést hoz létre. A INSERT lekérdezésnek meg kell szöknie az értékeknek is, vagy megkerülve a változóban tárolt értéket, vagy pedig a lekérdezés létrehozásakor.

Miért látja a „jó munkát” az adatok beírása nélkül…

Soha nem győződjön meg róla, hogy valóban van-e a bemenet. A szkript megpróbálja kölcsönhatásba lépni az adatbázissal, még akkor is, ha a felhasználó még nem töltötte ki az űrlapot.

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

// put the rest of your script here

}

?>

Miért nem jönnek létre adatbázisrekordok.

Hmm ... nem vagyok benne biztos. Különösen azért, mert azt mondja, hogy működött .

Próbálja meg végrehajtani a fenti módosításokat, majd tegyen egy megjegyzést ehhez a válaszhoz, hogy tudassa velem, ha van változás és mi ez a változás, és onnan mehetünk.

Ellenőrizze a szerver naplóit is, hogy vannak-e hibák. Ha ezt nem tudja megtenni, vagy a hibák le vannak tiltva, akkor próbálja meg ezt hozzáadni a szkript tetejéhez:

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

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

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

Egyébként ...

A címkék for attribútumainak az elem azonosítójára kell mutatniuk.

Önnek van

Szüksége van…

Válasz

php

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

$ connect = mssql\_connect ($ host, $ user, $ pass) vagy die ("Nem sikerült csatlakozni"); $ database = mssql\_select\_db ($ db, $ connect) vagy meghal ("Nem sikerült csatlakozni a kiválasztott adatbázishoz");

if (isset ($ \_POST (["beküldés"])))) {$ email = S\_POST ["e-mail"]; $ keresztnév = S\_POST ["keresztnév"]; $ vezetéknév = S\_POST ["vezetéknév"]; $ 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-mail:
Keresztnév:
Vezetéknév:
Jelszó:
nput type = "submit" name = "submit" value = "Regisztráció"

?>

így a php de én eredetileg csak példának számítottam, még egy egyszerű echo kód is működik. Nos, a notepad ++ -ra írtam a kódot, és feltöltöttem a kódot a kompozerbe illesztve. lásd nekem azt mondták, hogy a .php kiterjesztéssel kell feltölteni a hmtl helyett, és ez az oka annak, hogy nem működik. de ezt zavarosnak találom, akkor hogyan csatolhatom az index oldalamon egy bizonyos linkhez. kérjen tanácsot, és tudassa velem, mit gondol. értékeld

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük