Bug en PHP, alors que selon moi c'est juste..
Ralsalerm
-
_Ritchi_ Messages postés 22346 Statut Contributeur -
_Ritchi_ Messages postés 22346 Statut Contributeur -
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
- Iptv bug ✓ - Forum TV & Vidéo
- Bug localisation snap ✓ - Forum Snapchat
- 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