Problème PHP...

Fermé
Tommobylette Messages postés 1 Date d'inscription lundi 7 mai 2018 Statut Membre Dernière intervention 29 mai 2018 - Modifié le 29 mai 2018 à 21:48
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 29 mai 2018 à 22:00
Bonsoir,
Je suis actuellement en train de coder un site dans lequel j'utilise du HTML/CSS et du PHP.
Dans un formulaire, je veux mettre quelques contraintes a l'utilisateur, comme remplir tous les champs, ou que les deux mots de passe soient identiques.
La partie ci-dessous marchait au début, mais maintenant elle ne marche plus, si quelqu'un voit le problème, qu'il n'hésite pas à me prévenir.
Merci d'avance
<?php
        if (isset($_POST['Valider']))
            if (!empty($_POST['sexe']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['email']) && !empty($_POST['mdp']) && !empty($_POST['cmdp']) && !empty($_POST['téléphone'])) 
                if ($_POST['mdp'] != $_POST['cmdp'])
                {
                    echo 'Bienvenue' . strip_tags($_POST['sexe']) . ' ' . strip_tags($_POST['nom']) . ' ! Votre compte a bien été créé. <br>';
        echo "Cliquez sur le logo ci-dessous pour poursuivre votre réservatoin.<br><br>";
        echo '<a href="index3.php" target="_blank"><img src="logo.jpg"></a> <br>';
                }
                else
                {
        $p = $_SERVER['PHP_SELF'];
                    $page = basename ($p);
                    if($page == "index2.php")
                    {
                        echo '<script>alert("Les deux mots de passe sont différents.");</script>';
                    }
                }
            else
                {
        $p = $_SERVER['PHP_SELF'];
                    $page = basename ($p);
                    if($page == "index2.php")
                    {
                        echo '<script>alert("Les champs ne sont pas tous remplis correctement !");</script>';
                    }
                }
        ?>


EDIT : Ajout des balises de code (jordane)
A voir également:

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
29 mai 2018 à 22:00
Bonjour,
Déjà.. commence par appliquer ce qui est marqué ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Ensuite... évite de répéter du code pour rien....

puis... NE pas utililser de caractères accentués ni spéciaux dans le nom des variables (que ce soit dans le nom des variables php, les "name" html ou les nom des champs dans une BDD )

Et enfin, comme indiqué dans le lien que je t'ai donné... commence par récupérer "PROPREMENT" les variables avant
de les utiliser.


En gros.. ton code deviendrait un truc du genre :

<?php
//------------------------------------//
//affichage des erreurs php
//------------------------------------//
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//------------------------------------//
//récupération des variables
//------------------------------------//
$sexe = !empty($_POST['sexe']) ? $_POST['sexe'] : NULL;
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
$prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL;
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
$mdp = !empty($_POST['mdp']) ? $_POST['mdp'] : NULL;
$cmdp = !empty($_POST['cmdp']) ? $_POST['cmdp'] : NULL;
$telephone = !empty($_POST['telephone']) ? $_POST['telephone'] : NULL;

$p = !empty($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : NULL;
$page = !empty($p) ? basename($p) : "";
//------------------------------------//
//traitement
//------------------------------------//
if (isset($_POST['Valider'])){
  if($nom && $prenom && $sexe && $email && $mdp && $cmdp && $telephone){
    if($mdp != $cmdp){      
      echo '<script>alert("Les deux mots de passe sont différents.");</script>';     
    }else{
      echo 'Bienvenue' . strip_tags($sexe) . ' ' . strip_tags($nom) . ' ! Votre compte a bien été créé. <br>
             Cliquez sur le logo ci-dessous pour poursuivre votre réservatoin.<br><br>
             <a href="index3.php" target="_blank">
              <img src="logo.jpg">
             </a><br>';
    }
  }else{
    //Tous les champs ne sont pas remplis...
     echo '<script>alert("Les deux mots de passe sont différents.");</script>';
  }
}
   
?>

1