Header(location ) // javascript [Fermé]

Signaler
Messages postés
70
Date d'inscription
jeudi 3 avril 2014
Statut
Membre
Dernière intervention
26 février 2017
-
Messages postés
29217
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
-
Bonjour,

Jai un petit soucis quant au code suivant:

if($user == $dbusername && $pass == $dbpassword)
 {
 session_start();
 $_SESSION['sess_user']=$user;
    
 /* Redirection vers la page d'accueil */

 echo "<script
type='text/javascript'>document.location.replace('espace_candidat.html');</script>";

        }
 } else {

 echo'<script language="javascript"> alert("Login ou mot de passe invalide!")</script>'; 
 
 }

en fait dans ma page espace_candidat.html je n'arrive pas a recuperer le $user.
il n'est pas renseigne apparement.
j'utilise le javascript dans ce cas car le header(location )ne marche pas du tout

merci pour votre aide


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


4 réponses

Messages postés
29217
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
2 688
Bonjour,

espace_candidat.html ??
Renomme donc ta page en .php

Puis.. dans cette page... penses bien à y mettre également un
session_start();
.

et enfin... pourquoi faire une redirection en javascript alors qu'en php il exise
header('location:tapage.php');

Messages postés
70
Date d'inscription
jeudi 3 avril 2014
Statut
Membre
Dernière intervention
26 février 2017
1
j'ai change mon fichier espace_candidat.html en espace_candidat.php

et y'avait deja un session_start();


pour ce qui est du javascript, je l'utilise parceque header ne marche pas..

j'ai essaye a nouveau avec header et lorsque je clique sur connexion ma page s'arrete
Messages postés
29217
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
2 688
montre nous donc le code de cette page..... que l'on essaye de voir ce qui ne fonctionne pas.
Messages postés
70
Date d'inscription
jeudi 3 avril 2014
Statut
Membre
Dernière intervention
26 février 2017
1
voici le script de la page login.php


<!doctype html>
<html>
<head>
<div data-role="header">

<!-- chargement des scripts -->  
  
  <link rel="stylesheet" href="jquery.mobile-1.4.2/jquery.mobile-1.4.2.css"> 
  <script src="jquery.mobile-1.4.2/jquery-1.10.2.js"></script> 
  <script src="jquery.mobile-1.4.2/jquery.mobile-1.4.2.js"></script>

</head>
<body>

<div data-role="content">

<center><h1>Connexion</h1></center>

<form action="" method="POST">

Login: <input type="text" name="user"><br />
Password: <input type="password" name="pass"><br /> 

<input type="submit" value="connexion" name="submit" />

<center>
 
 <p>Pas encore inscrit ?</p>
 <p><a href="register.php" data-transition="flip">S'inscrire</a> </p>

</center>
</form>

<?php

if(isset($_POST["submit"])){

if(!empty($_POST['user']) && !empty($_POST['pass'])) {
 $user=$_POST['user'];
 $pass=$_POST['pass'];

 $con=mysql_connect('localhost','root','') or die(mysql_error());
 mysql_select_db('dev_mob_base') or die("cannot select DB");

 $query=mysql_query("SELECT * FROM utilisateur WHERE login='".$user."' AND password='".$pass."'");
 $numrows=mysql_num_rows($query);
 if($numrows!=0)
 {
 while($row=mysql_fetch_assoc($query))
 {
 $dbusername=$row['login'];
 $dbpassword=$row['password'];
 }

 if($user == $dbusername && $pass == $dbpassword)
 {
 session_start();
 $_SESSION['sess_user']=$user;
    
 /* Redirection vers la page d'accueil */
 header('location: espace_candidat.php');
    }
 } else {
 echo'<script language="javascript"> alert("Login ou mot de passe invalide!")</script>'; 
 
 }

} else {
 echo'<script language="javascript"> alert("tous les champs sont obligatoires!")</script>'; 
}
}
?>

</body>
</html>




et voici mnant le script de la page espace_candidat



<?php 
session_start();
if(!isset($_SESSION["sess_user"])){
 header("location:login.php");

} else {

?>
<!DOCTYPE html>
<html lang="fr">
<head>
 <title>Espace Candidat</title>
 
<!-- chargement des scripts -->
  
<script type="text/javascript" src="scr/jquery.js" ></script> 
<script type="text/javascript" src="scr/jquery-ui.js"></script>
<script type="text/javascript" src="scr/jquery.spasticNav.js"></script>  


<style type="text/css">

<!-- Style pour la barre de menu-->

#container {width: 850px; margin-left: 150px;}

ul, li {margin: 5; padding: 0;}
#blob { border-right: 1px solid #0059ec; border-left: 1px solid #0059ec; position: absolute; top: 0; z-index : 1;
 background: #0b2b61;
 background: -moz-linear-gradient(top, #0b2b61, #1153c0);
 background: -webkit-gradient(linear, left top, left bottom, from(#0b2b61), to(#1153c0));
 -moz-border-radius: 4px;
 -webkit-border-radius: 4px;
 -moz-box-shadow: 2px 3px 10px #011331;
 -webkit-box-shadow: 2px 3px 10px #011331;
}
#nav { position: relative; background: #292929; float: left; margin-left:83px;margin-top:50px}
#nav li { float: left; list-style: none; border-right: 1px solid #4a4a4a; border-left: 1px solid black;}
#nav li a { color: #e3e3e3; position: relative; z-index: 2; float: left; font-size: 22px; font-family: helvetica, arial, sans-serif; text-decoration: none; padding: 10px 35px;}
</style>


</head>
<body bgcolor="#40A497">

<center>

<h1>Votre Espace Candidat</h1>

</center>

<!-- Emplacement du menu -->  

<div id="container">
 <ul id="nav">
  <li id="selected"><a href="accueil_principal.php">Accueil</a></li>
  <li><a href="register.php">Creer un compte</a></li>
  <li><a href="login.php">Se connecter</a></li>
  <li><a href="modif_compte.php">Modifier son compte</a></li>
  <li><a href="">Gerer ses posts</a></li>
  
 </ul>
</div>

<!-- Initialisation de la fonction du menu -->  

<script type="text/javascript">

$('#nav').spasticNav();

</script>

</body>
</html>
<?php
}
?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Messages postés
70
Date d'inscription
jeudi 3 avril 2014
Statut
Membre
Dernière intervention
26 février 2017
1
j'aimerai juste ajouter que lorsque j'utilise du javascript la redirection marche tres bien sauf que le user session n'est pas recupere dans la page precedente
Messages postés
29217
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
2 688
Prends l'habitude de placer ton php AVANT le html.
Récupères également proprement les variables AVANT de les utiliser

<?php
//démarrage des session à mettre EN TOUT PREMIER !
session_start();

//connexion à la BDD
$con=mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('dev_mob_base') or die("cannot select DB");


//récupération "propre" des variables
$user = !empty($_POST['user']) ? $_POST['user'] : NULL;
$pass = !empty($_POST['pass']) ? $_POST['pass'] : NULL;


if(isset($_POST["submit"])){
 if($user && $pass) {
  
  $query=mysql_query("SELECT * FROM utilisateur WHERE login='".$user."' AND password='".$pass."'");
  $numrows=mysql_num_rows($query);
  if($numrows!=0) {
   $_SESSION['sess_user']=$user;
   /* Redirection vers la page d'accueil */
   header('location: espace_candidat.php');
  }else{
   echo'<script language="javascript"> alert("Login ou mot de passe invalide!")</script>'; 
  }
 }else {
  echo'<script language="javascript"> alert("tous les champs sont obligatoires!")</script>'; 
 }
}
?>
<!doctype html>
<html>
 <head>
 <!-- chargement des scripts -->  
  <link rel="stylesheet" href="jquery.mobile-1.4.2/jquery.mobile-1.4.2.css"> 
  <script src="jquery.mobile-1.4.2/jquery-1.10.2.js"></script> 
  <script src="jquery.mobile-1.4.2/jquery.mobile-1.4.2.js"></script>
 </head>
 <body>
   <div data-role="content">
    <center><h1>Connexion</h1></center>
    <form action="" method="POST">
     Login: <input type="text" name="user"><br />
     Password: <input type="password" name="pass"><br /> 
     <input type="submit" value="connexion" name="submit" />
     <center>
      <p>Pas encore inscrit ?</p>
      <p><a href="register.php" data-transition="flip">S'inscrire</a> </p>
     </center>
    </form>
   </div>
 </body>
</html>


page espace_candidat.php

- Ton Else ne servait à rien.
- Là encore, récupère proprement les variables AVANT de les utiliser.
- Tu peux faire un peu de debug pour voir si les variables sont bonnes.
 <?php 
session_start();

//le temps des tests... debug des variables de session
print_r($_SESSION);

//récupération "propre" des variables :
$sess_user = !empty($_SESSION["sess_user"]) ? $_SESSION["sess_user"] : NULL;

if(!$sess_user){
 header("location:login.php");
 exit();
} 

?>
<!DOCTYPE html>
<html lang="fr">
 <head>
   <title>Espace Candidat</title>
   
  <!-- chargement des scripts -->   
  <script type="text/javascript" src="scr/jquery.js" ></script> 
  <script type="text/javascript" src="scr/jquery-ui.js"></script>
  <script type="text/javascript" src="scr/jquery.spasticNav.js"></script>  

  <style type="text/css">
   <!-- Style pour la barre de menu-->
   #container {width: 850px; margin-left: 150px;}

   ul, li {margin: 5; padding: 0;}
   #blob { border-right: 1px solid #0059ec; border-left: 1px solid #0059ec; position: absolute; top: 0; z-index : 1;
    background: #0b2b61;
    background: -moz-linear-gradient(top, #0b2b61, #1153c0);
    background: -webkit-gradient(linear, left top, left bottom, from(#0b2b61), to(#1153c0));
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-box-shadow: 2px 3px 10px #011331;
    -webkit-box-shadow: 2px 3px 10px #011331;
   }
   #nav { position: relative; background: #292929; float: left; margin-left:83px;margin-top:50px}
   #nav li { float: left; list-style: none; border-right: 1px solid #4a4a4a; border-left: 1px solid black;}
   #nav li a { color: #e3e3e3; position: relative; z-index: 2; float: left; font-size: 22px; font-family: helvetica, arial, sans-serif; text-decoration: none; padding: 10px 35px;}
  </style>

 </head>
 <body bgcolor="#40A497">
  <center>
  <h1>Votre Espace Candidat</h1>
  </center>
  <!-- Emplacement du menu -->  
  <div id="container">
   <ul id="nav">
     <li id="selected"><a href="accueil_principal.php">Accueil</a></li>
     <li><a href="register.php">Creer un compte</a></li>
     <li><a href="login.php">Se connecter</a></li>
     <li><a href="modif_compte.php">Modifier son compte</a></li>
     <li><a href="">Gerer ses posts</a></li>
   </ul>
  </div>

  <!-- Initialisation de la fonction du menu -->  
  <script type="text/javascript">
    $('#nav').spasticNav();
  </script>

 </body>
</html> 
 


NB: tu utilises l'ancienne extension mysql .. je t'invite fortement à passer à mysqli ou (je préfère...) PDO.

NB² : **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.

Cordialement, 
Jordane                                                                 
Messages postés
70
Date d'inscription
jeudi 3 avril 2014
Statut
Membre
Dernière intervention
26 février 2017
1
J'ai implémenté votre code en changeant les miens mais toujours rien, la page login s'arrete lorsque je clique sur connexion.

sauf que j'ai remarque une chose a l'affichage seul de la page candidat je vois que la variable user est deja renseignee

ne croyez vous pas que le probleme de connexion existe car il ya deja un utilisateur connecte? Normalement la nouvelle connexion devrait juste ecrasee l'ancienne a mon avis

dans vos scripts jai pas compris ces lignes

$sess_user = !empty($_SESSION["sess_user"]) ? $_SESSION["sess_user"] : NULL;
Messages postés
70
Date d'inscription
jeudi 3 avril 2014
Statut
Membre
Dernière intervention
26 février 2017
1
???
Messages postés
29217
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
2 688
Ajoutes l'instruction :
error_reporting(E_ALL);
en haut de tes pages PHP (juste après la balise <?php