Miksi PHP-koodini ei toimi?


Paras vastaus

Ensimmäiset asiat ensin …

Älä älä koskaan välitä käyttäjän toimittamia tietoja suoraan tietokantaan. Ei ole koskaan syytä miksi se on hyvä idea.

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

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

real\_escape\_string() -toiminnon käyttäminen estää komentosarjaasi hakkeroimasta SQL-injektiolla. Jos sinun on käytettävä arvoja muualla, voit välttää ne, kun luot kyselyn.

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

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

Tee jotain vastaavaa aina, kun luot SQL-kyselyn. INSERT -kyselysi arvojen on myös oltava pakollisia joko poistumalla muuttujaan tallennetusta arvosta tai poistumalla siitä, kun luot kyselyn.

Miksi näet ”hyvää työtä” syöttämättä tietoja …

Et koskaan varmista, että siellä todella on on panos. Komentosarja yrittää olla vuorovaikutuksessa tietokannan kanssa, vaikka käyttäjä ei olisi vielä täyttänyt lomaketta.

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

// put the rest of your script here

}

?>

Miksi tietokantatietueita ei luoda?

Hmm ... En ole varma. Varsinkin kun siinä sanotaan, että se toimi toimi.

Yritä tehdä yllä olevat muutokset ja lähetä sitten kommentti tähän vastaukseen, jos haluat tietää muutos ja mikä muutos on, ja voimme siirtyä sieltä.

Tarkista myös palvelinlokisi, onko siinä virheitä. Jos et voi tehdä sitä tai virheet on poistettu käytöstä, voit yrittää lisätä tämän komentosarjan yläosaan:

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

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

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

Muuten…

Tunnisteidesi for -attribuuttien tulisi osoittaa elementin tunnukseen.

Sinulla on…

Sinulla pitäisi olla…

Vastaus

php

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

$ connect = mssql\_connect ($ host, $ user, $ pass) tai die ("Ei voida muodostaa yhteyttä"); $ database = mssql\_select\_db ($ db, $ connect) tai die ("Ei voida yhdistää valittuun tietokantaan");

if (isset ($ \_POST (["lähetä")))) {$ email = S\_POST ["sähköposti"]; $ etunimi = S\_POST ["etunimi"]; $ sukunimi = S\_POST ["sukunimi"]; $ 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!!";

}

}

Sähköposti:
Etunimi:
Sukunimi:
Salasana:
nput type = "lähetä" nimi = "lähetä" arvo = "Rekisteröi"

?>

joten php Alun perin antamasi de de oli vain esimerkki, jopa yksinkertainen kaikukoodi toimii. No, olen kirjoittanut koodin Notepad ++: iin ja lähettänyt sen liittämällä koodin kompozeriin. katso minulle kerrottiin, että se on ladattava .php-laajennuksella hmtl: n sijaan, ja siksi se ei toimi. mutta minusta se on hämmentävää, joten miten liitän sen tiettyyn linkkiin hakemistosivullani. Pls neuvoja ja kerro minulle mitä mieltä olet. arvostan sitä

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *