PHP probleme

Résolu
bonjour voila j'ai crée un page login avec ce code la:

http://img15.hostingpics.net/pics/677519Capture.png

http://img15.hostingpics.net/pics/640939Capture2.png

mais volia dedans il y a une erreur mais je n'arrive pas a la trouvé voila ce que sa fait quand je me connecte avec un vrai id :

http://img15.hostingpics.net/pics/139699Capture.png

svp aidez moi :-( déjà sue je suis pas fort ...

3 réponses

  1. Pourrais-tu mettre ton code en mode texte ?
    Je vais essayer de t'aider
    1. d'accord
    2. register.php ( page d'inscription )

      <meta charset="utf-8">

      <?php

      if(isset($_POST['submit']))
      {

      $username = htmlspecialchars(trim($_POST['username']));
      $password = htmlspecialchars(trim($_POST['password']));
      $repeatpassword = htmlspecialchars(trim($_POST['repeatpassword']));

      if($username&&$password&&$repeatpassword)
      {
      if(strlen($username)>=4)
      {
      if(strlen($password)>=6)
      {
      if($password==$repeatpassword)
      {
      $password = md5($password);

      mysql_connect("monsteur-tuto.fr.mysql", "monster_tuto_fr", "");
      mysql_select_db("monster_tuto_fr", $db);;

      $query = mysql_query("

      INSERT INTO users VALUES ('','$username','$password')

      ");

      die('Inscription terminée, vous pouvez vous <a href="login.php">connecter</a>');

      }else echo "Les mots de passe ne sont pas identiques !";
      }else echo "Le mot de passe est trop court !";
      }else echo "Le nom d'utilisateur est trop court !";
      }else echo "Veuillez sasir tous les champs !";
      }
      ?>

      <title>Inscription</title>

      <h1>Inscription</h1>
      <form method="post" action="register.php">
      <p>Votre nom d'utilisateur</p>
      <input type="text" name="username">
      <p>Votre Mot de passe</p>
      <input type="password" name="password">
      <p>Répetez votre mot de passe</p>
      <input type="password" name="repeatpassword"><br><br>
      <input type="submit" name="submit" value="Valider">

      </form>
      <a href="login.php">Je possède déjà un compte</a>

      login.php ( page de conexion )

      <?php

      session_start();

      if(isset($_POST['submit']))
      {

      $pseudo = htmlspecialchars(trim($_POST['pseudo']));
      $password = htmlspecialchars(trim($_POST['password']));

      if(empty($pseudo))
      {
      echo "Veuillez sasir votre pseudo<br/>";
      }else if(empty($password))
      {
      echo "Veuillez sasir votre pseudo";
      }else{

      $db=mysql_connect("vmonsteur-tuto.fr.mysql", "monster-tuto.fr", "mot de passe");
      mysql_select_db("monster_tuto_fr", $db);

      $password = md5($password);

      $login = mysql_query("SELECT * FROM users WHERE username='$pseudo' AND password='$password'");

      $rows = mysql_num_rows($login);

      if($rows == 1)
      {

      $_SESSION['pseudo'] = $pseudo;

      header ('Location:membre.php');

      }else echo "Nom d'utilisateur ou mot de passe incorrect";

      }
      }

      ?>

      <h1>Conexion</h1>

      <form method="post" action="">

      <p>Votre pseudo</p>
      <input type="text" name="pseudo" /><br/>

      <p>Votre mot de passe</p>
      <input type="password" name="password" /><br/><br/>

      <input type="submit" name="submit" value="Se connecter" />

      </form>

      <a href="register.php">Pas encore membre</a>

      ( deconexion redirection vers login )

      <?php

      session_start();

      session_destroy();

      header('Location:login.php');

      ?>

      membre.php ( espace membre )

      <?php

      session_start();

      if(isset($_SESSION['pseudo']))
      {
      echo "Bonjour ".$_SESSION['pseudo'];
      ?>
      <meta charset="utf-8">

      <br/><br/><a href="logout.php">Me déconnecter</a>

      <?php
      }else{
      header('Location:login.php');
      }

      ?>
  2. Salut,
    Ya pas mal d'erreurs...
    Déjà le plus flagrant dans ta requête c'est la concaténation des variables qui est mauvaise.
    Voilà un exemple avec la variable $prenom, dans un echo double quotes
    echo "Bonjour" .$prenom. " tu vas bien ?";
    De plus, mysql_ est obsolète comme interface d'accès à un bdd depuis php, tourne toi vers PDO
    1. Contributeur
      Salut,
      ici mysql_num_rows se plaint de recevoir un booléen alors qu'il veut une ressource.
      La doc de mysql_query précise que le seul moment où mysql_query renvoie un booléen, c'est FALSE et ça veut dire qu'il y a eu un problème.
      Problème -> on intercepte:
      $login = mysql_query("...");
      if (!$login) {
          die('Requête invalide : ' . mysql_error());
      }
      mysql_error() renvoie une description de l'erreur, et die() stoppe l'exécution de la page et affiche le message qu'on lui donne.

      À coté de ça, RobinZS a raison: les fonctions mysql_* sont obsolètes, vaut mieux utiliser PDO. Le hic, c'est que certains hébergeurs (free.fr je te regarde) ne fournissent pas PDO.
      1. le probleme c'est que je suis heberger sous one.com est il y a que phpmyadmin :-(
        donc je ppensait a une idée un peu folle mais qui pourrait peut etre marcher :

        au lieu d'utiliser phpmyadmin pourquoi pas ecrire tout dans un fichier texte a la racine du serveur ou alors comment metre pdo ?

        PS: désoler de ne pas vous avoir répondue plus tôt car j'ai eu peur que personne ne me réponde
        ;-)
      2. Contributeur
        PDO est une extension de PHP, pas une application comme phpMyAdmin. Pour voir les extensions, créé une page avec comme contenu:
        <?php phpinfo(); ?>
        Puis va sur cette page avec ton navigateur; un Ctrl+F te permettra de chercher du texte, ici "PDO".
        Correction: en fait free.fr fournit PDO, mais seulement si l'on active PHP5.
      3. j'ai besoin d'utiliser wamp en localhost pour ouvrir la page dans le navigateur ?
      4. Contributeur
        Le phpinfo() renverra les infos de PHP sur le serveur sur lequel il tourne. Ton installation wamp ne reflète pas forcément (dans 99.999% des cas d'ailleurs) la configuation de ton hébergeur.
        Page donc à consulter sur ton site en ligne.
      5. d'accord mais après que j'aurait vue les extension j'en fait quoi ?