02:09 - The Way Of Naruto - Rechercher
Forum The Way Of Naruto

[PHP] Probleme de Chat avec espace membre  

Lancé par Kurapika M - 2 réponses - Page 1



Kurapika M
Kurapika M
Bon Genin

  • 90 Messages | Galerie | Recueil | Offline

[PHP] Probleme de Chat avec espace membre

Bonjour, j'ai un petit probleme consernant un chat que j'aimerais mêtre sur mon site avec l'espace membre que je vient de créer.
Avant j'avais créer un chat sauf que il falais à chaque fois rentrez un pseudo dans un post donc tout le monde pouvais ce faire passez pour n'importe qui alors j'ai eu l'idée d'un espace membre big_smile sauf que je n'y arrive pas tout a fait comme je le pensais. C'est alors que je me tourne vers vous.


Mini Chat avec pseudo à rentrer à chaque fois:

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">
    form
    {
    text-align:center;
    }
    </style>
    <body>
 
 
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "sdz", "mot_de_passe");
        mysql_select_db("coursphp");
 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
 
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
 
        // On se déconnecte de MySQL
        mysql_close();
    }
}
 
 
// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages
 
// Tout d'abord le formulaire :
?>
 
 
 
<form action="minichat.php" method="post">
 
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message :  <input type="text" name="message" /><br />
 
<input type="submit" value="Envoyer" />
</p>
 
</form>
 
 
 
<?php
 
// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
 
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
 
// On se déconnecte de MySQL
mysql_close();
 
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
 
 
 
<?php
}
// Fin de la boucle, le script est terminé !
?>
 
 
    </body>
</html>

donc cela est mon chat actuelle qui n'est pas super
je vais maintenant vous metre mon espace membre. J'ai créer 4 pages: la page membre.php, index.php, deconexion.php, et inscription.php.


Membre.php:

Code:

<?php

session_start();  
if (!isset($_SESSION['login'])) { 
   header ('Location: index.php'); 
   exit();  
}  
?>

 
<html>
<head>
<title>Espace membre</title>
</head>
 
<body>
Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>

index.php:

Code:

// on teste si le visiteur a soumis le formulaire de connexion  
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
 
      $base = mysql_connect ('localhost', '', ''); 
      mysql_select_db ('', $base); 
      
      // on teste si une entrée de la base contient ce couple login / pass 
      $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
      $data = mysql_fetch_array($req); 
      
      mysql_free_result($req); 
      mysql_close(); 
      
      // si on obtient une réponse, alors l'utilisateur est un membre 
      if ($data[0] == 1) { 
         session_start(); 
         $_SESSION['login'] = $_POST['login']; 
         header('Location: membre.php'); 
         exit(); 
      } 
      // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
      elseif ($data[0] == 0) { 
         $erreur = 'Compte non reconnu.'; 
      } 
      // sinon, alors la, il y a un gros problème :) 
      else { 
         $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
      } 
   } 
   else { 
      $erreur = 'Au moins un des champs est vide.'; 
   }  
}  
?>

<html>
<head>
<title>Accueil</title>
</head>
 
<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php

if (isset($erreur)) echo '<br /><br />',$erreur;  
?>

</body>
</html>

inscription.php:

Code:

<?php

// on teste si le visiteur a soumis le formulaire  
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides 
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { 
      // on teste les deux mots de passe 
      if ($_POST['pass'] != $_POST['pass_confirm']) { 
         $erreur = 'Les 2 mots de passe sont différents.'; 
      } 
      else { 
         $base = mysql_connect ('localhost', '', ''); 
         mysql_select_db ('', $base); 
         
         // on recherche si ce login est déjà utilisé par un autre membre 
         $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
         $data = mysql_fetch_array($req); 
 
         if ($data[0] == 0) { 
            $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")'; 
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
            session_start(); 
            $_SESSION['login'] = $_POST['login']; 
            header('Location: membre.php'); 
            exit(); 
         } 
         else { 
            $erreur = 'Un membre possède déjà ce login.'; 
         } 
      } 
   } 
   else { 
      $erreur = 'Au moins un des champs est vide.'; 
   }  
}  
?>

<html>
<head>
<title>Inscription</title>
</head>
 
<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php

if (isset($erreur)) echo '<br />',$erreur;  
?>

</body>
</html>

deconnexion.php:

Code:

<?php

session_start();  
session_unset();  
session_destroy();  
header('Location: index.php');  
exit();  
?>

Voila donc si quelqun qui arrive je lui en serai tres reconnaissant

Yeah! vive le boulet que je suis XD

Kurapika M
Kurapika M
Bon Genin

  • 90 Messages | Galerie | Recueil | Offline

Re: [PHP] Probleme de Chat avec espace membre

Up

Cliquez pour afficher le texte caché. Attention, Spoil.

Yeah! vive le boulet que je suis XD

Akihiro
Akihiro
Bon Chuunin

Re: [PHP] Probleme de Chat avec espace membre

Ben ça aurait été plus rapide de faire un chat qui ne nécessite pas d'inscription, mais bon puisque tu voulais quelque chose de plus complexe, je vais essayer de voir ce qui ne va pas avec ton php, mais avant tout il faudrait que tu nous précise qu'est-ce qui ne va pas ?
Déjà perso je peux te dire que si je serais à ta place, j'aurais pas fait le système de connexion en session_start(); , mais plutôt avec des variables $_COOKIE, c'est très simple même pour le système de déconnexion (il suffit juste d'appeller le nom du cookie avec une la variable $_COOKIE['']; je crois).
Mais bref, essaie quand même de nous préciser ce qui ne fonctionne pas précisément (l'écriture des membres sur la table de la bdd, la connexion avec la vérification dans les tables, etc...). smile

Dernière modification par Akihiro (29-06-2008 23:23:55)

 

Pied de page des forums




© The Way of Naruto | PunBB © Rickard Andersson | Adapté par dabYo, korokuso
Page générée en 0,0115s | Naruto © 1999 Masashi Kishimoto | A propos du site

visiteurs sur «WoN no Kuni» dont Ninjas online. Rejoignez-les !