Php header
Résolu
naitreGitan
Messages postés
430
Statut
Membre
-
naitreGitan Messages postés 430 Statut Membre -
naitreGitan Messages postés 430 Statut Membre -
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.
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.
Configuration: Windows 7 / Firefox 3.6
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 ~ -
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 -
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.-
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 ????
:(
-
-
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 -
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 ~