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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Probleme mise en place de session

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Probleme mise en place de session

n°1717489
xav13
Posté le 14-04-2008 à 22:17:17  profilanswer
 

Bonjour,
 
Je suis débutant en php et j'essaye de mettre en place un système de compte pour les utilisateurs.  
 
Les fichiers concernés par la session sont dans un meme dossier et sont index.php, traitement.php et menud.php
 
1: voila le code de ma page traitement.php( dans mon formulaire j'ai mis action="traitement.php). Le probleme c'est que j'ai pas l'impression qu'il marche beaucoup :). Comment faire pour qu'après avoir logged=1 ça me redirige vers la page d'accueil? Y'a t'il une erreur dans le code? Dois-je mettre un session_start(); en haut de la page traitement ?
 

Citation :

<?php
 
mysql_connect("*****", "*****", "****" );
mysql_select_db("****" );
 
if (isset($_POST)&& !empty($_POST['pseudo']) && !empty($_POST['mdp']))
{
 
$monlogin = $_POST['pseudo'];
$monpass = $_POST['mdp'];
 
$res = mysql_query("SELECT pseudo, mdpsql FROM comptes" );
$infos = mysql_fetch_array($res);
 
if ( !strcmp($infos[login],$monlogin) && !strcmp($infos[pass],$monpass) )
{
$_SESSION[‘page_count’] = 0 ;
$_SESSION[‘name’] = $infos[prenom] ; //récupéré depuis la base de données
$_SESSION[‘author_id’] = $infos[id] ; //récupéré depuis la base de données
$_SESSION[‘logged’] = 1
}
 
mysql_close();
?>


 
2: Ici on est dans index.php qui est ma page d'accueil donc j'aimerai que si $_SESSION[‘logged’] = 0 qu'il y ait un menu pour se connecter
et que si $_SESSION[‘logged’] = 1 soit affiché un menu "mon compte" a la place de l'autre. Or avec le code ci-dessous qui me semble juste et bien ca ne marche pas  :D auriez vous une idee ?
 

Citation :


<div id="menudroite">
   
  <?php  
   
  if ($_SESSION[‘logged’] = 1)
  {
  include("moncompte.php" );
  }    
       
  else
  {
 include("menud.php" );
  }
   
 ?>


 
Je sais que ca fait beaucoup de questions merci d'avance pour votre aide :)

mood
Publicité
Posté le 14-04-2008 à 22:17:17  profilanswer
 

n°1717535
wrksx
Posté le 15-04-2008 à 08:57:54  profilanswer
 

Si tu veu pouvoir insérer des données dans le tableau $_SESSION, ou en lire, oui tu doi faire appel a session_start() avant..

n°1718112
xav13
Posté le 15-04-2008 à 22:21:37  profilanswer
 

yop, finalement ca marche avec session_start() au début de la page. de meme pr les if ils fonctionnent avec session_start() au début de la page
 
merci :-)

n°1718456
wrksx
Posté le 16-04-2008 à 12:30:21  profilanswer
 

puisque tu débute je me permet de conseiller de mettre en place des mots de passe cryptés edit: hashé (autant pour moi) (avec la fonction md5( ) par exemple), juste pour t'entrainer...
 
De plus tu dois apprendre a protéger ton site des injections SQL et autres failles horribles du genre...


Message édité par wrksx le 21-04-2008 à 12:41:42
n°1720205
xav13
Posté le 19-04-2008 à 11:40:20  profilanswer
 

Pour les mots de passe j'ai mis la fonction md5. Est-ce la seule information que l'on doit crypté dans la BDD ?
Pour ce qui est des autres joyeusetés sur la sécurité j'ai jeté un coup d'oeil mais j'ai pas encore le niveau je comprend pas tous les problèmes expliqués(et surtout comment les corriger :D ) sur http://phpsec.org/projects/guide/fr/   ...

n°1720223
masterpsx
Aigloun foutougrafe
Posté le 19-04-2008 à 12:44:45  profilanswer
 

Le fait de hasher (et non pas crypter) tes mots de passe comptes utilisateur en md5() dans la base de données permet en théorie de ne pas pouvoir les récuperer en clair, que ce soit par injection SQL ou autres. Malheuresement il existe des bases de données sur le net et donc ca ne suffit pas toujours pour les mots de passe les plus simple.
 
Il existe d'autre méthode de hashage comme sha1(), on vois également souvent des indicateurs de niveau de sureté (pour le mot de passe) dans les formulaire d'inscriptions. On peut également utiliser un peu d'astuce en rajoutant des chaines de caractéres aléatoire dans le hashage, ce n'est pas infaible mais rend trés difficile l'utilisation de base de données du net.
 
Tout ceci s'adresse plutot au site important ou au cms dont les sources sont publiés, pour un script perso, il suffit juste de respecter quelques régles de base et de bon sens.


Message édité par masterpsx le 19-04-2008 à 12:45:20
n°1720461
xav13
Posté le 20-04-2008 à 12:51:44  profilanswer
 

plop,
 
Les indicateurs de niveau de sureté sont des scripts javascripts?
 
Pour proteger un peu plus sa bdd est-ce que ça peut etre utile de renommer les champs ? du style à la place de 'comptes' mettre 'j5kqs4' ?

n°1720470
masterpsx
Aigloun foutougrafe
Posté le 20-04-2008 à 13:15:24  profilanswer
 

Oui c'est du simple javascript qui verifie le nombre et le type de caractéres, c'est une simple indication pour le futur membre, ce n'est pas une vrais sécurité.
 
Renommer ses champs ou ses tables n'est pas trés utile, ca peut protéger éventuellement un petit peu des injection SQL mais de toute façon si tu ne publies pas tes sources, c'est tout de même difficile de connaitre le nom de tes tables et de tes champs.

n°1720675
xav13
Posté le 20-04-2008 à 22:17:52  profilanswer
 

merci pour tes réponses l'ami ^^
 
j'en profite d'être avec des connaisseurs ... :p
 
avec les formulaires :
1) Ne faut-il jamais faire d'extract($_POST) ou extract($_GET) ?  
2) Si quelqu'un rajoute des variables quelle est le risque si ces variables ne sont nul part traitées dans mon code php?
3) est-ce plus prudent, pour remplacer extract, de faire pour chaque variable $mavariable= $_POST['mavariable'] ?
 

n°1720933
wrksx
Posté le 21-04-2008 à 12:29:13  profilanswer
 

1)
l'utilisation d'extract peut être dangereuse si les bons paramètres ne sont pas utilisés... peut être utile si tu as de nombreuses entrées a récupérer dans $_POST (ou $_GET) mais sinon je vois pas trop l'intérêt.
 
2)
Si les variables en question ne sont pas utilisées dans ton code, aucun risque. En effet les données envoyées resteront stockée dans une case du tableau $_GET (si la méthode get est utilisée pour ton formulaire bien sur). C'est précisément pour ça que extract pourrai être parfois dangereux puisque par défaut il écrase les variables préexistante par les valeur du tableau.
 
3)
$mavariable= $_POST['mavariable'] fonctionne parfaitement, et ça rend le code un peu plus clair pour moi, mais c'est peut-être un question de goût =) !


Message édité par wrksx le 21-04-2008 à 12:37:51
mood
Publicité
Posté le 21-04-2008 à 12:29:13  profilanswer
 

n°1721353
xav13
Posté le 21-04-2008 à 22:17:33  profilanswer
 

plop,
 
merci pour tes réponses ca m'aide bien étant donné que ce genre de petits détails ne sont pas toujours indiqués dans les tuto ! ^^


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

  [PHP] Probleme mise en place de session

 

Sujets relatifs
Javascript PHP et innerhmtlRESOLU PHP lecteur mp3 / lire mp3 a partir d'un dossier
probleme flash/htmlProbleme Requete Access
Probleme settimeout pour afficher plusieurs texte à la suite[C++] Problème FORK
INSERT PHP/ACCESSHeritage: virtual / static probleme de design
Probleme d'apostrophe en javascriptFlash - Php - MySQL
Plus de sujets relatifs à : [PHP] Probleme mise en place de session


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