Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur de mysql_result() sur free...

Et pas chez 1&1 :s

Sujet résolu
Anonyme
    10 mars 2007 à 12:00:13

    Bonjour,

    Je développe actuellement un site, l'inscription se passe en plusieurs étapes :

    1 - Formulaire avec pseudo, pass, mail
    2 - On vérifie que ni le pseudo ni le mail sont déjà pris3
    3 - On envoi un mail avec un lien de confirmation d'inscription
    4 - On valide l'inscription

    Mais voilà, avant j'étais chez 1&1 et tout passait bien !
    Mais maintenant que je suis chez free, j'ai un problème à l'étape 2 :

    Citation : Code PHP

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 5 in /mnt/150/sdb/9/9/u.prog/membres/insc_conn/reg2.php on line 19
    Vous allez recevoir un mail avec un lien de confirmation sur lequel vous devrez cliquer !



    Voici le code :
    <h2 class="soustitre">U-Prog : Connexion</h2>
    <p></p>
    <?php

    if(!empty($_SESSION['pseudo']))
    {
            echo 'Tu es d&eacute;j&agrave; inscrit !';
    }
    else
    {
            if(!empty($_POST['pseudo']) AND !empty($_POST['pass']) AND !empty($_POST['mail']))
            {
                    $pseudo = $_POST['pseudo'];
                    $pass = md5($_POST['pass']);
                    $mail = $_POST['mail'];
                                   
                    $requete1 = mysql_query("SELECT * FROM users WHERE mail='".$mail."' OR pseudo='".$pseudo."'") or die(mysql_error());
                   
                    if(mysql_result($requete1, 0) != FALSE)
                    {
                            echo 'Adresse e-mail ou Pseudo d&eacute;j&agrave; utilis&eacute; !';
                    }
                    else
                    {
                            mysql_query("INSERT INTO users_attentes VALUES('".$pseudo."', '".$pass."', '".$mail."')") or die(mysql_error());
                           
                            $sujet = 'Inscription à U-Prog';
                            $message = 'Bonjour, pour confirmer votre inscription à U-Prog, veuillez cliquer sur le lien ci-dessous :
                           
                           
                           
                            http://mondegame.info/?page=membres/insc_conn/reg_ok&pseudo='
    .$pseudo.'&pass='.$pass.'
           
                           
                           
                            Merci et &agrave; bient&ocirc;t'
    ;
                           
                            mail($mail, $sujet, $message, 'From:U-Prog');
                           
                            echo 'Vous allez recevoir un mail avec un lien de confirmation sur lequel vous devrez cliquer !';
                    }
            }
            else
            {
                    echo 'Vous devez remplir tous les champs !';
            }
    }
    ?>


    Si le pseudo ou l'e-mail est déjà pris, il affiche Pseudo ou e-mail déjà pris sans l'erreur.
    Sinon, il renvoit l'erreur mais enregistre quand même la demande d'inscription en envoyant le mail o_O .

    Pouvez-vous m'aider à résoudre ce problème ?

    Merci d'avance de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      10 mars 2007 à 12:18:18

      on peux savoir où se situe la ligne 19 précisément ? :)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        10 mars 2007 à 12:27:17

        Ligne 19 :
        if(mysql_result($requete1, 0) != FALSE)


        Mais c'est bizarre quand même...

        Parce que quand la condition est remplie, aucune erreur, et quand elle ne l'est pas, le else est executé mais il y a l'erreur !!

        Merci d'avance
        • Partager sur Facebook
        • Partager sur Twitter
          10 mars 2007 à 14:11:43

          Up même chose pour moi ...
          • Partager sur Facebook
          • Partager sur Twitter
            10 mars 2007 à 14:26:46

            çà t'avancera surement ce que je vais te demander mais bon...
            Pourquoi passer de 1and1 à free?
            çà marche plutôt bien chez 1and1

            Par contre, je remarque que c'est un warning donc si tu met un @ devant la fonction mysql_result... tu n'auras plus ce message!
            • Partager sur Facebook
            • Partager sur Twitter
              10 mars 2007 à 14:49:19

              Citation : Trist@n21

              Citation : Code PHP

              Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 5 in /mnt/150/sdb/9/9/u.prog/membres/insc_conn/reg2.php on line 19
              Vous allez recevoir un mail avec un lien de confirmation sur lequel vous devrez cliquer !

              Autrement dit : Impossible d'accéder à la ligne retournée n°1 (0 pour MySQL).
              Bah oui, elle existe pas dans le cas où rien ne correspond.
              La solution ?
              -- On compte les entrées plutôt que de tenter une sélection
              -- Prendra 1 si le nombre d'entrées correspondantes est supérieur à 0 (existe), 0 sinon
              SELECT COUNT(*) > 0 AS machin_existe FROM tbl WHERE ...
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                10 mars 2007 à 15:02:03

                Citation : nico88120

                çà t'avancera surement ce que je vais te demander mais bon...
                Pourquoi passer de 1and1 à free?
                çà marche plutôt bien chez 1and1

                Par contre, je remarque que c'est un warning donc si tu met un @ devant la fonction mysql_result... tu n'auras plus ce message!



                Je vais faire ça !!

                Merci ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  10 mars 2007 à 15:03:24

                  On ne résoud pas une erreur en la faisant taire -.-
                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 mars 2007 à 15:16:34

                    Certes mais à vouloir utiliser plein de racourci quand est un peu feignant du clavier on oublie de faire quelque test et on obtient se genre d'avertissement (car ce n'est pas une erreur mais bien un warning!)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Erreur de mysql_result() sur free...

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown