Pourquoi mon code PHP ne fonctionne-t-il pas?


Meilleure réponse

Tout dabord…

Ne jamais transmettre les données fournies par lutilisateur directement à la base de données. Il ny a jamais une raison pour laquelle cest une bonne idée.

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

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

Lutilisation de real\_escape\_string() empêchera votre script dêtre piraté avec une injection SQL. Si vous devez utiliser les valeurs ailleurs, vous pouvez les échapper lorsque vous créez votre requête.

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

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

Faites quelque chose de similaire à chaque fois que vous créez une requête SQL. Votre requête INSERT doit également avoir des valeurs échappées, soit en échappant la valeur stockée dans la variable, soit en léchappant lorsque vous créez la requête.

Pourquoi vous voyez « bon travail » sans saisir de données…

Vous ne vous assurez jamais quil existe réellement est une entrée. Votre script va essayer dinteragir avec la base de données même si lutilisateur na pas encore rempli le formulaire.

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

// put the rest of your script here

}

?>

Pourquoi aucun enregistrement de base de données nest créé.

Hmm ... Je ne suis pas sûr. Dautant plus quil dit que a fonctionné.

Essayez dapporter les modifications ci-dessus, puis postez un commentaire sur cette réponse pour me faire savoir sil y a un changement et quel est ce changement et nous pouvons partir de là.

Vérifiez également les journaux de votre serveur pour voir sil y a des erreurs. Si vous ne pouvez pas faire cela ou si les erreurs sont désactivées, vous pouvez essayer dajouter ceci en haut de votre script:

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

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

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

À propos…

Les attributs for de vos étiquettes doivent pointer vers lID dun élément.

Vous avez…

Vous devriez avoir…

Réponse

php

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

$ connect = mssql\_connect ($ host, $ user, $ pass) or die ("Impossible de se connecter"); $ database = mssql\_select\_db ($ db, $ connect) or die ("Impossible de se connecter à la base de données sélectionnée");

if (isset ($ \_POST (["submit"]))) {$ email = S\_POST ["email"]; $ firstname = S\_POST ["firstname"]; $ lastname = S\_POST ["nom"]; $ 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:
Prénom:
Nom:
Mot de passe:
nput type = "submit" name = "submit" value = "Register"

?>

donc le php co de je vous ai donné à lorigine était juste un exemple, même un simple code décho ne fonctionne pas. eh bien, jai écrit le code sur notepad ++ et je lai téléchargé en collant le code dans kompozer. voir on ma dit quil doit être téléchargé avec lextension .php au lieu de hmtl et cest la raison pour laquelle cela ne fonctionne pas. mais je trouve cela déroutant, alors comment puis-je lattacher à un certain lien dans ma page dindex. pls des conseils et laissez-moi savoir ce que vous pensez. je lapprécie

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *