[RESOLU] Validation de deux formulaires dans le même squelette

Eléphant du PHP | 257 Messages

02 déc. 2016, 16:57

Je deux script, inscription et connexion sur la même page.
Le soucis c'est quand je valide une inscription ou une connexion, il me fait une erreur de contrôle d'un champ vide en inscription ou en connexion.

séparer il fonctionne à merveille.

Y a t'il un moyen de les faire fonctionner sur la même page svp?

connexion html
<div id = "connexion">
    <form action = "<?PHP ''.$_SERVER['PHP_SELF'].'' ?>" method="post">
    <p><label for="Courriel">Courriel : </label><input type="text" name="mail" id="mail" /></p>
    <p><label for="pass">Mot de passe : </label><input type="password" name="pass" id="pass" /></p>
    <p><input type="submit" name="connexion" value="Connexion" id ="valider" />&nbsp;<input type="button" value="inscriptions" id ="valider"  onclick="window.location.href='<?PHP echo'inscri.php'; ?>'" /></p>
    </form>
    <div id="message">
	<?PHP   if(isset($message)){
            echo '<div class="message" style="color:red;text-align:center;"><b>'.$message.'</b></div>';
            }
	?>
    </div>
</div>
Inscription
<?PHP if(isset($id_insert) == FALSE){  ?>
<div id = "inscription">
    <form action = "<?PHP ''.$_SERVER['PHP_SELF'].'' ?>" method = "post">
    <fieldset>Inscription</fieldset>
    <p><label for = "pseudo">Pseudo : </label><input type ="text"   name="pseudo" id="pseudo" value="<?php if(isset($_POST['pseudo'])) { echo htmlentities($_POST['pseudo']);}?>" /></p>
    <p><label for = "courriel">Courriel : </label><input type ="text"   name="mail" id="mail" value="<?php if(isset($_POST['mail'])) { echo htmlentities($_POST['mail']);}?>" /></p>
    <p><label for = "courriels">Contrôle Courriel : </label><input type ="text"   name="mail2" id="mail2" value="<?php if(isset($_POST['mail2'])) { echo htmlentities($_POST['mail2']);}?>" /></p>
    <p><label for = "pass">Mot de passe : </label><input type = "password" name = "pass" id = "pass" /></p>
    <p>
    <img src="captcha.php" border="0" alt="CAPTCHA" id="captcha">
    <a href="#new" id="new"><img src="imdesign/reload.png" style="width:35px;margin-left:10px; border:0px;"/></a></p>
    <p><label for = "pass">Code Robot : </label><input class="input" id="security_code" name="security_code" type="text" /></p>
    <p><input type ="submit" name="inscription" value="Inscription" id ="valida" /></p>
    </form>
    <div id="message">

     <?PHP

	 if(isset($message)){
        echo '<div style="
		position:absolute;
		top: 70px;
		margin-left:100px;"><b>'.$message.'</b></div>';
            }	 
}
	 if(isset($message_ok)){
        echo '<div style="
		position:absolute;
		top: 150px;
		margin-left:300px;"><b>'.$message_ok.'</b></div>';
            }

	?>
    </div>
</div>

Mammouth du PHP | 881 Messages

02 déc. 2016, 18:53

Pourquoi deux formulaires soumis en même temps.
Il me semble que le traitement de « Inscription » devrait fournir les informations nécessaires à l'exécution du script « connexion ».
Si donc, le formulaire « Inscription » est soumis et que le script le traitant donne les résultats escomptés, pourquoi ne pas tout simplement lancer le script « connexion » immédiatement après, utilisant les mêmes variables ou - au besoin - en renommant les variables reçues par « Inscription » de façon à ce qu'elles soient utilisables par « connexion » ?

Ainsi, dans ton script de traitement « Inscription » tu auras:
//blabla j'inscris ce nouvel usager dans ma base
if ($reussi) { include "mon_script_connexion.php"; }
Dans ton script « Connexion », tu as certainement quelque chose comme
if ($_POST["Courriel"] == $Dbase["Courriel"] && $_POST["password"] == $Dbase["MotDePasse"]) {
    // activation de la session de monsieur X
}

Il te suffit alors de rendre tes valeurs « Inscription » utilisables en faisant ceci:
//blabla
if ($reussi) {
  $_POST["password"] = $_POST["SecurityCode"];
 include "mon_script_connexion.php";
}
Soyez artisans de paix