Problème au niveau de php
Résolu
flo39400
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
-
heliconius Messages postés 539 Date d'inscription Statut Membre Dernière intervention -
heliconius Messages postés 539 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je regarde pour me perfectionner sur le php, alors j'ai fait quelque changement mais la j'ai une erreur qui apparait alors que si je supprime le php il n'y pas d'erreur.
Donc cela doit être dans le php.
Si vous pouvez m'aider merci d'avance.
Je regarde pour me perfectionner sur le php, alors j'ai fait quelque changement mais la j'ai une erreur qui apparait alors que si je supprime le php il n'y pas d'erreur.
Donc cela doit être dans le php.
Si vous pouvez m'aider merci d'avance.
<?php $bdd = new PDO('mysql:host=127.0.0.1;dbname=site', 'root', ''); if(isset($_POST['forminscription'])) { if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['age']) AND !empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); $age = htmlspecialchars($_POST['age']); $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $mail2 = htmlspecialchars($_POST['mail2']); $mdp = sha1($_POST['mdp']); $mdp2 = sha1($_POST['mdp2']); $pseudolength = strlen($pseudo); if($age == 0) { if($pseudolength <= 15) { if($mail == $mail2) { if(filter_var($mail, FILTER_VALIDATE_EMAIL)) { $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?"); $reqmail->execute(array($mail)); $mailexist = $reqmail->rowCount(); if($mailexist == 0) { if($mdp == $mdp2) { $insertmbr = $bdd->prepare("INSERT INTO membres(nom, prenom, age, pseudo, mail, motdepasse) VALUES(?, ?, ?)"); $insertmbr->execute(array($nom, $prenom, $age, $pseudo, $mail, $mdp)); $erreur = "Votre compte a bien été crée ! <a href=\"connexion.php\">Me connecter<a/> "; } else { $erreur = "Vos mot de passes ne correspondent pas !"; } } else { $erreur = "Adresse mail déjà utilisée !"; } } else { $erreur = "Votre adresse mail n'est pas valide"; } } else { $erreur = "Vos adresse mail ne correspondent pas !"; } } else { $erreur = "Votre pseudo ne doit pas dépasser 15 caractères !"; } } else { $erreur = "Vous devez entré votre age"; } ?> <html> <head> <title>Site One</title> <meta charset="utf-8"> </head> <body> <div align="center"> <h1>Inscription</h1> <br /> <br /> <form method="POST" action=""> <table> <tr> <td align="right"> <label for="nom">Nom :</label> </td> <td align="right"> <input type="text" placeholder="Votre Nom" id="nom" name="nom" /> </td> </tr> <tr> <tr> <td align="right"> <label for="prenom">Prénom :</label> </td> <td align="right"> <input type="text" placeholder="Votre prénom" id="prenom" name="prenom" /> </td> </tr> <tr> <tr> <td align="right"> <label for="age">Age :</label> </td> <td align="right"> <input type="number" step="1" value="0" min="12" max="99" placeholder="Votre age" id="age" name="age" /> </td> </tr> <tr> <tr> <td align="right"> <label for="pseudo">Pseudo :</label> </td> <td align="right"> <input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" /> </td> </tr> <tr> <td align="right"> <label for="mail">E-mail :</label> </td> <td align="right"> <input type="email" placeholder="Votre mail" id="mail" name="mail" /> </td> </tr> <tr> <td align="right"> <label for="mail2">Confirmez votre mail :</label> </td> <td align="right"> <input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" /> </td> </tr> <tr> <td align="right"> <label for="mdp">Mot de passe :</label> </td> <td align="right"> <input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" /> </td> </tr> <tr> <td align="right"> <label for="mdp2">Confirmez votre mot de passe :</label> </td> <td align="right"> <input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2" /> </td> </tr> <tr> <td></td> <td align="center"> <br /> <input type="submit" name="forminscription" value="Je m'inscris" /> </td> </tr> </table> </form> <?php if(isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } ?> </div> </body> </html>
A voir également:
- Problème au niveau de php
- Easy php - Télécharger - Divers Web & Internet
- Mise a niveau windows 7 vers 10 - Accueil - Mise à jour
- Clé de mise à niveau windows 7 gratuit - Guide
- Test afpa niveau 5 pdf ✓ - Forum Études / Formation High-Tech
- Expert php pinterest - Télécharger - Langages
3 réponses
Bonsoir
Au moins une erreur ici :
Trois valeurs (points d'interrogation) pour six champs, ce n'est pas assez.
Au moins une erreur ici :
prepare("INSERT INTO membres(nom, prenom, age, pseudo, mail, motdepasse) VALUES(?, ?, ?)");
Trois valeurs (points d'interrogation) pour six champs, ce n'est pas assez.
flo39400
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
21
Oui merci j'ai trouvé ça hier et tous remarche merci beaucoup :)
Bonsoir,
Je suis vraiment vraiment navré de ne pas répondre à cette question mais en voyant ce code je ne peux m'empêcher d'émettre un commentaire.
Le langage Javascript n'a pas été fait pour les chiens. Il a été fait pour vérifier les formulaires avant soumission. Si vous validez un formulaire contenant des erreurs, erreurs qui seront contrôlées par PHP, PHP va renvoyer au client un message d'erreur (ex: "Vos mots de passe ne correspondent pas !"). Cela peut induire :
- un trafic réseau inutile,
- une perte de temps (le temps de multiples allées et venues),
- une surcharge du serveur
C'est pour éviter ces inconvénients que Javascript a été créé : il permet la vérification de la saisie AVANT envoi et ne laisse partir le formulaire QUE s'il est conforme à ce qui est attendu (données obligatoires saisies ; format des données: caractères autorisés, longueurs mini et maxi, etc... ; éléments de listes déroulantes sélectionnées ; boutons radios ou cases à cocher cochées ou non, etc...). De ce fait, dans le PHP, beaucoup de tests ne sont plus nécessaires. Cela soulage le serveur, diminue le code et facilite le debuggage.
Je suis d'accord que certains tests ne peuvent se faire que coté serveur : la présence du pseudo dans la base de données, vérifié par javascript quant à sa présence, quant aux caractères autorisés et aux longueurs, ne pourra se faire qu'avec PHP mais les tests restant à effectuer seront beaucoup moins nombreux et donc l'exécution plus rapide.
Une chose à retenir:
- côté client : javascript pour saisies obligatoires, et conformes (caractères autorisés, longueurs mini et maxi, formats attendus, etc...
- côté serveur : PHP pour tous les tests que javascript ne peut pas effectuer et d'autres éventuellement.
Dès qu'il y a un formulaire, à mon avis on devrait trouver quelque chose du genre :
Encore une fois, je suis désolé de n'avoir pas fourni la réponse attendue mais il me semble que le développement ne peut vraiment pas s'affranchir de ces fondements là.
Je suis vraiment vraiment navré de ne pas répondre à cette question mais en voyant ce code je ne peux m'empêcher d'émettre un commentaire.
Le langage Javascript n'a pas été fait pour les chiens. Il a été fait pour vérifier les formulaires avant soumission. Si vous validez un formulaire contenant des erreurs, erreurs qui seront contrôlées par PHP, PHP va renvoyer au client un message d'erreur (ex: "Vos mots de passe ne correspondent pas !"). Cela peut induire :
- un trafic réseau inutile,
- une perte de temps (le temps de multiples allées et venues),
- une surcharge du serveur
C'est pour éviter ces inconvénients que Javascript a été créé : il permet la vérification de la saisie AVANT envoi et ne laisse partir le formulaire QUE s'il est conforme à ce qui est attendu (données obligatoires saisies ; format des données: caractères autorisés, longueurs mini et maxi, etc... ; éléments de listes déroulantes sélectionnées ; boutons radios ou cases à cocher cochées ou non, etc...). De ce fait, dans le PHP, beaucoup de tests ne sont plus nécessaires. Cela soulage le serveur, diminue le code et facilite le debuggage.
Je suis d'accord que certains tests ne peuvent se faire que coté serveur : la présence du pseudo dans la base de données, vérifié par javascript quant à sa présence, quant aux caractères autorisés et aux longueurs, ne pourra se faire qu'avec PHP mais les tests restant à effectuer seront beaucoup moins nombreux et donc l'exécution plus rapide.
Une chose à retenir:
- côté client : javascript pour saisies obligatoires, et conformes (caractères autorisés, longueurs mini et maxi, formats attendus, etc...
- côté serveur : PHP pour tous les tests que javascript ne peut pas effectuer et d'autres éventuellement.
Dès qu'il y a un formulaire, à mon avis on devrait trouver quelque chose du genre :
... <script language="javascript" type="text/javascript"> // autres fonctions JS... function verif() { // tests du formulaire return true; // Tout est bon, ça peut partir. On envoie. } </script> </head> <body> <form name="inscr" method="POST" enctype="multipart/form-data" <!-- si nécessaire --> action="..." onsubmit=return verif();> ... </form> ...
Encore une fois, je suis désolé de n'avoir pas fourni la réponse attendue mais il me semble que le développement ne peut vraiment pas s'affranchir de ces fondements là.
Il n'y a pas à être désolée. Le développement de sites devient tellement complexe qu'il est difficile de tout savoir. Les sociétés qui développent ont souvent des personnels spécialisés chacun dans leur domaine mais le particulier qui fait son site est obligé la plupart du temps de jouer les hommes-orchestre.
HTML est apparu bien avant le PHP et Javascript aussi mais lui, après le HTML. Si on suit la chronologie d'apparition des langages pour déterminer les priorités dans la connaissance de ceux-ci, ce serait : HTML, Javascript, CSS, PHP, MySQL
De toute façon, chacun suit son propre cheminement et, comme on dit, l'expérience n'éclaire que le chemin de celui qui l'a parcouru. Mais on peut effectuer quelques petits changements d'itinéraires, des petits crochets, pour essayer de suivre une certaine logique, une certaine cohérence. Bon courage...
HTML est apparu bien avant le PHP et Javascript aussi mais lui, après le HTML. Si on suit la chronologie d'apparition des langages pour déterminer les priorités dans la connaissance de ceux-ci, ce serait : HTML, Javascript, CSS, PHP, MySQL
De toute façon, chacun suit son propre cheminement et, comme on dit, l'expérience n'éclaire que le chemin de celui qui l'a parcouru. Mais on peut effectuer quelques petits changements d'itinéraires, des petits crochets, pour essayer de suivre une certaine logique, une certaine cohérence. Bon courage...