Redirection avec header

Résolu/Fermé
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 - Modifié par Zedrof le 15/12/2014 à 13:39
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 - 17 déc. 2014 à 15:17
Bonjour,Est ce quelqu'un pourrait m'aider puisque après mon authentification ça me renvoi a l'index principale mais en voulant me connecte aux autres fichiers ça passe pas du tout vraiment vos aides sont les bienvenues:
<?php
 include "config/connexion.php";      
 include "lib/fonction_date.php";

if(empty($_SESSION['user']))//ce code permet de mettre le fichier login en acceuil au lieu de index
header('Location: //localhost/Parc_informatique/login.php');

echo "Bienvenue <b> ".$_SESSION['user']."</b>"; 
//le fichier index.php permet de lancer ts les fichiers de l'application

?>



<html>
 <head>
  <meta http-equiv="content-type"
   content="text/html; charset=utf-8"/>
 <link href="web/css/style.css" media="screen"
  type="text/css" rel="stylesheet"/>
 <script src="web/js/jquery.js" type="text/javascript"></script>
 <script src="web/js/prototype.js" type="text/javascript"></script>
 <script src="web/js/javascript.js" type="text/javascript"></script>  
 <link rel="stylesheet" href="web/js/jquery-ui.css" />
    <script src="web/js/jquery-1.8.3.js"></script>
    <script src="web/js/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
  <title> Gestion du Parc Informatique de RMCR</title>
  
 </head>
 <body> 
  <div id="menu"> // declaration des autres fichiers depuis modules 
  <a href="index.php?page=modules/historique/index.php"><strong>Historique</strong></a>
  <a href="index.php?page=modules/mat/index.php"><strong>Materiel Affichage</strong></a>
  <a href="index.php?page=modules/user/index.php"><strong>Utilisateur</strong></a>
  <a href="index.php?page=modules/departement/index.php"><strong>Departement</strong></a>
  
  </div>
  <div id="entete"><img src="web/images/logo2.jpg"width="100px" height="59px"></div>
  <div id="corps">
  <?php
   if (isset($_GET['page'])){
    include ($_GET['page']);
   }
   ?>
  </div>
  
  
  
  
  <div id="pied"><strong>© RMCR 2014 </strong></div>
 </body>
</html>

 




22 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 déc. 2014 à 13:53
Bonjour,

Ne te manquerait il pas le
 session_start(); 
au début de ta page ??
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
15 déc. 2014 à 14:20
j les fais ca me renvoi directement sur l'index sans demande d'authentification:


code login.php:
<?php
include "config/connexion.php";						
	include "lib/fonction_date.php";
	?>
<form action= "session.php " method= "POST">
<table align="center" width="300px">
		<tr>
		<th colspan="2">Authentification</th>
		</tr><br/><br/>
		<tr>
		<td>user</td>
		<td><input name="user" type="text"/></td>
		</tr><br/><br/>
		
		
		<td>Mot de Passe</td>
		<td><input name="pass" type="password"/></td>
		</tr><br/><br/>
		<tr>
		<td colspan="2">
		<input type="submit" value="connexion"/></td>
		
		</tr>
		</table>
		</form>




j'ai un code session.php:
<?php

session_start();
$user=$_POST['user'];
$pass=$_POST['pass'];
//ici on a juste supposé un login, tu pe faire une requete qui va verifier dans ta base si le login existe.
if (($user=='zedrof' && $pass=='mariko')){
$_SESSION['user']=$user;
include"index.php";
exit;
}
else{
echo "Login ou mot de passe incorrect!!!";
include "login.php";
}




j'ai un code index principaleindex.php:
<?php

include "config/connexion.php";						
include "lib/fonction_date.php";

if(empty($_SESSION['user']))//ce code permet de mettre le fichier login en acceuil au lieu de index
header('Location: //localhost/Parc_informatique/login.php');
echo "Bienvenue <b> ".$_SESSION['user']."</b>"; 
//le fichier index.php permet de lancer ts les fichiers de l'application
?>
<html>
	<head>
		<meta http-equiv="content-type"
			content="text/html; charset=utf-8"/>
	<link href="web/css/style.css" media="screen"
		type="text/css" rel="stylesheet"/>
	<script src="web/js/jquery.js" type="text/javascript"></script>
	<script src="web/js/prototype.js" type="text/javascript"></script>
	<script src="web/js/javascript.js" type="text/javascript"></script>		
	<link rel="stylesheet" href="web/js/jquery-ui.css" />
    <script src="web/js/jquery-1.8.3.js"></script>
    <script src="web/js/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />	
		<title> Gestion du Parc Informatique de RMCR</title>
		
	</head>
	<body>
		<div id="menu">
		<a href="index.php?page=modules/historique/index.php"><strong>Historique</strong></a>
		<a href="index.php?page=modules/mat/index.php"><strong>Materiel Affichage</strong></a>
		<a href="index.php?page=modules/user/index.php"><strong>Utilisateur</strong></a>
		<a href="index.php?page=modules/departement/index.php"><strong>Departement</strong></a>
		
		</div>
		<div id="entete"><img src="web/images/logo2.jpg"width="100px" height="59px"></div>
		<div id="corps">
		<?php
			if (isset($_GET['page'])){
				include ($_GET['page']);
			}
			?>
		</div>
		
		
		
		
		<div id="pied"><strong>© RMCR 2014 </strong></div>
	</body>
</html>

	
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 déc. 2014 à 14:42
Ajoutes un
print_r($_SESSION);

En haut de tes pages.. et regarde ce qu'il te donne.......


0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
15 déc. 2014 à 15:05
toujours averc
print_r($_SESSION);print_r($_SESSION);
mais la reidrection de ces pages me donne erreur

<div id="menu">
		<a href="index.php?page=modules/historique/index.php"><strong>Historique</strong></a>
		<a href="index.php?page=modules/mat/index.php"><strong>Materiel Affichage</strong></a>
		<a href="index.php?page=modules/user/index.php"><strong>Utilisateur</strong></a>
		<a href="index.php?page=modules/departement/index.php"><strong>Departement</strong></a>
		
		</div>

mom problemes c'est ces href
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 15/12/2014 à 15:37
mom problemes c'est ces href


DOnc.. ça ??? :
if (isset($_GET['page'])){
    include ($_GET['page']);
   }
   ?>


Tu as essayé de faire un echo de ta variable pour voir ?
if (isset($_GET['page'])){
 echo "<br> PAGE = ".$_GET['page'];
  include ($_GET['page']);
   }
   ?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
Modifié par Zedrof le 15/12/2014 à 15:48
ca me renvoi toujour sur le fichier login.php puis que j vois l'index principale mais en voulant l'ouvrez ça me le login.php
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 déc. 2014 à 15:57
J'ai un peu de mal à te comprendre ........

Reprenons .....
Ca te redirige systématiquement vers la page LOGIN.PHP ?? c'est bien ça ???
Donc.. ton souci viendrait surement de ce code là :
if(empty($_SESSION['user']))//ce code permet de mettre le fichier login en acceuil au lieu de index
header('Location: //localhost/Parc_informatique/login.php');

Donc... que ta variable $_SESSION['user'] est vide .......

Donc....
Il faut, que sur TOUTES tes pages .. tu es bien démarré les SESSIONS .. ( session_start(); )

Par contre.. dans ta page de connexion.(session.php: ).. tu refais un INCLUDE de ta page index ??
include"index.php";

... ce n'est pas un include à mon avis .. mais une redirection qu'il te faut ...
 header("Location: index.php");


Si tes soucis persistes .....
Dis nous avec exactitude ce qui ne fonctionne pas ...
( c'est à dire : Tu es sur quelle page ? .. tu cliques sur quoi ? il se passe quoi ? tu devrais avoir quoi ? ....)
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
15 déc. 2014 à 16:33
j'ai mis session_start(); en haut de tout mes pages et changer

include"index.php";
en

header("Location: index.php");


donc elle renvoi sur l'application sans authentification mais tout les pages
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 déc. 2014 à 16:40
- Quelle est ta première page de ton site ?
- Quel code contient-elle ?
- Y as tu mis, pour tester, un
print_r($_SESSION); 
?
=> Si oui.. qu'est-ce que ça t'affiche ?
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
Modifié par Zedrof le 15/12/2014 à 16:59
c'est authentification la premiere page:
login.php

<?php

include "config/connexion.php";      
 include "lib/fonction_date.php";
 ?>
<form action= "session.php " method= "POST">
<table align="center" width="300px">
  <tr>
  <th colspan="2">Authentification</th>
  </tr><br/><br/>
  <tr>
  <td>user</td>
  <td><input name="user" type="text"/></td>
  </tr><br/><br/>
  
  
  <td>Mot de Passe</td>
  <td><input name="pass" type="password"/></td>
  </tr><br/><br/>
  <tr>
  <td colspan="2">
  <input type="submit" value="connexion"/></td>
  
  </tr>
  </table>
  </form>


c'est session qui fait l'ouverture de session:c'est ici que j'ai print_r($_SESSION)
code session.php
<?php



print_r($_SESSION);
$user=$_POST['user'];
$pass=$_POST['pass'];
//ici on a juste supposé un login, tu pe faire une requete qui va verifier dans ta base si le login existe.
if (($user=='zedrof' && $pass=='mariko')){
$_SESSION['user']=$user;
header("Location: index.php");
exit;
}
else{
echo "Login ou mot de passe incorrect!!!";
include "login.php";
}
  


session redirige vers fichiers index.php qui est la source de tout les autres fichiers

code index.php
<?php

include "config/connexion.php";      
include "lib/fonction_date.php";
session_start();
if(empty($_SESSION['user']))//ce code permet de mettre le fichier login en acceuil au lieu de index
header('Location: login.php');
echo "Bienvenue <b> ".$_SESSION['user']."</b>"; 
//le fichier index.php permet de lancer ts les fichiers de l'application
?>
<html>
 <head>
  <meta http-equiv="content-type"
   content="text/html; charset=utf-8"/>
 <link href="web/css/style.css" media="screen"
  type="text/css" rel="stylesheet"/>
 <script src="web/js/jquery.js" type="text/javascript"></script>
 <script src="web/js/prototype.js" type="text/javascript"></script>
 <script src="web/js/javascript.js" type="text/javascript"></script>  
 <link rel="stylesheet" href="web/js/jquery-ui.css" />
    <script src="web/js/jquery-1.8.3.js"></script>
    <script src="web/js/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
  <title> Gestion du Parc Informatique de RMCR</title>
  
 </head>
 <body>
  <div id="menu">
  <a href="index.php?page=modules/historique/index.php"><strong>Historique</strong></a>
  <a href="index.php?page=modules/mat/index.php"><strong>Materiel Affichage</strong></a>
  <a href="index.php?page=modules/user/index.php"><strong>Utilisateur</strong></a>
  <a href="index.php?page=modules/departement/index.php"><strong>Departement</strong></a>
  
  </div>
  <div id="entete"><img src="web/images/logo2.jpg"width="100px" height="59px"></div>
  <div id="corps">
  <?php
   if (isset($_GET['page'])){
    include ($_GET['page']);
   }
   ?>
  
   
  </div>
  
  
  
  
  <div id="pied"><strong>© RMCR 2014 </strong></div>
 </body>
</html>

 
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 15/12/2014 à 17:23
Teste ça et dis nous ce que ça te donne :

<?php
session_start();
include "config/connexion.php";      
include "lib/fonction_date.php";

//LE TEMPS DES TESTS:
 echo "<pre>Variables de session :<br>";
 print_r($_SESSION);
 echo "</pre>";
//----------------
$User = isset($_SESSION['user'])?$_SESSION['user']:NULL;

if(empty($User)) {//ce code permet de mettre le fichier login en acceuil au lieu de index
 //LE TEMPS DES TESTS: on desactive cette ligne :
 //header('Location: login.php');
 echo "<pre> SESSION['user'] est vide ! </pre>";
}
echo "Bienvenue <b> ".$User."</b>"; 
//le fichier index.php permet de lancer ts les fichiers de l'application
?>
<html>
 <head>
  <meta http-equiv="content-type"
   content="text/html; charset=utf-8"/>
 <link href="web/css/style.css" media="screen"
  type="text/css" rel="stylesheet"/>
 <script src="web/js/jquery.js" type="text/javascript"></script>
 <script src="web/js/prototype.js" type="text/javascript"></script>
 <script src="web/js/javascript.js" type="text/javascript"></script>  
 <link rel="stylesheet" href="web/js/jquery-ui.css" />
    <script src="web/js/jquery-1.8.3.js"></script>
    <script src="web/js/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
  <title> Gestion du Parc Informatique de RMCR</title>
  
 </head>
 <body>
  <div id="menu">
  <a href="index.php?page=modules/historique/index.php">
  <strong>Historique</strong>
 </a>
  <a href="index.php?page=modules/mat/index.php">
  <strong>Materiel Affichage</strong>
 </a>
  <a href="index.php?page=modules/user/index.php">
  <strong>Utilisateur</strong>
 </a>
  <a href="index.php?page=modules/departement/index.php">
  <strong>Departement</strong>
 </a>  
  </div>
 
  <div id="entete">
  <img src="web/images/logo2.jpg"
     width="100px" 
    height="59px">
 </div>
  <div id="corps">
  <?php
 $page = isset($_GET['page'])?$_GET['page']:NULL;
 echo "<br> =>>> Page dans la variable GET = ".$page."<br>";
   if ($page){
   // on vérifie que la page existe avant d'essayer de l'inclure:
  if(file_exists($page)){
      include($page);
    }else{
    echo "Error ! La page ".$page." n'existe pas !";
  }
  }
   ?>
  </div>

  <div id="pied"><strong>© RMCR 2014 </strong></div>
 </body>
</html>


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
15 déc. 2014 à 17:30
c'est ce que ca me donne sans login directement la page index principale
Variables de session :
Array
(
[user] => zedrof
)

Bienvenue zedrof
Historique Materiel Affichage Utilisateur Departement

=>>> Page dans la variable GET =
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 déc. 2014 à 17:56
Ben oui.. la variable de SESSION est déjà renseignée ........ c'est donc normal que tu n'aies pas besoin de te connecter....

Ferme complétement ton navigateur internet .. et retourne ensuite sur ta page.. normalement cette fois tu devrais arriver sur la page de login ....
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
15 déc. 2014 à 18:16
j'ai redemarrer l'ordinateur jusqu'a present ca affiche la meme
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 déc. 2014 à 18:31
Redémarré ... l'ordinateur ??

jusqu'a present ca affiche la meme

La même ... quoi ???

Tu as toujours :

Variables de session :
Array
(
[user] => zedrof
)


Par contre... maintenant... tu peux " décommenter" la ligne :
if(empty($User)) {//ce code permet de mettre le fichier login en acceuil au lieu de index
 //LE TEMPS DES TESTS: on desactive cette ligne :
 //header('Location: login.php');
 echo "<pre> SESSION['user'] est vide ! </pre>";
}


et donc avoir :
if(empty($User)) {//ce code permet de mettre le fichier login en acceuil au lieu de index
 header('Location: login.php');
}
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
16 déc. 2014 à 08:41
j'ai desactive la ligne
header('Location: login.php');
mais j parvient à acceder a la page login mais avoir saisir le login et le mot de passe ça te renvoi encore sur la page login.




Authentification
user
Mot de Passe
connexion
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 déc. 2014 à 08:46
Dans la page session. Php.. ajoute un sessions_start ();
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
Modifié par Zedrof le 16/12/2014 à 09:15
tout marche mais sans login et des petits messages sont surl'ecran c'est ce que j comprend pas
en haut
Variables de session :
Array
(
[user] => zedrof
)

dans le corp de la page
=>>> Page dans la variable GET = modules/departement/index.php
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 déc. 2014 à 09:59

des petits messages sont surl'ecran c'est ce que j comprend pas

Ben... c'est ce que j'ai ajouté "le temps des tests" ....

Par exemple :
//LE TEMPS DES TESTS:
 echo "<pre>Variables de session :<br>";
 print_r($_SESSION);
 echo "</pre>";
//----------------


Tu peux le supprimer si tu veux.



Par contre :

tout marche mais sans login

C'est à dire ???

0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
16 déc. 2014 à 10:24
j'acceder directement dans a lapage acceuil de mon application sans demande de login
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 déc. 2014 à 12:17
Tu peux nous repostere le code de la page d'accueil ?
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
16 déc. 2014 à 12:23
code page d'acceuil:
<?php
session_start();
include "config/connexion.php";      
include "lib/fonction_date.php";

//LE TEMPS DES TESTS:
 echo "<pre>Variables de session :<br>";
 print_r($_SESSION);
 echo "</pre>";
//----------------
$User = isset($_SESSION['user'])?$_SESSION['user']:NULL;

if(empty($User)) {//ce code permet de mettre le fichier login en acceuil au lieu de index
 //LE TEMPS DES TESTS: on desactive cette ligne :
 header('Location: login.php');
 echo "<pre> SESSION['user'] est vide ! </pre>";
}
echo "Bienvenue <b> ".$User."</b>"; 
//le fichier index.php permet de lancer ts les fichiers de l'application
?>
<html>
 <head>
  <meta http-equiv="content-type"
   content="text/html; charset=utf-8"/>
 <link href="web/css/style.css" media="screen"
  type="text/css" rel="stylesheet"/>
 <script src="web/js/jquery.js" type="text/javascript"></script>
 <script src="web/js/prototype.js" type="text/javascript"></script>
 <script src="web/js/javascript.js" type="text/javascript"></script>  
 <link rel="stylesheet" href="web/js/jquery-ui.css" />
    <script src="web/js/jquery-1.8.3.js"></script>
    <script src="web/js/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
  <title> Gestion du Parc Informatique de RMCR</title>
  
 </head>
 <body>
  <div id="menu">
  <a href="index.php?page=modules/historique/index.php">
  <strong>Historique</strong>
 </a>
  <a href="index.php?page=modules/mat/index.php">
  <strong>Materiel Affichage</strong>
 </a>
  <a href="index.php?page=modules/user/index.php">
  <strong>Utilisateur</strong>
 </a>
  <a href="index.php?page=modules/departement/index.php">
  <strong>Departement</strong>
 </a>  
  </div>
 
  <div id="entete">
  <img src="web/images/logo2.jpg"
     width="100px" 
    height="59px">
 </div>
  <div id="corps">
  <?php
 $page = isset($_GET['page'])?$_GET['page']:NULL;
 echo "<br> =>>> Page dans la variable GET = ".$page."<br>";
   if ($page){
   // on vérifie que la page existe avant d'essayer de l'inclure:
  if(file_exists($page)){
      include($page);
    }else{
    echo "Error ! La page ".$page." n'existe pas !";
  }
  }
   ?>
  </div>

  <div id="pied"><strong>© RMCR 2014 </strong></div>
 </body>
</html>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 déc. 2014 à 12:28
ok. Et quand tu arrives sur cette page ... qu'est ce que ça t'affiche ??
Tu as quelque chose du genre
:


Variables de session :
Array
(
[user] => zedrof
)



Si oui... tu as déjà ta variable de session de renseignée... donc c'est normal que tu ne sois pas redirigé vers ta page de connexion......
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
16 déc. 2014 à 12:34
oui c'est comme ça que ca affiche
Variables de session :
Array
(
[user] => zedrof
)
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
16 déc. 2014 à 13:07
ca va maintenant mais il y a toujour un petit message a de:

Array ( [user] => zedrof ) Bienvenue zedrof

et c'est dont je veut supprimer mais j vois pas la source
Array ( [user] => zedrof )
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
16 déc. 2014 à 13:25
Mais ce que si j peut remplace cette partie dans le code session.php puisque c'est zedrof seul qui peut se connecter:
if (($user=='zedrof' && $pass=='mariko')){
$_SESSION['user']=$user;
header("Location: index.php");
exit;
par une requette qui peut permettre tout utilisateur à se connecter avec un login et un mot de mt de passe
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
16 déc. 2014 à 13:49
Pour supprimer ça .. il faut effacer ( ou commenter) les lignes
//LE TEMPS DES TESTS:
 echo "<pre>Variables de session :<br>";
 print_r($_SESSION);
 echo "</pre>";
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 déc. 2014 à 13:51
Pour remplacer la connexion via un USER pré-défini comme tu l'as fait par une requête...
Il te suffit de faire un SELECT dans ta BDD pour vérifier si le user existe..

Déjà.. il faudrait que nous sachions comment tu te connectes à ta BDD...
Tu utilises quoi ? Mysql / MysqlI / PDO ??
Montres ton code de connexion à ta BDD
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
16 déc. 2014 à 13:55
code de connexion ala base:

<?php

// pour se connecter a notre base sous phpmyadmin

$hote='localhost';
$base='parc';
$utilisateur='root';
$mot_de_passe='';
$connexion= new PDO('mysql:host='.$hote.';
					dbname='.$base, $utilisateur,$mot_de_passe);
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 déc. 2014 à 13:59
Ok donc tu utilises la PDO.

Donc maintenant... tu dois avoir une table contenant les utilisateurs qui peuvent se connecter je suppose..
Une table 'user' .... avec Login , Passord , nom , prenom ...etc.....
Il faut donc que tu fasses, dans ta page session.php, un SELECT du genre :

SELECT * FROM tableUser
WHERE login = '$user'
AND password = '$password'


Et si la requête te retourne bien un résultat..alors c'est qu'il peut se connecter...
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
16 déc. 2014 à 14:44
j'ai prepare une requette

code session.php
<?php


session_start();
print_r($_SESSION);
$user=$_POST['user'];
$pass=$_POST['pass'];
//ici on a juste supposé un login, tu pe faire une requete qui va verifier dans ta base si le login existe.
$req= $connexion->prepare("SELECT * FROM table_utilisateur
WHERE user = '$user'
AND pass = '$pass'");
$resultat = $req->execute();
if ($resultat!==1){
$_SESSION['user']=$user;
header('Location: index.php');
exit;
}
else{
echo "Login ou mot de passe incorrect!!!";
include "login.php";
}


mais ca me donne
Array ( )
( ! ) Notice: Undefined variable: connexion in C:\wamp\www\Parc_informatique\session.php on line 9
Call Stack
# Time Memory Function Location
1 0.0043 370912 {main}( ) ..\session.php:0

( ! ) Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\Parc_informatique\session.php on line 9
Call Stack
# Time Memory Function Location
1 0.0043 370912 {main}( ) ..\session.php:0
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
16 déc. 2014 à 14:58
Forcément.....
Tu dois inclure ta page contenant la connexion à ta BDD ....
include "config/connexion.php"; 



Mais.. dis voir... loin de moi l'idée d'être désagréable... mais il faudrait peut être que tu maitrise un minimum les bases du PHP avant de te lancer le dev non ?
Tu as suivi des tutos sur le net ????
Car pour l'instant.. toutes les questions ou presque... que tu poses .. sont du niveau "débutant" ....
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
16 déc. 2014 à 15:49
non j l'ai juste fais en classe de 4eme MIAGE donc j'ai aimé la matière donc j suis dans un e/se qui m'as demande de faire ça c'est pourquoi j me jeter sans suivi beaucoup de cours costo sur php et Mysql mais avec vraiment l'aides du forums j'ai pu le faire c'est la deniere et j compter commence à prendre des cours costo là dessus mais maintena :



tout login et mot de passe saisi acceder sans controle
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 16/12/2014 à 18:12

mais avec vraiment l'aides du forums j'ai pu le faire

Le truc.. c'est que pour l'instant tu copie/colle le code que je te donne... sans le comprendre...
Ce n'est surement pas comme ça que tu vas apprendre !


c'est la deniere et j compter commence à prendre des cours costo là dessus

Le problème.. c'est que les notions dont je te parle ... ne sont pas d'un HAUT niveau...
Ce sont les BASES à connaitre avant même de commencer à coder !

Enfin bref... je veux bien continuer à essayer de t'aider ... mais le souci... c'est que je ne comprend pas ce que tu dis :
mais maintena :
tout login et mot de passe saisi acceder sans controle



Je pense qu'il faut que tu modifies le code de tes pages de la manière suivante:

Dans ta page : session.php
<?php
session_start();
include "config/connexion.php";

//--------------------------------------
// Le temps des tests :
echo "<pre> Variables POST :<br>";
print_r($_POST);
echo "</pre>";
//--------------------------------------

//********************************//
// Recupération des variables :
//********************************//
$user=isset($_POST['user']) && $_POST['user'] !=''?$_POST['user']:NULL;
$pass=isset($_POST['pass']) && $_POST['pass'] !=''?$_POST['pass']:NULL;

//********************************//
// Préparation de la requete:
//********************************//
$sql = "SELECT * FROM table_utilisateur
      WHERE user = '".$user."'
      AND pass = '".$pass."'";
     
//--------------------------------------
// Le temps des tests :
echo "<pre> La Requete est :<br>";
echo $sql;
echo "</pre>";
//--------------------------------------

//********************************//
// Execution de la requete:
//********************************//     
$req= $connexion->prepare($sql);
$resultat = $req->execute();

if ($resultat){
 $_SESSION['user']=$user;
 unset($_SESSION['error_login']);
 header('Location: index.php');
 exit;
}else{
 $_SESSION['error_login'] = "Login ou mot de passe incorrect!!!";
 header('Location: login.php');
}
?>


PAGE Login.php

<?php
session_start();
include "config/connexion.php";      
include "lib/fonction_date.php";

//Recuperation du message d'erreur s'il existe
$msgError = isset($_SESSION['error_login']) ?$_SESSION['error_login']:NULL;

if($msgError){
   echo "<div id='zone_message_erreur'>
      <pre>".$msgError."</pre> 
      </div>";
  }
 ?>

<form action= "session.php " method= "POST">
<table align="center" width="300px">
  <tr>
  <th colspan="2">Authentification</th>
  </tr><br/><br/>
  <tr>
  <td>user</td>
  <td><input name="user" type="text"/></td>
  </tr><br/><br/>
  
  
  <td>Mot de Passe</td>
  <td><input name="pass" type="password"/></td>
  </tr><br/><br/>
  <tr>
  <td colspan="2">
  <input type="submit" value="connexion"/></td>
  </tr>
  </table>
  </form>



NB : j'ai ajouté (encore..) des blocs : "// Le temps des tests :" ... que tu pourras supprimer lorsque tes pages fonctionneront correctement.
En attendant ça permet de faire du débogage et de comprendre ce qui peut ne pas marcher !


NB2 : Attention à ne pas confondre les INCLUDE avec les HEADER LOCATION... tu sembles te méprendre sur leur fonctionnement !!!


NB3 : Comme tu peux le voir.. j'utilise régulièrement l'instruction ISSET .. si tu ne sais pas à quoi elle sert .. regardes ici : https://www.php.net/manual/fr/function.isset.php

NB4 : J'utilise également l'écriture "ternaire" ...
par exemple :
$msgError = isset($_SESSION['error_login']) ?$_SESSION['error_login']:'';

Là aussi .. si tu ne sais pas ce que c'est ... regarde ici :
https://www.php.net/manual/fr/language.operators.comparison.php

=> Ce qui veut dire :

La syntaxe de l'opérateur ternaire est la suivante :
echo $var = (expression vérifiée) ? affiche valeur 1 si test vérifié : affiche valeur 2 si test non vérifié;
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
17 déc. 2014 à 09:18
j'ai coupe colle mais toujours n'importe quelle user et pass peut acceder a l'application etant donne qu'il n'existe pas dans la table(table_utilisateur):

Mais quand à moi j dirai qu'il peut se qu'ils y a une erreur sur la

la syntaxe de l'operateur ternaire puisque
$msgError = isset($_SESSION['error_login']) ?$_SESSION['error_login']:'';

permet si j comprend bien de faire une comparaison entre duex valeur tandisque ici la seul variable declare est:
error_login
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 déc. 2014 à 09:39
Peux tu refaire le cheminement complet ?
Tu arrives sur ta première page. .. qu'est ce qui s'affiche ?
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
17 déc. 2014 à 09:46
j'arrive sur login :
Authentification
user
Mot de Passe
et ici n'importe quel user et mot de passe peut permettre acceder à l'application tandisque c'est les users et pass qui sont dans la table (table_utilisateur ) qui doivent acceder a la page d'acceuil de l'application
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 déc. 2014 à 09:50
Dans session. Php commente les deux lignes de redirection (header (location..)
Et reteste.
ensuite dis moi ce qui est écrit dans la page
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
17 déc. 2014 à 10:13
j'ai commente les deux lignes toujours la meme chose:

n'importe quel user et mot de passe peut permettre acceder à l'application tandisque c'est les users et pass qui sont dans la table (table_utilisateur ) qui doivent acceder a la page d'acceuil de l'application
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 17/12/2014 à 10:47
REPRENONS depuis le début :
- Déjà... pour que nous soyons bien d'accord... tu laisses TOUS les ECHO / PRINT que j'ai ajouté dans ton code ( Le temps des tests..) JUSQU'A ce que ton site fonctionne... ok ??

Donc :

Première page ...

<?php
session_start();
include "config/connexion.php";      
include "lib/fonction_date.php";

//LE TEMPS DES TESTS:
 echo "<pre>Variables de session :<br>";
 print_r($_SESSION);
 echo "</pre>";
//----------------
$User = isset($_SESSION['user'])?$_SESSION['user']:NULL;

if(empty($User)) {//ce code permet de mettre le fichier login en acceuil au lieu de index
 //LE TEMPS DES TESTS: on desactive cette ligne :
 header('Location: login.php');
 echo "<pre> SESSION['user'] est vide ! </pre>";
}
echo "Bienvenue <b> ".$User."</b>"; 
//le fichier index.php permet de lancer ts les fichiers de l'application
?>
<html>
 <head>
  <meta http-equiv="content-type"
   content="text/html; charset=utf-8"/>
 <link href="web/css/style.css" media="screen"
  type="text/css" rel="stylesheet"/>
 <script src="web/js/jquery.js" type="text/javascript"></script>
 <script src="web/js/prototype.js" type="text/javascript"></script>
 <script src="web/js/javascript.js" type="text/javascript"></script>  
 <link rel="stylesheet" href="web/js/jquery-ui.css" />
    <script src="web/js/jquery-1.8.3.js"></script>
    <script src="web/js/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
  <title> Gestion du Parc Informatique de RMCR</title>
  
 </head>
 <body>
  <div id="menu">
  <a href="index.php?page=modules/historique/index.php">
  <strong>Historique</strong>
 </a>
  <a href="index.php?page=modules/mat/index.php">
  <strong>Materiel Affichage</strong>
 </a>
  <a href="index.php?page=modules/user/index.php">
  <strong>Utilisateur</strong>
 </a>
  <a href="index.php?page=modules/departement/index.php">
  <strong>Departement</strong>
 </a>  
  </div>
 
  <div id="entete">
  <img src="web/images/logo2.jpg"
     width="100px" 
    height="59px">
 </div>
  <div id="corps">
  <?php
 $page = isset($_GET['page'])?$_GET['page']:NULL;
 echo "<br> =>>> Page dans la variable GET = ".$page."<br>";
   if ($page){
   // on vérifie que la page existe avant d'essayer de l'inclure:
  if(file_exists($page)){
      include($page);
    }else{
    echo "Error ! La page ".$page." n'existe pas !";
  }
  }
   ?>
  </div>

  <div id="pied"><strong>© RMCR 2014 </strong></div>
 </body>
</html>



page : login.php
<?php
session_start();
include "config/connexion.php";      
include "lib/fonction_date.php";

//Recuperation du message d'erreur s'il existe
$msgError = isset($_SESSION['error_login']) ?$_SESSION['error_login']:NULL;

if($msgError){
   echo "<div id='zone_message_erreur'>
      <pre>".$msgError."</pre> 
      </div>";
  }
 ?>

<form action= "session.php " method= "POST">
<table align="center" width="300px">
  <tr>
  <th colspan="2">Authentification</th>
  </tr><br/><br/>
  <tr>
  <td>user</td>
  <td><input name="user" type="text"/></td>
  </tr><br/><br/>
  
  
  <td>Mot de Passe</td>
  <td><input name="pass" type="password"/></td>
  </tr><br/><br/>
  <tr>
  <td colspan="2">
  <input type="submit" value="connexion"/></td>
  </tr>
  </table>
  </form>




page : session.php :
<?php
session_start();
include "config/connexion.php";

//--------------------------------------
// Le temps des tests :
echo "<pre> Variables POST :<br>";
print_r($_POST);
echo "</pre>";
//--------------------------------------

//********************************//
// Recupération des variables :
//********************************//
$user=isset($_POST['user']) && $_POST['user'] !=''?$_POST['user']:NULL;
$pass=isset($_POST['pass']) && $_POST['pass'] !=''?$_POST['pass']:NULL;

//********************************//
// Préparation de la requete:
//********************************//
$sql = "SELECT * FROM table_utilisateur
      WHERE user = '".$user."'
      AND pass = '".$pass."'";
     
//--------------------------------------
// Le temps des tests :
echo "<pre> La Requete est :<br>";
echo $sql;
echo "</pre>";
//--------------------------------------

//********************************//
// Execution de la requete:
//********************************//     
$req= $connexion->prepare($sql);
$resultat = $req->execute();

if ($resultat){
 $_SESSION['user']=$user;
 unset($_SESSION['error_login']);
  //--------------------------------------
 // Le temps des tests :
 echo "<pre> Variables de session:<br>";
 print_r($_SESSION);
 echo "</pre>";
 //--------------------------------------
 //header('Location: index.php');
 exit;
}else{
 // destruction des variables de session
 session_destroy();
 $_SESSION['error_login'] = "Login ou mot de passe incorrect!!!";
 //--------------------------------------
 // Le temps des tests :
 echo "<pre> Variables de session:<br>";
 print_r($_SESSION);
 echo "</pre>";
 //--------------------------------------
 //header('Location: login.php');
}
?>



==>> Remplaces tes fichiers par ces codes...
et colle nous ici le résultat de ce qui est affiché sur les pages !


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
Modifié par Zedrof le 17/12/2014 à 11:12
j'arrive sur login :
Authentification
user
Mot de Passe
et apres validation ça me donne

Variables POST :
Array
(
[user] => zedrof
[pass] => mariko
)
La Requete est :
SELECT * FROM table_utilisateur
WHERE user = 'zedrof'
AND pass = 'mariko'
Variables de session:
Array
(
[user] => zedrof
)
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 déc. 2014 à 11:28
Ben donc ça m'a l'air bon....
.. Et si tu essayes avec un USER qui n'existe pas et/ou un Mauvais Password ... ça donne quoi ??
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
17 déc. 2014 à 11:32
Variables POST :
Array
(
[user] => azertyuiop
[pass] => qsdfghjklertyuio
)
La Requete est :
SELECT * FROM table_utilisateur
WHERE user = 'azertyuiop'
AND pass = 'qsdfghjklertyuio'
Variables de session:
Array
(
[user] => azertyuiop
)
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 déc. 2014 à 11:48
Bizarre... si ta requête ne retourne aucun résultat.. tu ne devrais pas entrer dans le IF ....

Essayes ça :
(dans : session.php)
<?php
session_start();
include "config/connexion.php";

//--------------------------------------
// Le temps des tests :
echo "<pre> Variables POST :<br>";
print_r($_POST);
echo "</pre>";
//--------------------------------------

//********************************//
// Recupération des variables :
//********************************//
$user=isset($_POST['user']) && $_POST['user'] !=''?$_POST['user']:NULL;
$pass=isset($_POST['pass']) && $_POST['pass'] !=''?$_POST['pass']:NULL;

//********************************//
// Préparation de la requete:
//********************************//
$sql = "SELECT * FROM table_utilisateur
      WHERE user = '".$user."'
      AND pass = '".$pass."'";
     
//--------------------------------------
// Le temps des tests :
echo "<pre> La Requete est :<br>";
echo $sql;
echo "</pre>";
//--------------------------------------

//********************************//
// Execution de la requete:
//********************************//     
$req= $connexion->prepare($sql);
$resultat = $req->execute();
$NbRow = $resultat->rowCount();

 //--------------------------------------
 // Le temps des tests :
echo "<pre> NbRows =".$NbRow ."</pre>";
echo "<pre>Resultat :<br>";
print_r($resultat);
echo "</pre>"; 
  //--------------------------------------

if ($NbRow >=1){
 $_SESSION['user']=$user;
 unset($_SESSION['error_login']);
  //--------------------------------------
 // Le temps des tests :
 echo "<pre> Variables de session:<br>";
 print_r($_SESSION);
 echo "</pre>";
 //--------------------------------------
 //header('Location: index.php');
 exit;
}else{
 // destruction des variables de session
 session_destroy();
 $_SESSION['error_login'] = "Login ou mot de passe incorrect!!!";
 //--------------------------------------
 // Le temps des tests :
 echo "<pre> Variables de session:<br>";
 print_r($_SESSION);
 echo "</pre>";
 //--------------------------------------
 //header('Location: login.php');
}
?>


0
Utilisateur anonyme > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
17 déc. 2014 à 12:02
Bonjour

Bizarre... si ta requête ne retourne aucun résultat.. tu ne devrais pas entrer dans le IF
Si car $resultat = $req->execute(); rend TRUE à partir du moment où il n'y a pas d'erreur, peu importe le nombre de réponses.
Dans ce cas, il valait mieux faire une requête SELECT COUNT(*)... et tester la valeur rendue. Tu proposes une solution avec rowCount qui marche certainement aussi, mais attention, rowCount sur un SELECT ne marche pas avec toutes les bases de données.
0