Parse error

Résolu/Fermé
granlu - 12 mai 2012 à 16:34
 granlu - 12 mai 2012 à 21:09
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>"; }

?>

2 réponses

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 340
12 mai 2012 à 20:19
Bonsoir,

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+
1
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.
0