Mon header(location:index.php) ne marche pas !

Résolu/Fermé
MrAkiroKun
Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016
- 2 sept. 2014 à 21:00
 benoit - 8 janv. 2017 à 12:38
Bonjour,

Je suis Développeur Web depuis un ans, et j'ai voulu me lancer dans la création d'un réseau social (gros projet je sais) mais j'ai un problème avec le script d'inscription :


<?php
include('includes/config.php');
if(isset($_SESSION['pseudo'])){
header('Location:index.php');
}
if(isset($_POST['envoyer'])){
if(isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND isset($_POST['email']) AND !empty($_POST['email']) AND isset($_POST['password']) AND !empty($_POST['password']) AND isset($_POST['password2']) AND !empty($_POST['password2']))
{
//Tous les champs ont été remplis
$pseudo = $_POST['pseudo'];
$email = strtolower($_POST['email']);
$link_img = "http://www.gravatar.com/avatar/" . md5($email);
$password = md5($_POST['password']);
$password2 = md5($_POST['password2']);
$longueur_pseudo = strlen($pseudo);

if($longueur_pseudo<=30)
{
//Le pseudo respecte le format
if($password == $password2)
{
//Les mots de passe sont identique
$query = $DB->prepare('INSERT INTO membres(pseudo, email, password, link_img) VALUES (:pseudo, :email, :password, :link_img)');
$query->execute(array(
'pseudo' => $pseudo,
'email' => $email,
'password' => $password,
'link_img' => $link_img
));
$dir = strtolower("../users/".$pseudo);
$content = "<p>Page personnel</p>";
if($pseudo)
{
mkdir($dir);
$open = fopen($dir."/index.php", "w"); // tu as plusieurs mode d'ouverture regarde sur internet (W write, R read)

fwrite($open, $content);
fclose($open);
}
else
{
header('location:index.php');
}
header('location:index.php');
}
else
{
$erreur = "Les mots de passe ne correspondent pas !";
}
}
else
{
$erreur = "Le pseudo ne doit contenir que 30 caractère maximum !";
}
}
}
else
{
$erreur = "Tous les champs sont obligatoire !";
}
?>

2 réponses

Utilisateur anonyme
2 sept. 2014 à 22:24
Bonjour

Lequel de tes headers ne marche pas ?
As-tu un message d'erreur ?
Es-tu sûr de ne rien envoyer avant le premier <?php ? Pas le moindre espace, passage à la ligne ? Pas de BOM ? Le BOM est un caractère invisible que certains éditeurs ajoutent en début des fichiers en UTF8, il faut alors enregistrer son fichier en précisant l'option "sans BOM".
3
Je te remercie mais tellement ! Je galérais depuis plusieurs heures sur ça et tout marche enfin!! Merci!
0
Merci, j'avais le même problème. C'était mon fichier 'connectDb.php' que j'incluais au début du script qui était en UTF8 normal, il a fallu le mettre sans BOM.
0