Php header

Résolu/Fermé
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 - 17 mars 2010 à 13:09
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 - 17 mars 2010 à 15:28
Bonjour,

Ma question est simple, quand on fait un header (ce qui me redirige vers une page), est ce que le code après mon header est tout de même exécuté ?
mon code :
header('Location: maPage.php');

Si oui, est ce possible qu'il ne le soit pas (par un autre principe?) ?

Merci beaucoup.
A voir également:

5 réponses

Tes données peuvent être exécuté après des header comme header('Content-type: application/pdf').

Cependant après un header("Location: http://"), je ne pense pas que les données soient exécutées car la page est rechargé directement.

Pour ton problème il faut mettre ton header après ton code qui ajoute tes données.

Il faut faire attention avant ce header simplement de ne rien afficher, donc pas d'html, pas non plus de fonction d'affichage, ni même une entrée ou un espace avant ton <php

Exemple :

<?php

if (!empty($_POST['Login']) && !empty($_POST['Mdp']) && !empty($_POST['Send']))
{
$Login = $_POST['Login'];
$MdpH = md5(trim($_POST['Mdp']));
$Conex = mysql_connect('localhost', 'root', 'pass');
mysql_select_db('nomdebase',$Conex);

mysql_query("INSERT INTO TABLE (IdMembre, Login, MotDePasse) VALUES ('','$Login','$MdpH');");

header("Location: http://")
?>

Good luck

Droned ~
1
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 2
17 mars 2010 à 13:41
merci pour ta réponse,

j'essaye ça et je te dis quoi :)
0
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 2
17 mars 2010 à 13:45
re,

Comme je le pensais, ça ne fonctionne pas, Car il ajoute les données à la BD et il me redirige.

Moi je veux que si y a une donnée qui n'est pas saisie dans le formulaire, il me renvoie à mon formulaire sans exécuter le code (insertion en BD) d'après...

Je désespère :'(
0
Oki, tu as bien mis la condition if (!empty($_POST['']) pour vérifier l'existence des données ?

<?php
if (!empty($_POST['']) //là tu met autant de !empty que tu as de POST
{
$Login = $_POST['Login'];
$MdpH = md5(trim($_POST['Mdp']));
$Conex = mysql_connect('localhost', 'root', 'pass');
mysql_select_db('nomdebase',$Conex);

mysql_query("INSERT INTO TABLE (IdMembre, Login, MotDePasse) VALUES ('','$Login','$MdpH');");
}
else {
header("Location: http://") }

?>

~Droned
1
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 2
17 mars 2010 à 14:35
oupss, pardon, je n'ai pas bien lu ce que tu m'avais annoncé.
je vais essayer ça.

Dis moi pour entre tes empty, tu mets || ou or ? car j'ai essayé tout à l'heure et ça merdé.


merci
0
ze-life-of-quent1 Messages postés 1582 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 17 octobre 2015 776
17 mars 2010 à 13:12
Bonjour, tout code après la fonction header n'est pas exécuter.
Si vous voulez "cacher" du code, il suffit de rajouter // au début de chaque ligne.
0
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 2
17 mars 2010 à 13:18
Merci de votre réponse,

En fait je pose la question alors que dans mon cas, le code est exécuté.

En fait j'ai un formulaire avec un bouton valider qui m'envoie sur une autre page qui vérifie si toutes les données du formulaire précédent ont bien été rempli.

mon code de la page de vérif :
if ($_POST['champ_text']==''){
header('Location: monFromulaire.php');
}

Et après ça, j'ai le code pour mettre les données entrées sur le formulaire dans une base de données.

Alors je fais mes tests en faisant exprès de ne pas rempli 'champ_text', je suis bien redirigé vers monFormulaire.php mais mes données ont quand même été enregistré dans ma BDD ????

:(
0
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 2
17 mars 2010 à 14:21
Je viens de trouver une solution même si celle ci me semble un peu bidouille :)

J'ai ajouté un booléen.

Le booléen passe à false si un champs n'est pas saisi, et avant l'exécution du code (insertion BD), je teste ce booléen.

Si quelqu'un a une autre solution plus "propre".

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pas de soucis, :)
Ben moi je le présente comme ceci :

if (!empty($_POST['nomPost1']) && !empty($_POST['nomPost2']) && !empty($_POST['NomPost3']))

J'utilise un "et logique" et j'ai une habitude pour "&&" qui à une priorité sur un "AND",

si tu veux mettre un "ou logique" ton "||" aura une priorité sur un "OR"

Good luck

Droned ~
0
naitreGitan Messages postés 406 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 6 décembre 2018 2
17 mars 2010 à 15:28
Merci beaucoup,

ça marche nikel.

Bonne fin de journée.
0