sessions php - PHP - Programmation
Marsh Posté le 12-05-2006 à 10:20:23
il sert à quoi le session_name() au début du script, vu que tu ne récupère pas ce qu'il y a dedans ?
Marsh Posté le 12-05-2006 à 10:35:11
1/ le session_name(); n'a pas d'intéret
Code :
|
2/ ce bout de code est une passoire, c'est l'éxemple même de ce qu'il ne faut pas faire car une faille d'injection SQL est tout a fait possible ici
3/ session_start(); ne doit pas etre rappeler plusieurs fois dans une même page php. Ici tu appele session_start(); au début de ta page, les pages includes tel que page21.php et cie ne doivent pas contenir de session_start();
Marsh Posté le 12-05-2006 à 09:38:57
Bonjour,
j'ai un problème concernant les sessions sous php. Voici le code de ma page d'accueil :
<<<< ============= Début ============= >>>>
<?
session_name();
session_start();
include "fonction/fonctions.php";
$connexion = connexion(usr_web413_3);
if ( !empty( $_POST['pseudo'] ))
{
$nom = $_POST['pseudo'] ;
echo "$nom";
}
if (isset($_POST["btn_login"]))
{
$pseudo=$_POST["pseudo"];
$mdp=$_POST["mdp"];
$req_recherche_utilisateur = mysql_query("
SELECT *
FROM utilisateurs
WHERE utilisateur='$pseudo' AND motdepasse='$mdp'" );
$nb_utilisateur=mysql_num_rows($req_recherche_utilisateur);
if ($nb_utilisateur == 1)
{
$_SESSION['nom'] = $pseudo;
$nom_session = $_SESSION['nom'];
echo "$nom_session";
} else {
// utilisateur non reconnu
}
}
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
<!-- script du menu.
window.onload=montre;
function montre(id)
{
var d = document.getElementById(id);
for (var i = 1; i<=10; i++)
{
if (document.getElementById('smenu'+i))
{
document.getElementById('smenu'+i).style.display='none';
}
}
if (d)
{
d.style.display='block';
}
}
//-->
</script>
</head>
<body leftmargin="0" rightmargin="0" marginheight="0" marginwidth="0">
<div class="gauche">
<dl id="menu">
<dt onMouseOver="javascript:montre('smenu1');" onMouseOut="javascript:montre();"><a href="index.php?page=menu1">Accueil</a></dt>
<dt onMouseOver="javascript:montre('smenu2');" onMouseOut="javascript:montre();"><a href="#">menu2</a></dt>
<dd id="smenu2" onMouseOver="javascript:montre('smenu2');" onMouseOut="javascript:montre();">
<ul>
<li><a href="index.php?page=sousmenu21">Sous menu 2.1</a></li>
<li><a href="index.php?page=sousmenu22">Sous menu 2.2</a></li>
</ul>
</dd>
<form action="" method="post">
pseudo : <input type="text" name="pseudo" size="10"><br>
mot de passe : <input type="text" name="mdp" size="10"><br>
<INPUT name="btn_login" type="submit" lang="fr" value="Valider">
</form>
</div>
<div class="frame">
<?php
if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];
switch($page)
{
case 'menu1': include ('menu1.php');break;
case 'menu21': include ('menu21.php');break;
case 'menu22': include ('menu22.php');break;
}
?>
</div>
</body>
</html>
<<<< ============= Fin ============= >>>>
une fois l'identification effectué, le login de l'utilisateur est bien retenu. Par contre, les données se perdent quand je vais dans le menu21 et 22 alors que leur conne php commencent par : <? session_start(); ?>
Comment faire?