Bug en PHP, alors que selon moi c'est juste..
Ralsalerm
-
_Ritchi_ Messages postés 21333 Date d'inscription Statut Contributeur Dernière intervention -
_Ritchi_ Messages postés 21333 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Alors voilà, je suis en train de programmer un petit moteur de jeu par navigateur en PHP et MySQL, j'ai réussi à résoudre tout les derniers bugs, sauf un ...
Si vous pouviez m'aider, je ne vois vraiment pas le problème. Voici le code :
Et donc, voici l'erreur affichée :
inscript.php est la page que vous voyez ci-dessus !
Donc, merci de m'aider, moi franchement je ne vois pas de problème.
( Oui, mon code est brouillon et j'ai fait un design en tableau parce que le design je m'en fout, pour le moment je veux que sa soit fonctionnel )
Alors voilà, je suis en train de programmer un petit moteur de jeu par navigateur en PHP et MySQL, j'ai réussi à résoudre tout les derniers bugs, sauf un ...
Si vous pouviez m'aider, je ne vois vraiment pas le problème. Voici le code :
<?php if (!isset($_SESSION['login'])) { header ('Location: dejaco.php'); exit(); } ?> <?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.olympe-network.com', 'worldofmagic', 'vcorma24s'); mysql_select_db ('worldofmagic_membre', $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']).'", "'.mysql_escape_string(md5($_POST['pass']).'", "'.mysql_escape_string($_POST['puissance']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; header('Location: maison.php'); exit(); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>WorldOfMagic - Inscription</title> </head> <body> <TABLE BORDER="0"> <CAPTION><h1>WorldOfMagic</h1><br></CAPTION> <TR> <TH> <a href='index.php'>Accueil</a> <br> <a href='connect.php'>Connexion</a> <br> <a href='inscript.php'>Inscription</a> <br> <a href='maison.php'>Ma Maison</a> <br> <a href='entrain.php'>Entrainement</a> <br> <a href='combat.php'>Combat</a> <br> <a href='credits.php'>Crédits</a> <br> </TH> <TD> <strong> Inscription à WorldOfMagic</strong><br> <form action="inscript.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="hidden" name="puissance" value="5" /> <input type="submit" name="inscription" value="Inscription"> </form> <a href='connect.php'>Tu as déjà un compte ?</a> <?php if (isset($erreur)) echo '<br />',$erreur; ?> </TD> </TR> </TABLE> </body> </html>
Et donc, voici l'erreur affichée :
Parse error: syntax error, unexpected ';' in /www/worldofmagic/inscript.php on line 27
inscript.php est la page que vous voyez ci-dessus !
Donc, merci de m'aider, moi franchement je ne vois pas de problème.
( Oui, mon code est brouillon et j'ai fait un design en tableau parce que le design je m'en fout, pour le moment je veux que sa soit fonctionnel )
A voir également:
- Bug en PHP, alors que selon moi c'est juste..
- Easy php - Télécharger - Divers Web & Internet
- Bug chromecast - Guide
- Bug localisation snap ✓ - Forum Snapchat
- Iptv bug forum ✓ - Forum Box et Streaming vidéo
- Bug messenger statut en ligne - Forum Facebook Messenger
4 réponses
Bonjour,
Quand tu es persuadé qu'une ligne est sans erreur, mets-la en commentaire et relance. Deux cas possibles:
1- l'erreur disparaît: alors étudie sérieusement la ligne de code que tu viens de commenter;
2- l'erreur est encore présente (même cause et même numéro de ligne): cela signifie que l'erreur est avant cette ligne. Remonte alors dans le code.
Ritchi
Quand tu es persuadé qu'une ligne est sans erreur, mets-la en commentaire et relance. Deux cas possibles:
1- l'erreur disparaît: alors étudie sérieusement la ligne de code que tu viens de commenter;
2- l'erreur est encore présente (même cause et même numéro de ligne): cela signifie que l'erreur est avant cette ligne. Remonte alors dans le code.
Ritchi
Ha ouais, je connaissais pas cette technique !
A chaque fois je relisais tout le code pour trouver l'erreur, mais sa, c'est pas bête. Merci encore !
A chaque fois je relisais tout le code pour trouver l'erreur, mais sa, c'est pas bête. Merci encore !
Normal puisqu'en mettant en commentaire la ligne 27 "$sql = 'INSERT INTO membre VALUES(...", la variable $sql n'est pas initialisée...
La solution à ton problème est que effectivement la ligne 27 contient une erreur !
Mais non pas sur le caractère ";" mais sur le nombre de parenthèses fermantes.
La solution est :
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'" , "'.mysql_escape_string(md5($_POST['pass']).'" , "'.mysql_escape_string($_POST['puissance']).'" ))';
Cette dernière parenthèse ferme la parenthèse ouvrante de VALUE.
Conseil: Utilise un éditeur de texte qui te permet de mettre en surbrillance les couples de parenthèses ouvrante/fermante. Sur Mac (mon cas) j'utilise Smultron.
Ritchi
La solution à ton problème est que effectivement la ligne 27 contient une erreur !
Mais non pas sur le caractère ";" mais sur le nombre de parenthèses fermantes.
La solution est :
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'" , "'.mysql_escape_string(md5($_POST['pass']).'" , "'.mysql_escape_string($_POST['puissance']).'" ))';
Cette dernière parenthèse ferme la parenthèse ouvrante de VALUE.
Conseil: Utilise un éditeur de texte qui te permet de mettre en surbrillance les couples de parenthèses ouvrante/fermante. Sur Mac (mon cas) j'utilise Smultron.
Ritchi