Diverses erreur PHP
Résolu/Fermé
Matancy
Messages postés
696
Date d'inscription
dimanche 14 juin 2015
Statut
Membre
Dernière intervention
5 avril 2019
-
30 avril 2016 à 21:20
Matancy Messages postés 696 Date d'inscription dimanche 14 juin 2015 Statut Membre Dernière intervention 5 avril 2019 - 4 mai 2016 à 16:23
Matancy Messages postés 696 Date d'inscription dimanche 14 juin 2015 Statut Membre Dernière intervention 5 avril 2019 - 4 mai 2016 à 16:23
A voir également:
- Diverses erreur PHP
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
- Erreur 5000 france tv - Forum iPhone
4 réponses
Matancy
Messages postés
696
Date d'inscription
dimanche 14 juin 2015
Statut
Membre
Dernière intervention
5 avril 2019
82
3 mai 2016 à 22:13
3 mai 2016 à 22:13
Bonjour
Merci pour ta reponse.
Je précise que je suis un tutoriel, donc je fais étapes par étapes.
Pourrais tu me corriger le code ?
Je suis désolé mais je suis novice en php et je ne comprend mais rien du tout ;)
Matancy
--
Merci pour ta reponse.
Je précise que je suis un tutoriel, donc je fais étapes par étapes.
Pourrais tu me corriger le code ?
Je suis désolé mais je suis novice en php et je ne comprend mais rien du tout ;)
Matancy
--
codeurh24
Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
123
Modifié par codeurh24 le 4/05/2016 à 00:05
Modifié par codeurh24 le 4/05/2016 à 00:05
Bonsoir.
Tu as fait plein d'erreurs mais c'est normal quand tu n'y connais rien.
Tu as déjà réussi à fournir un code HTML presque propre ce qui n'est pas facile pour tout le monde mais qui est le minimum requis pour pouvoir ce faire aider.
Alors pour le html il ne faut pas mettre la partie PHP dans le html ( de préférence pour une bonne visibilité)
le php commence avec <?php et ce fini avec ?>
le html pour faire simple ,commence avec une balise <html> et fini par </html>
pour comprendre la suite il faut d'abord que tu te formes au html et à la programmation php pour savoir comment fonctionne une condition, qu'est-ce-qu'une une variable et qu'est-ce-qu'une fonction. il faut aussi par la suite savoir ce qu'est le SQL et ici mysql.
Le seul problème que tu avait dans ton html c'etait la balise center mais là ce n'est vraiment pas évident a expliquer. il faut que tu t'abitue a comment les balises fonctionnes. Principe de balise parent enfant.
A chaque rafraîchissement (F5) de la page web tes variables doivent être vérifiées si elle sont vides et surtout si elle existe. La fonction "Empty()" renvoi vrai (true) si le champs est vide. La fonction "isset()" renvoi true si la variable existe.
si ces vérifications ne sont pas faites ton php te le fait remarquer en indiquant la ligne. Exemple dans ton cas $repeatpassword, tu fais une condition ce qui engendre la manipulation de valeur. Mais si elles sont vides, elles n’existent pas et on ne peut pas vérifier des valeurs vides sauf avec la fonction empty.
Le plus important c'est quelle n'existe pas car tu n'utilise pas tes variables post qui sont liées a tes name du formulaire html.
Pour chaque fonction php tu as php.net à ta disposition et en français. il y a tout ce qu'il faut pour t'aider à utiliser correctement les fonctions php.
J'ai mis en commentaire les fonctions mysql car avec ce que tu nous donnes il n'y a pas d'utilisation mysql ( connexion ouverte connexion fermer).
Les mettre en commentaire revient a les ignorer.
j'ai même été voir dans la doc (documentation php.net) pour être sur de ce que je dit et il est précisé: Notez que si aucune connexion est ouverte, mysql_real_escape_string () retourne une chaîne vide!
. Comme tu peut le voir même pour moi la doc est la pour me rappeler certaines chose et c'est quotidien.
Dans tes erreurs PHP il est précisé que les fonctions mysql ne sont plus utilisées alors il faut utiliser mysqli ou PDO. Je préfère mysqli qui est quasiment pareil que les fonctions mysql.
Je n'ai pas fait le boulot a ta place mais juste corriger certaine erreur qui t’empêche de voir claire dans tout ça.
Tu as fait plein d'erreurs mais c'est normal quand tu n'y connais rien.
Tu as déjà réussi à fournir un code HTML presque propre ce qui n'est pas facile pour tout le monde mais qui est le minimum requis pour pouvoir ce faire aider.
Alors pour le html il ne faut pas mettre la partie PHP dans le html ( de préférence pour une bonne visibilité)
le php commence avec <?php et ce fini avec ?>
le html pour faire simple ,commence avec une balise <html> et fini par </html>
pour comprendre la suite il faut d'abord que tu te formes au html et à la programmation php pour savoir comment fonctionne une condition, qu'est-ce-qu'une une variable et qu'est-ce-qu'une fonction. il faut aussi par la suite savoir ce qu'est le SQL et ici mysql.
Le seul problème que tu avait dans ton html c'etait la balise center mais là ce n'est vraiment pas évident a expliquer. il faut que tu t'abitue a comment les balises fonctionnes. Principe de balise parent enfant.
A chaque rafraîchissement (F5) de la page web tes variables doivent être vérifiées si elle sont vides et surtout si elle existe. La fonction "Empty()" renvoi vrai (true) si le champs est vide. La fonction "isset()" renvoi true si la variable existe.
si ces vérifications ne sont pas faites ton php te le fait remarquer en indiquant la ligne. Exemple dans ton cas $repeatpassword, tu fais une condition ce qui engendre la manipulation de valeur. Mais si elles sont vides, elles n’existent pas et on ne peut pas vérifier des valeurs vides sauf avec la fonction empty.
Le plus important c'est quelle n'existe pas car tu n'utilise pas tes variables post qui sont liées a tes name du formulaire html.
Pour chaque fonction php tu as php.net à ta disposition et en français. il y a tout ce qu'il faut pour t'aider à utiliser correctement les fonctions php.
J'ai mis en commentaire les fonctions mysql car avec ce que tu nous donnes il n'y a pas d'utilisation mysql ( connexion ouverte connexion fermer).
Les mettre en commentaire revient a les ignorer.
j'ai même été voir dans la doc (documentation php.net) pour être sur de ce que je dit et il est précisé: Notez que si aucune connexion est ouverte, mysql_real_escape_string () retourne une chaîne vide!
. Comme tu peut le voir même pour moi la doc est la pour me rappeler certaines chose et c'est quotidien.
Dans tes erreurs PHP il est précisé que les fonctions mysql ne sont plus utilisées alors il faut utiliser mysqli ou PDO. Je préfère mysqli qui est quasiment pareil que les fonctions mysql.
<?php
if(isset($_POST['submit']))
{
// $sexe = mysqli_real_escape_string(htmlentities($_POST['sexe']));
// $pseudo = mysql_real_escape_string(htmlentities($_POST['pseudo']));
// $password = mysqli_real_escape_string(htmlentities($_POST['password']));
// $repeatpassword = mysqli_real_escape_string(htmlentities($_POST['repeatpassword']));
// $email = mysql_real_escape_string(htmlentities($_POST['email']));
// $age = mysql_real_escape_string(htmlentities($_POST['age']));
// $cle = mysql_real_escape_string(htmlentities($_POST['cle']));
if(empty($pseudo))
{
$errors[] = "Veuillez saisir un pseudo";
}
if (empty($password))
{
$errors[] = "Veuillez entrer un mot de passe";
}else if($password != $repeatpassword)
{
$errors[] = "Les deux mots de passe ne correspondent pas";
}
if (empty ($email))
{
$errors[] = "Veuillez entrer votre email";
}else if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
$errors[] = "Votre adresse mail n'est pas correcte";
}
if (empty ($age))
{
$errors[] = "Veuillez entrer votre age";
}
if (empty ($cle))
{
$errors[] = "Veuillez entrer la clé d'activation";
}
if (!empty($errors))
{
foreach($errors as $error)
{
echo "<div class='error'>'.$error.'</div>";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body bgcolor="#EEE">
<center>
<u></u>
<h1><u>Inscription</u></h1><br>
<br>
<form action="" method="post">
<label for="pseudo">Votre pseudo :</label> <input name="pseudo"
type="text"><br>
<label for="password">Votre mot de passe :</label> <input name="password" type="password"><br>
<label for="repeatpassword">Répétez votre mot de passe :</label>
<input name="repeatpassword" type="password"><br>
<label for="email">Votre adresse mail :</label> <input name="email" type="text"><br>
<label for='age'>Votre âge</label> <input name="age" type=
"text"><br>
<label for='sexe'>Votre sexe</label> <select name="sexe">
<option value="Homme">
Homme
</option>
<option value="Femme">
Femme
</option>
<option value="Autre">
Autre
</option>
</select><br>
<br>
<label for="cle">Entrez la clé donnée par un Administrateur</label>
<input name="cle" type="text"><br>
<br>
<input name="submit" type="submit" value="S'inscrire"><br>
<br>
</form><a href="index.php?page=login">Retourner à la page de connexion</a>
</center>
</body>
</html>
Je n'ai pas fait le boulot a ta place mais juste corriger certaine erreur qui t’empêche de voir claire dans tout ça.
codeurh24
Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
123
Modifié par codeurh24 le 4/05/2016 à 00:17
Modifié par codeurh24 le 4/05/2016 à 00:17
il y avait tellement de chose a dire que j'avais pas remaquer que tes variables post etait bien lier aux variables. Le truc c'est que tu va devoir creer une connection msqli pour les utiliser ou sinon tu peut simplement affecté tes variables aux variables post directement en attendant de faire mieux par la suite quand tu maitrisera mieux le B-A-BA
Matancy
Messages postés
696
Date d'inscription
dimanche 14 juin 2015
Statut
Membre
Dernière intervention
5 avril 2019
82
4 mai 2016 à 16:23
4 mai 2016 à 16:23
Bonjour,
Merci pour votre aide.
Je vais continuer mon tutoriel mais pour le moment je n'ai plus de problème.
Je vous remercie vraiment, j'aurais peut être encore besoin de vous :)
Matancy
Merci pour votre aide.
Je vais continuer mon tutoriel mais pour le moment je n'ai plus de problème.
Je vous remercie vraiment, j'aurais peut être encore besoin de vous :)
Matancy
theshadoo
Messages postés
786
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
3 mai 2016
123
3 mai 2016 à 19:29
3 mai 2016 à 19:29
Déjà tu fais un
Après tu ne vérifies pas l'existence de tes variables envoyés en post avec isset par exemple.
Et pour les erreurs levés c'est un peu normale... php te dis qu'il ne connais pas les variables repeatpassword etc...
C'est logique puisque tu commences le traitement conditionnelles de ces variables à l'extérieur de ta condition $_POST.
Ce qui fait que même avant d'envoyer ton formulaire tu essaies d'effectuer un traitement sur des variables qui ne sont pas initialisé.
Tu vérifies si tes variables existes avec
mysql_real_escape_stringalors que tu ne te trouve pas dans une requête sql, ça on le fait après, il est inutile de le faire dès lors que tu récupères tes variables de formulaire, c'est un post traitement qui s'effectue qu'une fois au moment de l'insertion ou update en base de donnée.
Après tu ne vérifies pas l'existence de tes variables envoyés en post avec isset par exemple.
Et pour les erreurs levés c'est un peu normale... php te dis qu'il ne connais pas les variables repeatpassword etc...
C'est logique puisque tu commences le traitement conditionnelles de ces variables à l'extérieur de ta condition $_POST.
Ce qui fait que même avant d'envoyer ton formulaire tu essaies d'effectuer un traitement sur des variables qui ne sont pas initialisé.
Tu vérifies si tes variables existes avec
empty()mais empty ne vérifie pas si la variable existe ! cette fonction vérifie seulement si la variable est vide, et non si elle est initialisé.