Problème session PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème session PHP

par globoeil » 24 juil. 2008, 18:25

Ok! Ca je connais :D Je vais tenter de faire les modifications appropriées. Merci!

par Sékiltoyai » 24 juil. 2008, 17:46

Euh, non, un fichier php, c'est un fichier php…
Un domaine c'est google.com, phpfrance.com, php.net, etc…

par globoeil » 24 juil. 2008, 16:17

Pardon mais je ne suis pas sûr de comprendre ce qu'est un domaine ici... C'est un fichier php? :oops:

par Sékiltoyai » 24 juil. 2008, 16:09

C'est par ici : session_set_cookie_params()

Il faut savoir donc que tu dois le faire avant le session_start(), sur les pages qui ne sont pas du domaine que tu indiques. Par contre, attention, il n'est pas certain que cela fonctionne, et ensuite si cela marche il faut que tu saches exactement ce que cela signifie.
C'est à dire que si tu as le domaine A sur lequel ta session sera valide et le domaine B sur lequel elle ne le sera pas (en gros tu n'as à utiliser cette fonction que sur tes pages du domaine B), si tu appliques ceci sur le domaine B, il te créera systématiquement une nouvelle session, même si elle existe déjà.

par globoeil » 24 juil. 2008, 15:53

Merci pour la réponse :D !
Comment je fais pour choisir un domaine sur lequel la session va être valide? :lol:

par Sékiltoyai » 24 juil. 2008, 13:05

La session ne fonctionne pas sur plusieurs domaines, si tu veux utiliser la session il faut que tu choisisses le domaine sur lequel la session va être valide.

Problème session PHP

par globoeil » 24 juil. 2008, 10:04

Bonjour à tous

Voillà, j'essaie d'utiliser des sessions en PHP pour une identification sur mon site.
J'ai un fichier index.php qui contient un formulaire:

Code : Tout sélectionner

<form name="form" action="http://globoeil.fr/pishiddu/login.php" method="post"> E-mail:<input name="email" type="text"> Mot de passe:<input name="password" type="password" type="hidden"> <input value="Se connecter" type="submit"> </form>
Le fichier Login.php contient:

Code : Tout sélectionner

<?session_start(); //Se connecter à la base de données $hote="xxxxxxxxxx"; $login="xxxxxxxxxxxx"; $mdp="xxxxxxxx"; $bd="xxxxxxxx"; $ip= $REMOTE_ADDR; $user_agent = $_SERVER['HTTP_USER_AGENT']; $connexion= mysql_connect($hote,$login,$mdp); mysql_select_db($bd, $connexion); //Envoyer le mail & mot de passe $req="SELECT email FROM `pishiddu_pishiddu` WHERE PASSWORD='$password' AND email='$email'"; //Recevoir la réponse $resultat=mysql_query($req,$connexion); $row = mysql_fetch_array($resultat); //Si la réponse est l'email envoyé (et non nulle), alors: if( $email == $row[0] ) { //Mémoriser le nom d'utilisateur (sur serveur) echo '<script language="javascript">alert("Vous avez été identifié avec succès!");</script>'; $req="SELECT id FROM `pishiddu_pishiddu` WHERE PASSWORD='$password' AND email='$email'"; $resultat=mysql_query($req,$connexion); $row = mysql_fetch_array($resultat); $_SESSION['monID'] = $row[0]; echo "Mon ID est:".$_SESSION['monID']."."; //Rediriger vers la page principale echo "<br><a href=\"http://pishiddu.com/unlogin.php\">Entrer dans le Grand Pishiddu!</a>"; } else { echo '<script language="javascript">alert("Dégage sale pseudo-pirate.");</script>'; } ?>
J'ai également créé un fichier unlogin.php qui permet de se déconnecter (si on a déja été connecté) dont voici le contenu:

Code : Tout sélectionner

<?session_start(); if(isset($_SESSION['monID'])){ echo "Mon ID est:".$_SESSION['monID'].", et je suis à présent déconnecté"; session_destroy(); }else{ echo "Vous êtes déja déconnecté."; } ?>
Et... Ca ne marche pas du tout. Quand je lance unlogin.php il me reconnait systématiquement comme non identifié.
Peut-être cela vient-il du fichier php.ini (qui est vide chez moi)?
Pouvez-vous m'aider s'il vous plait?

Merci d'avance :)