Je n'arrive pas a me rediriger vers une autre page ? php

Signaler
Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
-
Messages postés
29606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2020
-
voila j'ai crée une page membre mais le problème c'est que lorsqu'il est le moment de ce rediriger il y a une erreur

l'erreur est la suivante :

Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/testD.php:10) in /storage/ssd3/413/12032413/public_html/darkweb/DarkAccueil/testD.php on line 48



est le code :


<?php 
$bdd = new PDO('mysql:host=localhost;dbname=id12032413_orlando_bdd;charset=utf8', 'id12032413_screamfr', 'bdd_orlando');

if (mysqli_connect_errno()) {
  echo "Souci de connexion à la bdd : " . mysqli_connect_error();
  exit();
}

 ?>
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
 </head>

 <body>
  <h2> Formulaire d'inscription : </h2>

  <form action="" method = "POST">
   <label for="pseudo"> pseudo : </label> </br>
   <input type="texte" name = "pseudo" /> </br>
 
   <label for="password"> Password : </label> </br>
   <input type="password" name = "password" /> </br>
 
   <input type="submit" value ="Inscription" />
  </form> 
 
<?php

if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['password'])) )
{

 $pseudo = addslashes($_POST["pseudo"]) ;
 
 $query = $bdd->query("SELECT * FROM users WHERE username = '$pseudo'"); 
 
 $count = $query->rowCount();
 
 if($count == 1) 
 { 

   header('Location: ../Hub/Hub.php');
   exit;
 } 

 else 
 { 
   echo 'Identifiant Incorrect !';
 } 
}

?>  
 
 </body>
</html>

2 réponses

Messages postés
29606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2020
2 792
Bonjour,

Va vraiment falloir faire un choix..... soit tu fais du PDO ... soit du MYSQLI ... pas les deux !!


Ensuite, il faut que tu écrives ton code correctement (et au bon endroit dans ton script).
Le MAXIMUM de ton code php doit se trouver AVANT le code html.
L'instruction header, par exemple, ne tolère pas qu'on affiche autre chose avant de l'utiliser (d'où ton message d'erreur).

Avant de t'aider, je t'invite à retourner lire et appliquer le contenu de ce lien :
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et à revenir nous voir une fois que tu auras tenu compte de ces informations si ton souci persiste.


Messages postés
17
Date d'inscription
lundi 30 décembre 2019
Statut
Membre
Dernière intervention
10 janvier 2020
3
Merci j'ai les conseille de votre lien , par contre maintenant le code ne prend plus en compte si les identifiants sont bon , quand on appui sur le bouton ça nous ramène à la page membre


<?php 

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


$bdd = new PDO('mysql:host=localhost;dbname=id12032413_orlando_bdd;charset=utf8', 'id12032413_screamfr', 'bdd_orlando');

// On vérifie que le formulaire à été complété et si les champs ne sont pas vides
if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['password'])) )
{
 //On met le résultat pseudo du formulaire dans $pseudo
 $pseudo = addslashes($_POST["pseudo"]) ;
 
 //On sélectionne dans la table 'utilisateurs' les pseudo qui sont les mêmes que le pseudo tapé dans le formulaire
 $query = $bdd->query("SELECT * FROM users WHERE username = '$pseudo'"); 
 
 //On compte le nombre de réponse
 $count = $query->rowCount();
 
 //Dans le cas où il y a une réponse, qu'un pseudo dans la table correspont au pseudo tapé
 if($count == 1) 
 { 
  // Pseudo déjà utilisé 
   header('Location: ../Hub/Hub.php');
   exit;
 } 

 else 
 { 
   echo 'Identifiant Incorrect !';
 } 
}

?>  

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
 </head>

 <body>
  <h2> Formulaire d'inscription : </h2>

  <form action="" method = "POST">
   <label for="pseudo"> pseudo : </label> </br>
   <input type="texte" name = "pseudo" /> </br>
 
   <label for="password"> Password : </label> </br>
   <input type="password" name = "password" /> </br>
 
   <input type="submit" value ="Inscription" />
  </form> 
 </body>
</html>

Messages postés
29606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2020
2 792
Je te repose la question encore une fois.....

Tu bosses en PDO ou en mysqli ??
Car tu as deux discussions sur le même sujet.... chacune avec une methode de connexion à la bdd différente.
Donc j'aimerai que tu tranches une bonne fois pour toutes !

Et si tu es en PDO... appliques ceci :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs