Problème bouton redirection [Résolu/Fermé]

Signaler
Messages postés
82
Date d'inscription
lundi 1 février 2016
Statut
Membre
Dernière intervention
12 février 2016
-
Messages postés
29901
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2020
-
Bonjour, j'ai un petit problème, c'est que je voudrais c'est quand le traitement de connexion.php se fait il redirige vers ma page index2.html.

Voici connexion..html :

<head>
        <meta charset="utf-8" />
    </head>
    <body>
    
	<form method="POST" action="connexion.php">
	<p>
       <label for="username">Pseudo :</label>
       <input type="text" name="username" id="username" />
       
       <br></br>
	   
       <label for="password">Mot de passe :</label>
       <input type="text" name="password" id="password" />
       
	   <br></br>
	   
       <label for="password2"> Retapez votre mot de passe :</label>
       <input type="text" name="password2" id="password2" />

	   <br></br>
	   
		<input type="submit" name="submit" value="Envoyer">
	</p>

	</form>
  
    </body>



et voici connexion.php :

error_reporting(E_ALL);

if(isset($_POST['submit']))
{
$username =htmlentities(trim($_POST['username']));	
$password =htmlentities(trim($_POST['password']));	
$password2 =htmlentities(trim($_POST['password2']));		
	if($username&&$password&&$password2)
	{
		if($password==$password2)
		{
		$password = md5($password);	
		$bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
		try
		{
			$bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
		}
		catch (Exception $e)
		{
        die('Erreur : ' . $e->getMessage());
		}		
		mysql_select_db('projet');
		$reg = mysql_query("SELECT * FROM connexion WHERE username='$username'");
		
		$req = $bdd->prepare("INSERT INTO connexion (username, password) VALUES (:username, :password)");
		$req->execute(array("username" => $username, "password" => $password));
		
		
		die("Inscription terminée <ahref=connexion.php> connectez</a>vous");
		}else echo"Ce pseudo n'est pas disponible";
		}else echo "Les deux passwords doivent être identiques";
	};	


1 réponse

Messages postés
29901
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2020
2 896
Re bonjour,

C'est dommage que tu ne tiennes pas comtpes des remarques faites dans tes questions précédentes ....

Par exemple .... le fait de mettre la connexion de ta BDD à part ....
Faire une récupération propre des variables via des ISSET ....

En plus tu utilises la PDO .... et dans ton code tu mets des instructions de l'ancienne extension mysql ....
par exemple .. que viennent faire ces lignes de code ici ???
mysql_select_db('projet');
$reg = mysql_query("SELECT * FROM connexion WHERE username='$username'");




Donc... si on repart de quelque chose de plus "propre" voici grosso-modo ce que tu devrais avoir :

<?php
error_reporting(E_ALL);

//----------------------------------------//
//connexion à la BDD
//----------------------------------------//
require_once "cnxBDD.php";

//----------------------------------------//
//Récupération "propre" des variables
//----------------------------------------//
$username  = !empty($_POST['username']) ? htmlentities(trim($_POST['username'])) : NULL; 
$password  = !empty($_POST['password']) ? htmlentities(trim($_POST['password'])) : NULL; 
$password2 = !empty($_POST['password2']) ? htmlentities(trim($_POST['password2'])) : NULL;


//----------------------------------------//
// Traitement du SUBMIT
//----------------------------------------//

if($username&&$password&&$password2) {
 
 if($password === $password2){
  
  //On vérifie si l'utilisateur n'existe pas déjà :
  try{
    $sql = "SELECT * FROM connexion WHERE username=:username";
   $a_data = array(":username"=>$username);  
   $stmt = $bdd->prepare($sql); 
    $stmt->execute($a_data);
   
   //on place le résultat de la requête dans un ARRAY
   $result = $stmt->fetchAll();
   
  } catch (Exception $e){
    echo 'Erreur : ' . $e->getMessage();
    echo "<br> Dans la requête :".$sql;
    echo "<br> Variables :<br><pre>";
    print_r($a_data);
    echo "</pre>";
    exit();
  }
  
  if(count($result)>0){
    //l'utilisateur existe déjà...
    echo"Ce pseudo n'est pas disponible";
  }else{
   try{
    $sql = "INSERT INTO connexion (username, password) VALUES (:username, :password)";
    $a_data = array(":username" => $username, ":password" => $password);
    $stmt = $bdd->prepare($sql); 
    $stmt->execute($a_data);
    
    $id =  $bdd->lastInsertId(); //récupère l'ID créé lors de l' INSERT dans la BDD
    if($id){
     echo "<br> Enregistrement effectué !.  ID = ".$id;
     //Si tu veux une redirection automatique : header("Location: connexion.php");
     // sinon avec un Lien :
     echo "<a href='connexion.php'> Connectez-vous </a>";
     
    }else{
     echo "<br> Erreur lors de l'enregistrement !";
     print_r($a_data);
    }
   
   } catch (Exception $e){
     echo 'Erreur : ' . $e->getMessage();
     echo "<br> Dans la requête :".$sql;
     echo "<br> Variables :<br><pre>";
     print_r($a_data);
     echo "</pre>";
     exit();
   }
  }
 }else{
  echo "Les deux passwords doivent être identiques";
 }
}



Cordialement, 
Jordane                                                                 
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
82
Date d'inscription
lundi 1 février 2016
Statut
Membre
Dernière intervention
12 février 2016

Merci pour l'aide, ça fonctionne !
Messages postés
29901
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2020
2 896 >
Messages postés
82
Date d'inscription
lundi 1 février 2016
Statut
Membre
Dernière intervention
12 février 2016

Que ça fonctionne .. je n'en doute pas (vu que je l'ai écrit :-) )
Par contre, analyse bien ce que j'ai fait ..... et pour tes prochains scripts applique toi à reproduire cette "façon" de coder.

PS: Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane