Php header
Résolu
naitreGitan
Messages postés
406
Date d'inscription
Statut
Membre
Dernière intervention
-
naitreGitan Messages postés 406 Date d'inscription Statut Membre Dernière intervention -
naitreGitan Messages postés 406 Date d'inscription Statut Membre Dernière intervention -
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.
A voir également:
- Php header
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- 400 bad request request header or cookie too large - Forum Windows
- Alert php ✓ - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
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 ~
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
<?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.
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 ????
:(
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
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 ~
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 ~
j'essaye ça et je te dis quoi :)
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 :'(