Problème bouton redirection

Résolu
lecjoh59 Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
lecjoh59 Messages postés 82 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour l'aide, ça fonctionne !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > lecjoh59 Messages postés 82 Date d'inscription   Statut Membre Dernière intervention  
 
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
0