[résolu] frames / elements dans un cadre

frames / elements dans un cadre [résolu] - PHP - Programmation

Marsh Posté le 05-05-2008 à 16:09:03    

Bonjour !  
 
je suis débutant dans le php et j'essaye de faire un site perso dans lequel j'ai créé un formulaire avec une base de donée Mysql.
ensuite j'ai créé un endroit de "login" avec des sessions. Jusque la tout va bien sauf que j'arrive pas a l'inserer comme je voudrais .  
enfait j'aimerais faire une petite fenetre avec un les champs de saisies "pseudo" et "mot de passe", et lorsque quelqu'un se connecte ce champ soit remplacé par " Bienvenue 'pseudo', ... etc."
 
donc dans ma page index j'ai inséré une balise Div   :
 

Code :
  1. <div id="login"align="center">
  2.       <?php
  3.  
  4. include("login/login.php" );
  5. ?>
  6.     </div>


 et ma page de login ressemble a ca :  

Code :
  1. <?php
  2. if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pwd']))
  3. {
  4.  
  5. extract($_POST);
  6.  
  7. $connect = mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur ".$host);
  8. mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
  9. $sql = "select pass from membres where pseudo='".$login."'";
  10. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  11. $data = mysql_fetch_assoc($req);
  12.   if($data['pass'] != $pwd)
  13.    {
  14.     echo '<p>Mauvais login / password. Merci de recommencer</p>';
  15.     exit;
  16.    }
  17.   else
  18.   {
  19. session_start();
  20. $_SESSION['pseudo'] = $login;
  21. echo 'Bienvenue ',$_SESSION['pseudo'];
  22. ?>
  23. <a href="login/logout.php">Deconnexion</a>
  24. <?php
  25. exit;
  26.    } 
  27. }
  28. ?>
  29. <form action="index.php?page=login/login.php" method='post'>
  30. <p>Pseudo<br>
  31. <input name="login" type="text" size="20"maxlength="20">
  32. <br>
  33. Mot de passe<br>
  34. <input name="pwd" type="password"   size="20" maxlength="20">
  35. <br>
  36. <input type="submit" name="Connexion" >
  37. </p>
  38. <a href="index.php?page=inscription">Inscription</a>
  39. </form>


 
le souci c'est que quand quelqu'un se connecte, ma page affiche seulement le texte "bienvenue 'pseudo'...  et  ma bannière, le contenu, le pied de page  etc.. n'y sont plus.
Voila si quelqu'un peut m'apporter des précision sur les endroits que je dois modifier..
Merci d'avance.

Message cité 1 fois
Message édité par Jere06 le 09-05-2008 à 13:22:48
Reply

Marsh Posté le 05-05-2008 à 16:09:03   

Reply

Marsh Posté le 05-05-2008 à 16:14:37    

Jere06 a écrit :

Bonjour !  
 
je suis débutant dans le php et j'essaye de faire un site perso dans lequel j'ai créé un formulaire avec une base de donée Mysql.
ensuite j'ai créé un endroit de "login" avec des sessions. Jusque la tout va bien sauf que j'arrive pas a l'inserer comme je voudrais .  
enfait j'aimerais faire une petite fenetre avec un les champs de saisies "pseudo" et "mot de passe", et lorsque quelqu'un se connecte ce champ soit remplacé par " Bienvenue 'pseudo', ... etc."
 
donc dans ma page index j'ai inséré une balise Div   :
...
le souci c'est que quand quelqu'un se connecte, ma page affiche seulement le texte "bienvenue 'pseudo'...  et  ma bannière, le contenu, le pied de page  etc.. n'y sont plus.
Voila si quelqu'un peut m'apporter des précision sur les endroits que je dois modifier..
Merci d'avance.


Déjà, met le session_start() avant tout echo, tu ne peux pas modifier les headers une fois que tu as commencé à afficher du texte

Reply

Marsh Posté le 05-05-2008 à 16:17:25    

Paulp a écrit :


Déjà, met le session_start() avant tout echo, tu ne peux pas modifier les headers une fois que tu as commencé à afficher du texte


 
Oui merci, je l'avais mis dans mon "index.php" mais c'est vrai que c'est mieux de l'appeler directement dans "login.php". :jap:

Reply

Marsh Posté le 05-05-2008 à 16:55:03    

Si ça peut aider voila mon site : http://jere.marion.free.fr
avec comme pseudo : test et mot de passe : test

Reply

Marsh Posté le 05-05-2008 à 16:59:16    

Jere06 a écrit :

Si ça peut aider voila mon site : http://jere.marion.free.fr
avec comme pseudo : test et mot de passe : test


exit ligne 29 ?

Reply

Marsh Posté le 05-05-2008 à 17:07:13    

Paulp a écrit :


exit ligne 29 ?


 
si j'enlève le exit; ligne 29 ca affiche " bienvenue ..." et en dessous ca me remet le formulaire. et quand je clique sur "accueil" ou " commentaires" par exemples ca me remet seulement le formulaire..  :??:  
il faudrait peut être que je revoie la structure de "login.php" ...
si quelqu'un sait comment je peux m'y prendre  ;)

Reply

Marsh Posté le 05-05-2008 à 17:17:50    

Jere06 a écrit :


 
si j'enlève le exit; ligne 29 ca affiche " bienvenue ..." et en dessous ca me remet le formulaire. et quand je clique sur "accueil" ou " commentaires" par exemples ca me remet seulement le formulaire..  :??:  
il faudrait peut être que je revoie la structure de "login.php" ...
si quelqu'un sait comment je peux m'y prendre  ;)


Le exit arrete completement le rendu de la page.
 
Je crois que return en dehors d'une fonction arrete le rendu du fichier courrant, donc ca pourrait être une solution (assez crade :D )
 
Sinon :
 

Code :
  1. <?php
  2. if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pwd']))
  3. {
  4.  
  5. extract($_POST);
  6.  
  7. $connect = mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur ".$host);
  8. mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
  9. $sql = "select pass from membres where pseudo='".$login."'";
  10. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  11. $data = mysql_fetch_assoc($req);
  12.   if($data['pass'] != $pwd)
  13.    {
  14.     echo '<p>Mauvais login / password. Merci de recommencer</p>';
  15.     exit;
  16.    }
  17.   else
  18.   {
  19. session_start();
  20. $_SESSION['pseudo'] = $login;
  21. echo 'Bienvenue ',$_SESSION['pseudo'];
  22. ?>
  23. <a href="login/logout.php">Deconnexion</a>
  24. <?php
  25.    } 
  26. }
  27. if(empty($_SESSION['pseudo'])){
  28. ?>
  29. <form action="index.php?page=login/login.php" method='post'>
  30. <p>Pseudo<br>
  31. <input name="login" type="text" size="20"maxlength="20">
  32. <br>
  33. Mot de passe<br>
  34. <input name="pwd" type="password"   size="20" maxlength="20">
  35. <br>
  36. <input type="submit" name="Connexion" >
  37. </p>
  38. <a href="index.php?page=inscription">Inscription</a>
  39. </form>
  40. <?php }  else
  41. // Mettre ici le lien de deconnexion
  42. ?>


Reply

Marsh Posté le 05-05-2008 à 18:00:59    

Merci Paulp.  
je vais utiliser ce que tu m'as donné .mais y a encore un souci .. le session_start() ligne 23, il faudrait le mettre ailleurs car apparemment il y a quelque chose d'écrit avant. mais je ne vois pas trop ou le mettre ..
.
et aussi pour mon lien de déconnexion, il faut que je l'écrive comment ? car enfait j'ai une page deconnexion.php comme ça :  

Code :
  1. <?php
  2. session_start();
  3. $_SESSION = array();
  4. session_destroy();
  5. header('Location: ../index.php');
  6. ?>


 
 il faut que je l'écrive comme ça a la fin de mon code :  :??:  

Code :
  1. <?php }
  2. else{
  3. ?>
  4. <a href="login/deconnexion.php">deconnexion</a>
  5. <?php
  6. }
  7. ?>


 
désolé je suis vraiment débutant en php  :D

Reply

Marsh Posté le 05-05-2008 à 19:00:14    

Jere06 a écrit :

Merci Paulp.  
je vais utiliser ce que tu m'as donné .mais y a encore un souci .. le session_start() ligne 23, il faudrait le mettre ailleurs car apparemment il y a quelque chose d'écrit avant. mais je ne vois pas trop ou le mettre ...


Perso je le mets toujours en haut de chaque page (pas de chaque fichier php, hein), en haut de index.php dans ton cas si j'ai suivi

Jere06 a écrit :


et aussi pour mon lien de déconnexion, il faut que je l'écrive comment ? car enfait j'ai une page deconnexion.php comme ça :  
...
 il faut que je l'écrive comme ça a la fin de mon code :  :??:  

Code :
  1. <?php }
  2. else{
  3. ?>
  4. <a href="login/deconnexion.php">deconnexion</a>
  5. <?php
  6. }
  7. ?>


 
désolé je suis vraiment débutant en php  :D  


Oui quelque chose comme ca ...
 
En gros la structure de base du truc ca serait
Si quelqu'un essaie de se connecter, le connecter
Si l'utilisateur est connecté, mettre un message d'accueil, un lien de deconnexion
Sinon mettre le formulaire de connexion

Code :
  1. if(!empty($_POST['login']) && !empty($_POST['password'])){ // Si quelqu'un essaie de se connecter
  2.   //Verification du password, et initialisation de session['login'] le cas échéant
  3. }
  4. if(!empty($_SESSION['login'])){ // Si l'utilisateur est connecté
  5.   //Lien deconnexion
  6. } else { // Si l'utilisateur n'est pas connecté
  7.   // Formulaire de connexion
  8. }

Reply

Marsh Posté le 08-05-2008 à 00:22:12    

merci paulp !! j'essaye de mettre tout ça en place.. pas facile facile ( enfin pour moi :D)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed