En creant ma page d'inscription, j'ai eu ca comme erreur !
" Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\Projets\InstruShop\register.php on line 4 "
Mon code :
<?php include('includes/config.php');
if(isset($_POST['envoyer'])) {
if(isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['motdepasse']) AND !empty($_POST['motdepasse']) AND isset($_POST['motdepasse2']) AND !empty($_POST['motdepasse2']) AND isset($_POST['email']) AND !empty ($_POST['email']))
}
?>
<h1>Créer un compte</h1>
<hr />
<form action="register.php" method="post">
Pseudo : <input type="text" name"pseudo" id="pseudo" /><br />
Mot de passe : <input type="password" name"motdepasse" id="password" /><br />
Mot de passe confirmation : <input type="password" name"motdepasse2" id="password2" /><br />
Email : <input type="text" name"mail" id="mail" /><br />
<input type="submit" name="envoyer" value="S'inscrire" id="submit" />
</form>
Je n'ai pas mis d'accolades, du tout, est ce obligatoire ?
EDIT : Ah oui effectivement c'est obligatoire, merci :P
Oui c'est obligatoire
La seule exception où vous pouvez vous passez d'accolades c'est quand c'est suivi d'une instruction
ex :
$page = 1;
if(isset($_GET['page']))
$page = $_GET['page'];
// La suite de votre code
Ok je n'est pas d'erreur si je code en normal alors que quand je met en UTF 8; j'ai des erreurs de session start ?
Enfaite la c'est pas le plus important mdr, psk j'ai pleins d'erreurs je crois !
Premiere erreur : Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\Projets\InstruShop\register.php on line 19
Mon code :
<?php include('includes/config.php');
if(isset($_POST['envoyer'])) {
if(isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['motdepasse']) AND !empty($_POST['motdepasse']) AND isset($_POST['motdepasse2']) AND !empty($_POST['motdepasse2']) AND isset($_POST['email']) AND !empty ($_POST['email']))
{
//Tous les champs ont été remplis
$pseudo = mysql_escape_string($_POST['pseudo']);
$motdepasse = mysql_escape_string(md5($_POST['motdepasse']));
$motdepasse2 = mysql_escape_string(md5($_POST['motdepasse2']));
$email = mysql_escape_string($_POST['email']);
$longueur_pseudo = strlen($pseudo);
if($longueur_pseudo <= 30)
{
//Le pseudo repspecte le format
if($motdepasse == $motdepasse2)
{
//les mdp sont identiques
{
else
{
$erreur = 'Le deux mot de passe ne corresponde pas.'
}
else
{
$erreur = 'Le pseudo est trop long (max : 30)';
}
else
{
$erreur = 'Tous les champs sont obligatoires.';
}
}
}
?>
<h1>Créer un compte</h1>
<hr />
<form action="register.php" method="post">
Pseudo : <input type="text" name"pseudo" id="pseudo" /><br />
Mot de passe : <input type="password" name"motdepasse" id="password" /><br />
Mot de passe confirmation : <input type="password" name"motdepasse2" id="password2" /><br />
Email : <input type="text" name"mail" id="mail" /><br />
<input type="submit" name="envoyer" value="S'inscrire" id="submit" />
</form>
Prebleme regler tout etait un probleme d'acolades, donc manque d'inattention comme d'habitude !
Merci a toi :P
ok, mais il n'y pas que cela...
<?php include('includes/config.php');
$erreur = "";
if(isset($_POST['envoyer'])) {
if(isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['motdepasse']) AND !empty($_POST['motdepasse']) AND isset($_POST['motdepasse2']) AND !empty($_POST['motdepasse2']) AND isset($_POST['email']) AND !empty ($_POST['email']))
{
//Tous les champs ont été remplis
$pseudo = mysql_escape_string($_POST['pseudo']);
$motdepasse = mysql_escape_string(md5($_POST['motdepasse']));
$motdepasse2 = mysql_escape_string(md5($_POST['motdepasse2']));
$email = mysql_escape_string($_POST['email']);
$longueur_pseudo = strlen($_pseudo);
if($longueur_pseudo > 30)
{
$erreur .= 'Le pseudo est trop long (max : 30)<br>';
}
//Le pseudo repspecte le format
if($motdepasse !== $motdepasse2)
{
$erreur .= 'Le deux mot de passe ne corresponde pas.<br>';
}
}
else
{
$erreur .= 'Tous les champs sont obligatoires.';
}
if(empty($erreur)){
// Il n'y a pas d'erreurs donc je traite les données
} else {
// Il y a au moins une erreurs donc je les affiche
echo $erreur;
}
}
?>
<h1>Créer un compte</h1>
<hr />
<form action="register.php" method="post">
Pseudo : <input type="text" name="pseudo" id="pseudo" /><br />
Mot de passe : <input type="password" name="motdepasse" id="password" /><br />
Mot de passe confirmation : <input type="password" name="motdepasse2" id="password2" /><br />
Email : <input type="text" name="mail" id="mail" /><br />
<input type="submit" name="envoyer" value="S'inscrire" id="submit" />
</form>
Je vous laisse étudier les corrections que je viens de faire et de les complémenter.
D'ailleurs je ne vois pas de problème avec le session_start() puisqu'il n'y en a pas.
Si dans le fichier, config.php
Erreur : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Projets\InstruShop\register.php:1) in C:\xampp\htdocs\Projets\InstruShop\includes\config.php on line 2
Fichier config.php
<?php
session_start();
mysql_connect('localhost', 'root', 'soul67540');
mysql_select_db('instru_shop');
?>
Avant l'inclusion du fichier config, il y a du code ?
Pour information, si vous finissez votre fichier uniquement pas du code php alors ne fermer pas la balise php "?>"
L'erreur doit venir d'un caractère BOM rajouté par l'encodage UTF-8.
En php il faut encoder sans BOM.