Un parce error dans mon code php

--
C'est bizarre, on en apprend tous les jours même quand on ne s'informe pas !!!!
Bonjour
J'ai récupérer un script sur internet que j'ai un peu allégé en fait ce script doit vérifier si les $_POST qui arrivent sont vides ou pas et si il sont bien remplis et que le pseudo du membre qui veut s'inscrire n'est pas déjà dans la table alors on l'inscrit mais j'ai une erreur à la ligne 56 qui correspond à session_start(); je ne vois pas l'erreur si vous pouviez m'aider. Merci
voici le code :
<? 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
('sql.free.fr', 'sons.gratuits', '****');
mysql_select_db
('sons_gratuits', $base);

// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT
count
(*) FROM membre WHERE login="'.
addslashes
($_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("", "'.
addslashes
($_POST['login']).'", "'.
md5
(
addslashes
($_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.';
}
}
?>

7 réponses

  1. Salut
    Excuses moi je mettrai donc mes prochains code entre les balises
     et 
    pour mon problème?
    Merci
    0
    1. Modérateur
      Merci :-)

      pour mon problème?

      Quand ce sera indenté! :-p

      Eh vi quand je suis chiant c'est jusqu'au bout....
      0
  2. Merci beaucoup mais voila une encore une autre histoire (comme quoi les scripts sur internet ils sont pas très bien fait... mais je comprend c'est un grand script !) là maintenant je vous donne le code en entier et d'après la parce error : http://sons.gratuits.free.fr/v2/inscription2.php il y a une erreur à la ligne 120 mais c'est la ou le html ferme sa balise donc je vois pas la phote !
    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
    ('sql.free.fr', 'sons.gratuits', '****');
    mysql_select_db
    ('sons_gratuits', $base);

    // on recherche si ce login est déjà utilisé par un autre membre
    $sql = 'SELECT
    count
    (*) FROM membre WHERE login="'.
    addslashes
    ($_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("", "'.
    addslashes
    ($_POST['login']).'", "'.
    md5
    (
    addslashes
    ($_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
    stripslashes
    (
    htmlentities
    (
    trim
    ($_POST['login']))); ?>"><br />
    Mot de passe : <input type="password" name="pass" value="<?php if (
    isset
    ($_POST['pass']))
    echo
    stripslashes
    (
    htmlentities
    (
    trim
    ($_POST['pass']))); ?>"><br />
    Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (
    isset
    ($_POST['pass_confirm']))
    echo
    stripslashes
    (
    htmlentities
    (
    trim
    ($_POST['pass_confirm']))); ?>"><br />
    <input type="submit" name="inscription" value="Inscription">
    </form>
    </body>
    </html>
    0
    1. Modérateur
      Salut Fabrice.

      Si tu veux qu'on t'aide, ce serait bien de nous mettre le type d'erreur et d'organiser un minimum le code avec les balises codes (grâce auxquelles les tabulations sont conservées).

      Pour comprendre un code il faut conserver ses tabulations, et il arrive trop souvent qu'on doive nous même reconstituer ces tabulations pour y voir plus clair...

      C'est le genre de message auquel je ne répond plus d'habitude, après tout, ce n'est pas à nous de faire cet effort....
      0
  3. il y a plus de } que de {
    0
    1. Ok pour cette erreur c'est bon :! merci !
      mais nous voila dans une nouvelle erreur un problème d'acolade à la ligne 70 : http://sons.gratuits.free.fr/v2/inscription.php si vous pouvez m'aider mais je vais quand même tanter de trouver l'erreur
      code :

      <? 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
      ('sql.free.fr', 'sons.gratuits', '****');
      mysql_select_db
      ('sons_gratuits', $base);

      // on recherche si ce login est déjà utilisé par un autre membre
      $sql = 'SELECT
      count
      (*) FROM membre WHERE login="'.
      addslashes
      ($_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("", "'.
      addslashes
      ($_POST['login']).'", "'.
      md5
      (
      addslashes
      ($_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.';
      }
      }
      ?>
      0
      1. Modérateur
        Salut,

        Ca:
        ('Erreur SQL !'.$sql.'<br />'.mysql_error.')?> 

        est à remplacer par ça (guillemet en trop):
        ('Erreur SQL !'.$sql.'<br />'.mysql_error() ) ?> 
        0
        1. Salut
          J'ai rajouter la parenthèse (je sais pas si je l'ai fermée au bon endroit mais l'erreur est toujours la même à la ligne 56 :
          http://sons.gratuits.free.fr/v2/inscription.php

          <? 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
          ('sql.free.fr', 'sons.gratuits', '****');
          mysql_select_db
          ('sons_gratuits', $base);

          // on recherche si ce login est déjà utilisé par un autre membre
          $sql = 'SELECT
          count
          (*) FROM membre WHERE login="'.
          addslashes
          ($_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("", "'.
          addslashes
          ($_POST['login']).'", "'.
          md5
          (
          addslashes
          ($_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.';
          }
          }
          ?>
          0
          1. tu as oublié de fermer la parenthèse à

            die
            ('Erreur SQL !'.$sql.'<br />'.mysql_error.'?>
            0