Mon header(location:index.php) ne marche pas ! [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016
-
 benoit -
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


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61508 internautes nous ont dit merci ce mois-ci

Je te remercie mais tellement ! Je galérais depuis plusieurs heures sur ça et tout marche enfin!! Merci!
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.
Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016

Merci beaucoup, je l'ai encodé en UTF8 sans BOM et ça marche ;)
Je met le sujet en résolu ;)
Messages postés
27
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
24 octobre 2017

BONSOIR A TOUS.

JE VOUS CONSEILLE D'UTILISER LA REDIRECTION JAVASCRIPT
<script language="javascript">document.location="index.php"</script> POUR FAIRE VOS REDIRECTIONS. VOUS N'AUREZ PLUS UN BON NOMBRE D'ERREURS.

CDLT
>
Messages postés
27
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
24 octobre 2017

sauf que si on desactive le javascript et bah ça redirigera pas... donc mauvaise idée.