Header(location ) // javascript

Fermé
sarah4794 Messages postés 70 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 26 février 2017 - Modifié par jordane45 le 9/03/2016 à 18:16
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 11 mars 2016 à 15:11
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

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
9 mars 2016 à 18:18
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');

0
sarah4794 Messages postés 70 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 26 février 2017 10
9 mars 2016 à 18:37
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
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
9 mars 2016 à 18:45
montre nous donc le code de cette page..... que l'on essaye de voir ce qui ne fonctionne pas.
0
sarah4794 Messages postés 70 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 26 février 2017 10
Modifié par jordane45 le 9/03/2016 à 18:56
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.
0
sarah4794 Messages postés 70 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 26 février 2017 10
9 mars 2016 à 18:56
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
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 9/03/2016 à 19:09
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                                                                 
0
sarah4794 Messages postés 70 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 26 février 2017 10
9 mars 2016 à 19:30
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;
0
sarah4794 Messages postés 70 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 26 février 2017 10
10 mars 2016 à 19:45
???
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
11 mars 2016 à 15:11
Ajoutes l'instruction :
error_reporting(E_ALL);
en haut de tes pages PHP (juste après la balise <?php
0