Parse error
Résolu
granlu
-
granlu -
granlu -
Bonjour,
Je suis sur ce bout de code depuis un moment et j'ai un parse error qui va réussir à venir à bout de mes nerfs...
Est-ce que quelqu'un y verra mieux que moi?
Voici mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="fond.css">
</head>
<body>
<div id="fond">
</div>
</body>
</html>
<?php
if (isset($_GET['page']))
{
if ($_GET['page']=="inscription")
{
?>
<form action="index.php" method="post">
<tr>
<td><label for="nom"><strong>Nom :</strong></label></td>
<td><input type="text" name="nom" id="nom"/></td>
</tr>
<tr>
<td><label for="prenom"><strong>Prenom:</strong></label></td>
<td><input type="text" name="prenom" id="prenom"/></td>
</tr>
<tr>
<td><label for="login"><strong>Nom de compte :</strong></label></td>
<td><input type="text" name="login" id="login"/></td>
</tr>
<tr>
<td><label for="mail"><strong>Adresse de messagerie :</strong></label></td>
<td><input type="text" name="mail" id="mail"/></td>
</tr>
<tr>
<td><label for="pass"><strong>Mot de passe :</strong></label></td>
<td><input type="password" name="pass" id="pass"/></td>
</tr>
<tr>
<td><label for="pass2"><strong>Confirmez le mot de passe :</strong></label></td>
<td><input type="password" name="pass2" id="pass2"/></td>
</table>
<input type="submit" name="register" value="S'inscrire"/>
</form>
<?php
$error = FALSE;
$registerOK = FALSE;
if(isset($_POST["register"])){
if($_POST["nom"] == NULL OR $_POST["prenom"] == NULL OR $_POST["login"] == NULL OR $_POST ["mail"] == NULL OR $_POST["pass"] == NULL OR $_POST["pass2"] == NULL ){
$error = TRUE;
$errorMSG = "Tout les champs doivent être remplis !";
}
elseif($_POST["pass"] == $_POST["pass2"]){
if($_POST["login"] != $_POST["pass"]){
$sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";
$sql = mysql_query($sql);
$sql = mysql_num_rows($sql);
if($sql == 0){
if(strlen($_POST["pass"] < 20)){
if(strlen($_POST["login"] < 20)){
$sql = "INSERT INTO users (nom, prenom, mail, login, pass) VALUES ('".$_POST["nom"]."','".$_POST["prenom"]."','".$_POST["login"]."','".$_POST["mail"]."','".$_POST["pass"]."')";
$sql = mysql_query($sql);
if($sql){
$registerOK = TRUE;
$registerMSG = "Inscription réussie ! Vous êtes maintenant membre du site.";
$_SESSION["login"] = $_POST["login"];
$_SESSION["pass"] = $_POST["pass"];
}
else{
$error = TRUE;
$errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";
}
}
else{
$error = TRUE;
$errorMSG = "Votre login ne doit pas dépasser 60 caractères!";
$login = NULL;
$pass = $_POST["pass"];
}
}
else{
$error = TRUE;
$errorMSG = "Votre mot de passe ne doit pas dépasser <strong>60 caractères</strong> !";
$login = $_POST["login"];
$pass = NULL;
}
}
else{
$error = TRUE;
$errorMSG = "Le nom de compte <strong>".$_POST["login"]."</strong> est déjà utilisé !";
$login = NULL;
$pass = $_POST["pass"];
}
}
else{
$error = TRUE;
$errorMSG = "Le nom de compte et le mot de passe doivent êtres différents !";
}
}
elseif($_POST["pass"] != $_POST["pass2"]){
$error = TRUE;
$errorMSG = "Les deux mots de passes sont différents !";
$login = $_POST["login"];
$pass = NULL;
}
elseif($_POST["login"] == $_POST["pass"]){
$error = TRUE;
$errorMSG = "Le nom de compte et le mot de passe doivent être différents !";
}
}
mysql_close($BDD);
if($error == TRUE){ echo "<p>".$errorMSG."</p>"; }
if($registerOK == TRUE){ echo "<p><strong>".$registerMSG."</strong></p>"; }
?>
Je suis sur ce bout de code depuis un moment et j'ai un parse error qui va réussir à venir à bout de mes nerfs...
Est-ce que quelqu'un y verra mieux que moi?
Voici mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="fond.css">
</head>
<body>
<div id="fond">
</div>
</body>
</html>
<?php
if (isset($_GET['page']))
{
if ($_GET['page']=="inscription")
{
?>
<form action="index.php" method="post">
<tr>
<td><label for="nom"><strong>Nom :</strong></label></td>
<td><input type="text" name="nom" id="nom"/></td>
</tr>
<tr>
<td><label for="prenom"><strong>Prenom:</strong></label></td>
<td><input type="text" name="prenom" id="prenom"/></td>
</tr>
<tr>
<td><label for="login"><strong>Nom de compte :</strong></label></td>
<td><input type="text" name="login" id="login"/></td>
</tr>
<tr>
<td><label for="mail"><strong>Adresse de messagerie :</strong></label></td>
<td><input type="text" name="mail" id="mail"/></td>
</tr>
<tr>
<td><label for="pass"><strong>Mot de passe :</strong></label></td>
<td><input type="password" name="pass" id="pass"/></td>
</tr>
<tr>
<td><label for="pass2"><strong>Confirmez le mot de passe :</strong></label></td>
<td><input type="password" name="pass2" id="pass2"/></td>
</table>
<input type="submit" name="register" value="S'inscrire"/>
</form>
<?php
$error = FALSE;
$registerOK = FALSE;
if(isset($_POST["register"])){
if($_POST["nom"] == NULL OR $_POST["prenom"] == NULL OR $_POST["login"] == NULL OR $_POST ["mail"] == NULL OR $_POST["pass"] == NULL OR $_POST["pass2"] == NULL ){
$error = TRUE;
$errorMSG = "Tout les champs doivent être remplis !";
}
elseif($_POST["pass"] == $_POST["pass2"]){
if($_POST["login"] != $_POST["pass"]){
$sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";
$sql = mysql_query($sql);
$sql = mysql_num_rows($sql);
if($sql == 0){
if(strlen($_POST["pass"] < 20)){
if(strlen($_POST["login"] < 20)){
$sql = "INSERT INTO users (nom, prenom, mail, login, pass) VALUES ('".$_POST["nom"]."','".$_POST["prenom"]."','".$_POST["login"]."','".$_POST["mail"]."','".$_POST["pass"]."')";
$sql = mysql_query($sql);
if($sql){
$registerOK = TRUE;
$registerMSG = "Inscription réussie ! Vous êtes maintenant membre du site.";
$_SESSION["login"] = $_POST["login"];
$_SESSION["pass"] = $_POST["pass"];
}
else{
$error = TRUE;
$errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";
}
}
else{
$error = TRUE;
$errorMSG = "Votre login ne doit pas dépasser 60 caractères!";
$login = NULL;
$pass = $_POST["pass"];
}
}
else{
$error = TRUE;
$errorMSG = "Votre mot de passe ne doit pas dépasser <strong>60 caractères</strong> !";
$login = $_POST["login"];
$pass = NULL;
}
}
else{
$error = TRUE;
$errorMSG = "Le nom de compte <strong>".$_POST["login"]."</strong> est déjà utilisé !";
$login = NULL;
$pass = $_POST["pass"];
}
}
else{
$error = TRUE;
$errorMSG = "Le nom de compte et le mot de passe doivent êtres différents !";
}
}
elseif($_POST["pass"] != $_POST["pass2"]){
$error = TRUE;
$errorMSG = "Les deux mots de passes sont différents !";
$login = $_POST["login"];
$pass = NULL;
}
elseif($_POST["login"] == $_POST["pass"]){
$error = TRUE;
$errorMSG = "Le nom de compte et le mot de passe doivent être différents !";
}
}
mysql_close($BDD);
if($error == TRUE){ echo "<p>".$errorMSG."</p>"; }
if($registerOK == TRUE){ echo "<p><strong>".$registerMSG."</strong></p>"; }
?>
2 réponses
Bonsoir,
juste avant <form....> vous avez ceci:
Bon, déja, on met pas du HTML dans du PHP qui est dans du HTML. Si vous procédez proprement, utilisez PHP pour ce qu'il a été initaielemnt conçu, c'est à dire un "moteur de template". Dans votre cas:
A+
juste avant <form....> vous avez ceci:
<?php if (isset($_GET['page'])) { if ($_GET['page']=="inscription") { ?>
Bon, déja, on met pas du HTML dans du PHP qui est dans du HTML. Si vous procédez proprement, utilisez PHP pour ce qu'il a été initaielemnt conçu, c'est à dire un "moteur de template". Dans votre cas:
<?php if (isset($_GET['page']) && ($_GET['page']=="inscription")): ?> <form............> ........... </form> <?php endif; ?>
A+
Bonsoir et merci de votre réponse!!
Je suis plutôt débutant en php ( carrément même) et les bonnes manières en codes, je ne les connais pas encore toutes..
J'aurais 2 autres questions pour vous.
1) En cas de problème, 2 mots de passe différents par exemple, le php renvoie un message d'erreur. Comment faire pour mettre en forme ce message d'erreur? Il me le met en bas à gauche et je n'arrive pas à le bouger...
2)Une fois l'inscription réussie, je veux rediriger le visiteur vers la partie connexion. Ou inclure le code "if ($_GET['page']=="connexion")"?
D'avance merci.
Je suis plutôt débutant en php ( carrément même) et les bonnes manières en codes, je ne les connais pas encore toutes..
J'aurais 2 autres questions pour vous.
1) En cas de problème, 2 mots de passe différents par exemple, le php renvoie un message d'erreur. Comment faire pour mettre en forme ce message d'erreur? Il me le met en bas à gauche et je n'arrive pas à le bouger...
2)Une fois l'inscription réussie, je veux rediriger le visiteur vers la partie connexion. Ou inclure le code "if ($_GET['page']=="connexion")"?
D'avance merci.