J'ai un formulaire d'inscription qui marche sans trop de problème, mais je rencontre une difficulé ds la redirection une foi inscrit.
l'inscription marche car l'utilisateur est bien en bdd mais je me retrouve avec le message suivant:
Warning: Cannot modify header information - headers already sent by (output started at /home/users6/l/monsite/www/compte-utilisateur-inscription.php:186) in /home/users6/l/monsite/www/include/variables.php on line 269
j'ai donc mon formulaire d'inscription:
<?php
if(!empty($_POST)) {//soumission du formulaire
//Verification pseudo
if(empty($_POST['pseudo'])) {
$erreurs['pseudo'] = 'Renseigner un pseudo';
}
//Verification departements
if(empty($_POST['departements']))
{
$erreurs['departements'] = 'Séléctionner un departement';
}
//Verification du champ email( on vérifie si le champ n'est pas vide )
if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['email'])){
$erreurs['email'] = "Veuillez verifier la saisie de votre e-mail";
}
//Verification email
if(empty($_POST['email'])) {
$erreurs['email'] = 'Renseigner un adresse email';
}
//Verification conditions
if(empty($_POST['conditions'])) {
$erreurs['conditions'] = 'Veillez accepter les conditions générales';
}
//Verification password
if(empty($_POST['password'])) {
$erreurs['password'] = 'Renseigner un mot de passe';
}
//le tableau d'erreurs est vide alors on insère les données
if(count($erreurs) == 0) {
// On vérifie si l'email existe en bdd
$chech_mail = $bdd->prepare("SELECT email from simply_user WHERE email = ?");
$chech_mail->execute(array($_POST['email']));
if($chech_mail->rowCount() == 0) {
// Hachage du mot de passe
$password = sha1($_POST['password']);
// Insertion
$req = $bdd->prepare('INSERT INTO simply_user (id_region, id_departements, pseudo, interet, email, password, date_inscription) VALUES(:id_region, :id_departements, :pseudo, :interet, :email, :password, CURDATE())');
$req->execute(array(
'id_region'=>regionIdByDepartement($_POST['departements']),
'id_departements'=>$_POST['departements'],
'pseudo'=>$_POST['pseudo'],
'email'=>$_POST['email'],
'interet' => serialize($_POST['interet']),
'password'=>$password
)) or die('Problème lors de l\'insertion');
// Envoie du mail
$entetedate = date("D, j M Y H:i:s +0200"); // avec offset horaire
$entetemail = "From: La Sortie <[email protected]>\n"; // Adresse expéditeur
$entetemail .= "Cc: \n";
$entetemail .= "Bcc: \n"; // Copies cachées
$entetemail .= "Reply-To: [email protected]\n"; // Adresse de retour
$entetemail .= "MIME-version: 1.0\n";
$entetemail .= "Content-type: text/html; charset=UTF-8;\n";
$entetemail .= "X-Mailer: PHP/".phpversion()."\n" ;
$entetemail .= "Date: ".$entetedate;
$search = array('[email]', '[password]');
$replace = array($_POST['email'], $_POST['password']);
$message = str_replace($search, $replace, file_get_contents('include/creation_compte.html'));
mail($_POST['email'], '[LASORTIE] Votre compte', $message, $entetemail);
// envoie du mail au nouvel utilisateur.
echo '<div class="container"><div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
<div class="alert alert-success okay" role="alert"> <i class="fa fa-frown-o"></i> Merci pour votre inscription </div></div></div>';
// Si me mec est inscrit donc identifié faut créé les sessions ou appelle la fonction identificationPro()
authentificationPro($_POST['pseudo'], $password);
}
else{
echo '<div class="container"><div class="col-md-6 col-md-offset-1 col-sm-8 col-sm-offset-2">
<div class="alert alert-danger okay" role="alert"> <i class="fa fa-frown-o"></i> Cet email est déjà associé à un compte</div></div></div>';
}
}
}
?>
<div id="page">
<div class="container">
<div class="col-main col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
<div class="page-title">
<h2>créer un compte</h2>
</div>
<fieldset>
<form class="ins_con" action="compte-utilisateur-inscription.php" method="post" enctype="multipart/form-data">
<label for="departement">Département </label>
<div class="input-group input-group animated bounceInDown">
<span class="input-group-addon"><i class="fa fa-map-marker white"></i></span>
<select class="form-control" name="departements" id="departement">
<option value="">Votre département</option>
<?php $departement = !empty($_POST['departements']) ? $_POST['departements'] : NULL; echo aRegionDepartement(); ?>
<?php echo aRegionDepartement(); ?>
</select>
</div>
<?php if(isset($erreurs['departements'])) echo '<div class="alert alert-danger" role="alert">' .$erreurs['departements'].'</div>';?>
<br>
<label>Pseudo</label>
<div class="input-group input-group animated bounceInLeft">
<span class="input-group-addon"><i class="fa fa-user white"></i></span>
<input class="form-control" data-fv-field="email" type="text" name="pseudo" placeholder="Votre pseudo" value="<?php if(isset($_POST['pseudo'])) echo htmlspecialchars ($_POST['pseudo']);?>" /></div>
<?php if(isset($erreurs['pseudo'])) echo '<div class="alert alert-danger" role="alert"><i class="fa fa-frown-o"></i> ' .$erreurs['pseudo'].'</div>';?>
<br>
<!-- email -->
<label>Email</label>
<div class="input-group input-group animated bounceInRight has-feedback">
<span class="input-group-addon"><i class="fa fa-envelope white"></i></span>
<input class="form-control" id="email" data-validation="email" type="text" name="email" placeholder="Votre adresse email" value="<?php if(isset($_POST['email'])) echo htmlspecialchars ($_POST['email']);?>" /></div>
<?php if(isset($erreurs['email'])) echo '<div class="alert alert-danger" role="alert"><i class="fa fa-frown-o"></i> ' .$erreurs['email'].'</div>';?>
<br>
<!-- Les centres d'interets ( les 5 premiers ) -->
<label>Centres d'intérêt</label>
<p>Recevez les alertes e-mail des sorties de votre choix.</p>
<div class="col-lg-12">
<div class="row">
<div class="col-lg-6 col-sm-6">
<div class="row">
<?php foreach($aLoisirs as $k => $v ) {
if($k < 9)
{
$checked = !empty($_POST['interet']) && array_key_exists($k, $_POST['interet']) ? ' checked="checked"' : NULL;
echo ' <input type="checkbox" id="interet'.$k.'" name="interet['.$k.']" value="1"'.$checked.' /> '.$v.'<br>';
}
}
?>
</div>
</div>
<!-- Les centres d'interets ( les autres ) -->
<div class="col-lg-6 col-sm-6">
<div class="row">
<?php foreach($aLoisirs as $k => $v ) {
if($k > 8)
{
$checked = !empty($_POST['interet']) && array_key_exists($k, $_POST['interet']) ? ' checked="checked"' : NULL;
echo ' <input type="checkbox" id="interet'.$k.'" name="interet['.$k.']" value="1"'.$checked.' /> '.$v.'<br>';
}
}
?>
</div>
</div>
</div>
<br>
</div>
<br>
<!-- password -->
<label>Mot de passe</label>
<div class="input-group input-group animated bounceInDown">
<span class="input-group-addon"><i class="fa fa-lock white"></i></span>
<input class="form-control" type="password" name="password" placeholder="*********" value="<?php if(isset($_POST['password'])) echo htmlspecialchars ($_POST['password']);?>" /></div>
<?php if(isset($erreurs['password'])) echo '<div class="alert alert-danger" role="alert"><i class="fa fa-frown-o"></i> ' .$erreurs['password'].'</div>';?>
<br>
<!-- verification si la case est coché -->
<div class="input-group">
<span class="input-group-addon"><input id="conditions" name="conditions" type="checkbox"></span>
<input class="form-control" type="text" disabled placeholder="conditions générales">
<span class="input-group-addon"><a title="conditions" href="mentions.php"><i class="fa fa-info link-white"></i></a></span>
</div>
<?php if(isset($erreurs['conditions'])) echo '<div class="alert alert-danger" role="alert"><i class="fa fa-frown-o"></i> ' .$erreurs['conditions'].'</div>';?>
<br>
<button class="button create-account col-md-3 col-xs-12" type="submit"><span>ENVOYER</span></button>
<br><br>
<!-- redirection créer un compte -->
<a href="compte-utilisateur-connexion.php"><span class="pull-right green"><i class="fa fa-hand-o-right"></i> M'identifier</span></a>
</form>
</fieldset>
et une fonction pour redirigé une foi identifié ou inscrit.
/*
vérifie l'existence de l'utilisateur à partir
de son login et son mot de passe
*/
function authentificationPro($pseudo, $password){
$aRegion = array(1 => 'Alsace', 2 => 'Aquitaine', 3 => 'Auvergne', 4 => 'Basse-Normandie', 5 => 'Bourgogne', 6 => 'Bretagne', 7 => 'Centre', 8=> 'Champagne-Ardenne', 9 => 'Corse', 10 => 'Franche-Comté', 11 => 'Haute-Normandie', 12 => 'Ile-de-France', 13 => 'Languedoc-Roussillon', 14 => 'Limousin', 15 => 'Lorraine', 16 => 'Midi-Pyrénées', 17 => 'Nord-Pas-de-Calais', 18 => 'Pays de la Loire', 19 => 'Picardie', 20 => 'Poitou-Charentes', 21 => 'Provence-Alpes-Côte-d-Azur', 22 => 'Rhône-Alpes', 23 => 'Outre-Mer');
global $bdd;
$return = NULL;
// Vérification des identifiants
$req = $bdd->prepare('SELECT * FROM simply_user WHERE (pseudo = :pseudo OR email =:email) AND password = :password');
$req->execute(array(
'pseudo' => $pseudo,
'email' => $pseudo,
'password' => $password
));
if($req->rowCount() > 0) {
$resultat = $req->fetch();
$_SESSION['membre'] = $resultat;
$_SESSION['pseudo'] = $resultat['pseudo'];
$_SESSION['email'] = $resultat['email'];
$_SESSION['password'] = $resultat['password'];
$_SESSION['id_region'] = $resultat['id_region'];
$_SESSION['type'] = 'client';
$_SESSION['statut'] = $resultat['statut'];
if(!empty($_POST['remember'])) setcookie('identification', serialize(array($pseudo, $password)), mktime(0, 0, 0, date('m'), date('d'), date('Y')+1), '/');
header('Location: /sortie/region-'.simplification($aRegion[$_SESSION['id_region']]).'.html');
} else {
$return = '<div class="alert alert-danger" role="alert"><i class="fa fa-frown-o"></i> Mauvais identifiant ou mot de passe !</div>';
}
return $return;
}
Je ne vois pas trop le problème sachant que ca marche quand on s'identifie