Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1061 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  sessions php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sessions php

n°1364792
columbo5
Posté le 12-05-2006 à 09:38:57  profilanswer
 

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?

mood
Publicité
Posté le 12-05-2006 à 09:38:57  profilanswer
 

n°1364832
FlorentG
Unité de Masse
Posté le 12-05-2006 à 10:20:23  profilanswer
 

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 ?

n°1364846
Koyomi
www.sebastiengilles.com
Posté le 12-05-2006 à 10:35:11  profilanswer
 

1/ le session_name(); n'a pas d'intéret
 

Code :
  1. $req_recherche_utilisateur = mysql_query("
  2.     SELECT *
  3.         FROM utilisateurs
  4.             WHERE utilisateur='$pseudo' AND motdepasse='$mdp'" );


 
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();

n°1364855
FlorentG
Unité de Masse
Posté le 12-05-2006 à 10:41:07  profilanswer
 

Pour le 2, il est sauvé si magic_quotes_gpc est activé


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  sessions php

 

Sujets relatifs
Filereference incompatible avec les sessions Php ?[Tomcat] suppression manuelle des sessions
erreur de sessions chez freePartage de sessions entre 2 noms de domaines
Problème de sessions et de tables[WIP] Portail/Blog - Dernier prb: Sécurité, sessions
Probleme avec les sessions sur IIS6[PHP] Collision de sessions
pseudo frames et sessionsBesoin d'aide pour finaliser site sessions
Plus de sujets relatifs à : sessions php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR