Perché il mio codice PHP non funziona?


Migliore risposta

Per prima cosa …

Non mai passare i dati forniti dallutente direttamente al database. Non cè mai un motivo per cui sia una buona idea.

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

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

Lutilizzo di real\_escape\_string() eviterà che il tuo script venga violato con uniniezione SQL. Se è necessario utilizzare i valori altrove, è possibile eseguire lescape quando si crea la query.

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

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

Fai qualcosa di simile ogni volta che crei una query SQL. Anche la tua query INSERT deve contenere valori di escape, sia come escape del valore memorizzato nella variabile che come escape quando crei la query.

Perché vedi “buon lavoro” senza inserire dati …

Non sei mai sicuro che ci sia effettivamente è input. Il tuo script tenterà di interagire con il database anche se lutente non ha ancora compilato il modulo.

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

// put the rest of your script here

}

?>

Perché non vengono creati record di database.

Hmm… non sono sicuro. Soprattutto perché dice che ha funzionato .

Prova ad apportare le modifiche sopra, quindi pubblica un commento su questa risposta per farmi sapere se cè un cambiamento e qual è il cambiamento e possiamo procedere da lì.

Controlla anche i log del tuo server per vedere se ci sono errori lì. Se non puoi farlo o gli errori sono disabilitati, puoi provare ad aggiungere questo allinizio dello script:

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

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

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

A proposito ...

Gli attributi for delle tue etichette dovrebbero puntare allID di un elemento.

Hai ...

Dovresti ...

Risposta

php

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

$ connect = mssql\_connect ($ host, $ user, $ pass) o die ("Unable to connect"); $ database = mssql\_select\_db ($ db, $ connect) o die ("Impossibile connettersi al database selezionato");

if (isset ($ \_POST (["submit"]))) {$ email = S\_POST ["email"]; $ firstname = S\_POST ["firstname"]; $ 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:
Nome:
Cognome:
Password:
nput type = "submit" name = "submit" value = "Register"

?>

così il php co de che inizialmente ti ho dato era solo un esempio, anche un semplice codice echo non funziona. beh, ho scritto il codice su notepad ++ e lho caricato incollando il codice in kompozer. vedi mi è stato detto che deve essere caricato con lestensione .php invece di hmtl e questo è il motivo per cui non funziona. ma lo trovo confuso, quindi come lo allego a un determinato collegamento nella mia pagina indice. pls consiglio e fammi sapere cosa ne pensi. apprezzalo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *