PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-06-2010 22:35:51

qurus
Membre
Inscription : 09-06-2010
Messages : 17

[Résolu] session et sql

Bonjour,

  J'ai un login script qui fonctionne bien.  Je me demandais si avec une bdd sql, je peux inséré des éléments dans le session start? Dans ma bdd j'ai plusieur champs et j'aimerais que le champs niveau d'acces sois inséré dans le session start pour pouvoir donnée acces a des pages selon le niveau d'acces.  Si cela est faisable, est-ce que quelqu'uns pourrais me dire simplement la(les commandes) que je dois utiliser sans entrée en détail j'aimerais essayer de trouver par moi meme.  Merci

Hors ligne

#2 19-06-2010 07:28:56

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] session et sql

Donc je pars du principe que tu maitrise déjà les connexions à MySQL, donc il ne te reste qu'à comprendre les sessions :
http://www.phpdebutant.org/article69.php

Ce n'est en rien monstrueux, c'est assez basique. ^^

Hors ligne

#3 19-06-2010 19:41:12

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

Merci beaucoup smile

Une erreur de débutant.  J'avais oublier de mettre la balise session_start au debut.  Ca va mal a la fin du script smile

Hors ligne

#4 20-06-2010 03:41:30

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

Maintenant tout fonctionne bien.  mes différents usagers apparaissent bien sur chanque pages.  j'essaie de mettre des acces selon le niveau d'autorisation inséré dans ma base sql.  je réussi a trouver les données dans ma base de données mais ma commande semble mauvaise pour le blocages d'acces selon le niveau requis.

<?php
session_start()
if( !$_SESSION['level'] == "admin" )
  echo "Non connecté";
?>


example sur ma page admin.

Hors ligne

#5 20-06-2010 08:43:19

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] session et sql

<?php
session_start();
if( $_SESSION['level'] != "admin" )
{
    echo "Vous n'avez pas le droit d'accéder à cette page";
}
else
{
    // Page
}
?>

Comme ceci. smile
Ou si tu souhaites absolument ta condition il aurait fallu mettre des parenthèses entre le ! et le reste, car c'est le fait qu'il soit admin qu'on veut vérifier négativement. Dans ton cas tu inverses la variable et ensuite tu compares à "admin".

Hors ligne

#6 20-06-2010 14:45:03

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

ca fonctionne mais la meme si je suis loguer admin ca me bloque.

Je te donne mon script dans pas long.

Dernière modification par qurus (20-06-2010 14:54:13)

Hors ligne

#7 20-06-2010 15:24:15

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

Voici mon code

Checklogin page


<?php
session_start();

$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="dbname"; // Database name
$tbl_name="table name"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$punch=$_POST['punch'];
$password=$_POST['password'];

//encrypt password
$encrypted_password=md5($password);

// To protect MySQL injection (more detail about MySQL injection)
$punch = stripslashes($punch);
$password = stripslashes($password);
$punch = mysql_real_escape_string($punch);
$password = mysql_real_escape_string($password);


$sql="SELECT password, level, prenom, nom FROM $tbl_name WHERE punch='$punch'";
$result=mysql_query($sql);
    $data = mysql_fetch_assoc($result);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $punch and $password, table row must be 1 row

if($count==1){
// Register $punch, $password and redirect to file "login_success.php"
  $_SESSION['prenom'] = $data['prenom'];
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['punch'] = $data['punch'];
  $_SESSION['level'] = $data['level'];
header("location:login_success.php");
}
else {
echo "Nom d'utilisateur/mot de passe invalide";
}
ob_end_flush();
?>


 

login successfull


<?
session_start();
if(session_is_registered(punch)){
header("location: /menu/index.php");
}
?>

<html>
<body>
Login Successful
</body>
</html>
 

Page admin


// On part la session
<?php
session_start();
//On vérifie le niveau d'utilisateur.
if( $_SESSION['level'] != "admin" )
{
   header("location: /menu/sessionid.php");
}
else
{
   
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
 

<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Calandering Software</title>
   <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>

<body>
   <div id="container">
      <div id="header"><div id="header_left"></div><div id="header_main"></div><div id="header_right"></div></div>

     
      <!-- This is the left sidebar with navigation BEGIN -->
      <div id="sidebar"><?php include('Navigation.class.php'); ?></div>
      <!-- Navigation and sidebar END -->

      <p><center><span style="font: bold 25px verdana">Menu Administrateur</a></span></center></p>
        <p align="center" border="2"></br></br>
  <INPUT TYPE="BUTTON" VALUE="Ajout d'utilisateur" ONCLICK="window.location.href='admin/add_user.php'"><br/><br/>
  <INPUT TYPE="BUTTON" VALUE="Changer un compte" ONCLICK="window.location.href='admin/update_user.php'"><br/><br/>
  <INPUT TYPE="BUTTON" VALUE="Voir un compte" ONCLICK="window.location.href='admin/view_user.php'"><br/><br/>

        </p>


<br/><h1><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' '[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
 

Hors ligne

#8 20-06-2010 16:15:03

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] session et sql

Hum... Et cela ne te semble pas bizarre de ne rien mettre dans le else ?
Ainsi que de définir deux doctype, ainsi que html, head... Enfin je dis cela je dis rien. roll

Hors ligne

#9 20-06-2010 18:03:36

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

ouais j'avais oublier d'effacer de mon premier couper coller
mon erreur tongue


47.<br/><h1><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' '[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]'>
48.<html xmlns='http://www.w3.org/1999/xhtml'>
49.<head>
50.<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
 

Dans je devrais écrire quelques chose comme...


2.<?php
3.session_start();
4.//On vérifie le niveau d'utilisateur.
5.if( $_SESSION['level'] != "admin" )
6.{
7.   header("location: /menu/sessionid.php");
8.}
9.else if( $_SESSION['level'] == "admin" )
10.{
11.      return (NULL);
12.}
 

??

Hors ligne

#10 20-06-2010 18:18:59

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] session et sql

Rassures moi, tu comprends quelque chose à ce que tu écris ?
Le but si l'utilisateur est reconnu en tant qu'admin n'est-il pas de lui afficher la page qu'il souhaite consulter ?
Dans ce cas pourquoi un return(NULL) ?

Hors ligne

#11 20-06-2010 19:14:34

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

Je te cacherai pas que je suis débutant.
je comprend ce bout,


.<?php
3.session_start();
4.//On vérifie le niveau d'utilisateur.
5.if( $_SESSION['level'] != "admin" )
6.{
7.   header("location: /menu/sessionid.php"); //session n'est pas admin
8.}
9.else if( $_SESSION['level'] == "admin" )
10.{
11.      header("location: /menu/admin.php"); //session est admin
12.}
 

si je ne me trompe pas ca redirige selon la session ouverte.
mais la on probleme est que mon code a été mis sur ma page admin.  Est-ce que ca se fais ou je doit passer par une page extérieur?

Hors ligne

#12 20-06-2010 19:21:16

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] session et sql

Bon beh à ce niveau...
Ton second header doit être ta page. Tu y mets donc le code de ta page.

Hors ligne

#13 20-06-2010 19:56:34

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

si je comprend bien....


<?php
session_start();
if( $_SESSION['level'] != "admin" )
{
   header("location: /menu/sessionid.php");
}
else {
?>
<html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
 
 
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Calandering Software</title>
   <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
   <div id="container">
      <div id="header"><div id="header_left"></div><div id="header_main"></div><div id="header_right"></div></div>
 
     
      <!-- This is the left sidebar with navigation BEGIN -->
      <div id="sidebar"><?php include('Navigation.class.php'); ?></div>
      <!-- Navigation and sidebar END -->
 
      <p><center><span style="font: bold 25px verdana">Menu Administrateur</a></span></center></p>
        <p align="center" border="2"></br></br>
  <INPUT TYPE="BUTTON" VALUE="Ajout d'utilisateur" ONCLICK="window.location.href='admin/add_user.php'"><br/><br/>
  <INPUT TYPE="BUTTON" VALUE="Changer un compte" ONCLICK="window.location.href='admin/update_user.php'"><br/><br/>
  <INPUT TYPE="BUTTON" VALUE="Voir un compte" ONCLICK="window.location.href='admin/view_user.php'"><br/><br/>
 
        </p>
</body>
</html>
<?php
}
?>
 

mais la le reste ne fonctionne plus.  html en php....je doit reconstruire le reste

Dernière modification par qurus (20-06-2010 20:11:53)

Hors ligne

#14 21-06-2010 05:07:15

qurus
Membre
Inscription : 09-06-2010
Messages : 17

Re : [Résolu] session et sql

Merci xTG

j'ai trouver mon probleme.  3 jours a galere pour une niaiserie.

depuis le debut ce que je faisais étais bon.  Le probleme étais si stupide.  Je cherche une variable admin dans ma base de donnée et j'avais inscrit Admin.

Hors ligne

Pied de page des forums