Se connecter avec
S'enregistrer | Connectez-vous

Sessions php...

Dernière réponse : dans Programmation

Bonjour.
4jai un petit problème avec les sessions; Voici mon code de connexion pour les sessions:

  1. <?
  2. session_start(); // Pour la suite
  3. require ("config2.php");
  4.  
  5. $Pseudo = $_POST['Pseudo']; //On recupère le pseudo et le pass
  6. $Password = $_POST['Password'];
  7.  
  8. if (!empty($Pseudo) && !empty($Password)) //S'ils sont pas vident
  9. {
  10. $sql = connect_sql(); //On se connecte à MySQL
  11.  
  12. $reponse = mysql_query ("SELECT * FROM users WHERE Pseudo='$Pseudo'"); //On recupère les infos à partir du pseudo
  13. $donnees = mysql_fetch_array ($reponse);
  14. $verif = $donnees['Password'];
  15. $id = $donnees['id'];
  16. $pseudo_sql = $donnees['Pseudo'];
  17. $confirm = $donnees['confirm'];
  18.  
  19.  
  20. if($Password != $verif) //On verifie que le pass entré est égale à celui de la BDD, si le passe est différent
  21. {
  22. $reponse = '<font color=red><b>Votre identifiant ou votre code secret est incorrect!</b></font><br><br>
  23. <table width="465" border="0" cellspacing="0" cellpadding="0">
  24. <tr>
  25. <td width="256"><div style=" position:relative; height:27px; border:2px dashed #FF0000; text-align:center; background-color:#FFFFFF; color:#FF0000; font-size:18px; width:200px; padding-top:5px; margin-left:auto; margin-right:auto; ">
  26. <form id="form1" name="form1" method="post" action="send_pass.php">
  27. <input type="submit" name="Submit" value="Mot de Passe oublié?" />
  28. </form>
  29. </div></td>
  30. <td width="40"> </td>
  31. <td width="284"><div style=" position:relative; height:27px; border:2px dashed #009900; text-align:center; background-color:#FFFFFF; color:#FF0000; font-size:18px; width:200px; padding-top:5px; margin-left:auto; margin-right:auto; ">
  32. <form id="form1" name="form1" method="post" action="inscription.php">
  33. <input type="submit" name="Submit22" value="Pas encore inscrit?" />
  34. </form>
  35. </div></td>
  36. </tr>
  37. </table>';
  38. }
  39. elseif(!empty($confirm)) //Si le compte n'est pas activé
  40. {
  41. $reponse = '<font color=red><b>Votre compte n\'est pas encore activé. <a href=send_activation.php>Cliquez ici</a> si vous n\'avez pas reçu la clé d\'activation.</font></b>';
  42. }
  43. else //Sinon tout est bon
  44. {
  45. $_SESSION['Pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
  46. $reponse = '<b><font color=green>Connexion réussite avec succès.<br> Vous allez être redirigé dans quelues instants.<br><br> <a href="index.php">Ou cliquez ici si vous ne souhaitez pas attendre</a></font></b>';
  47. }
  48. mysql_close($sql); //On ferme la connection
  49. }
  50.  
  51. ?>


Mon code est bon normalement, car il marche, ou 'jai fait des erreurs?

Ensuite, sur mon index, pour que les utilisateurs loggués voyent certaines choses, 'jai mis ceci:

  1. <?php
  2. session_start();
  3. if (!isset($_SESSION['Pseudo']))
  4. {echo 'ce que je veux qui s\'affiche aux connectés';}
  5. {
  6. else"ce que je veux qui s'affiche aux non connectés";
  7. }
  8. ?>


Malheureusement, ceci ne marche pas, ca m'affiche toujours le message ce que je veux qui s\'affiche aux connectés.

comment faire svp?
Merci de me répondre.

Autres pages sur : sessions php

Lassé par la pub ? Créez un compte

  1. <?php
  2. session_start();
  3. if (isset($_SESSION['Pseudo']))
  4. {echo 'ce que je veux qui s\'affiche aux connectés';}
  5. else
  6. {
  7. echo 'ce que je veux qui s\'affiche aux non connectés';
  8. }
  9. ?>


le if (!isset(...)) renvoie true si un utilisateur n'est pas connecté, enleve le "!"

remplace
  1. if (!empty($Pseudo) && !empty($Password)) //S'ils sont pas vident

par
  1. if ((!empty($Pseudo)) && (!empty($Password)) //S'ils sont pas vident

Quand tu utilises && ou || avec un if, il faut mettre entre parenthèse chaque vérification. Sinon ca ne fonctionne pas, personnellement j'utilise aussi empty plutot que isset, question d'habitude.
Expert Programmation

Code légèrement corrigé qui fonctionne chez moi :) 
  1. <?php
  2. session_start();
  3. if ((isset($_SESSION['Pseudo'])) && ($_SESSION['Pseudo']!="")) {
  4. echo 'ce que je veux qui s\'affiche aux connectés';
  5. } else {
  6. echo 'ce que je veux qui s'affiche aux non connectés';
  7. }
  8. ?>

Le principe du message marhc,e mais voici ce que ca m'affiche:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/kadoland/public_html/index.php:7) in /home/kadoland/public_html/index.php on line 48

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/kadoland/public_html/index.php:7) in /home/kadoland/public_html/index.php on line 48

A quoi est du ceci svp?

J'ai mis "<?php session_start();?>" en première ligne (Ligne 1) , puis suivi de:

  1. <?php
  2. if (isset($_SESSION['Pseudo'])) {echo "ce que je veux qui s\'affiche aux connectés";}
  3. else{ echo "ce que je veux qui s'affiche aux non connectés";}
  4. ?>


Malheureusement, le code ne marche que sous INternet Explorer, sous Firefox ca marche pas.

Comment ceci se fait-il svp?
Merci de me répondre.

Lassé par la pub ? Créez un compte
Tom's guide dans le monde