Mon header(location:index.php) ne marche pas !
Résolu
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 !";
}
?>
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
-
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".