Redirection Header en rapport avec SQL
Résolu
Stelino
-
Stelino -
Stelino -
Bonjour,
Sur le script d'une page, je souhaite que lors de la récupération des données de la table [rang] de ma banque MySQL, une redirection soit produite vers une autre page.
exemple:
Si [rang] *//contient une donnée existante dans la table rang
Alors (redirection vers nouvelle page)
Sinon (faire apparaître une image sur la page actuelle)
Voici mon code:
mon problème est qu'aucunes redirection est produite malgré ce code, d'ou viens ce problème?
Merci
Sur le script d'une page, je souhaite que lors de la récupération des données de la table [rang] de ma banque MySQL, une redirection soit produite vers une autre page.
exemple:
Si [rang] *//contient une donnée existante dans la table rang
Alors (redirection vers nouvelle page)
Sinon (faire apparaître une image sur la page actuelle)
Voici mon code:
<?php $req = mysql_query('select id, username, avatar, email, rang from users'); while($dnn = mysql_fetch_array($req)) { ?> <?php if($dnn['rang']!='') { header('Location: ./nouvelle_page.php'); exit(); } else { echo '<img src="http://leadinvest.fr/images/Discuter.PNG" style="max-width: 500px;max-height: 500px;margin-bottom:7px;margin-left: 430px;" />'; } ?> <?php } ?>
mon problème est qu'aucunes redirection est produite malgré ce code, d'ou viens ce problème?
Merci
A voir également:
- Header sql
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Sql lister les tables ✓ - Forum Programmation
- 400 bad request request header or cookie too large - Forum Windows
- Requête sql pix - Forum Python
2 réponses
Salut,
L'appel de la fonction header() pour modifier les entêtes http (tel qu'une redirection) doit être fait avant que le moindre contenu ne soit envoyé au client (affichage html, echo, ligne blanche...)
https://www.php.net/manual/fr/function.header.php
L'ouverture et la fermeture des balises PHP avec les 3 lignes vides, en plus d'être inutiles, sont peut être la cause de non fonctionnement de la redirection (Erreur php headers already sent).
A corriger :
PS : pour la redirection, préfère plutôt le chemin absolu depuis la racine de ton site (commençant par un /).
Bonne journée
L'appel de la fonction header() pour modifier les entêtes http (tel qu'une redirection) doit être fait avant que le moindre contenu ne soit envoyé au client (affichage html, echo, ligne blanche...)
https://www.php.net/manual/fr/function.header.php
L'ouverture et la fermeture des balises PHP avec les 3 lignes vides, en plus d'être inutiles, sont peut être la cause de non fonctionnement de la redirection (Erreur php headers already sent).
A corriger :
<?php $req = mysql_query('select id, username, avatar, email, rang from users'); while($dnn = mysql_fetch_array($req)) { if($dnn['rang']!='') { header('Location: /nouvelle_page.php'); exit(); } else { echo '<img src="http://leadinvest.fr/images/Discuter.PNG" style="max-width: 500px;max-height: 500px;margin-bottom:7px;margin-left: 430px;" />'; } }
PS : pour la redirection, préfère plutôt le chemin absolu depuis la racine de ton site (commençant par un /).
Bonne journée
Bizarrement sur une de mes autres pages, j'arrive à faire en sorte que lorsqu'une table est utiliser ou nulle, le code que je présentais au début fait bien la différence et agit de le sorte:
si rang
alors image1
sinon image 2
j'ai la net impression que la fonction header prend le dessu sur le reste.
Est-ce normal que ta requête porte sur tous les utilisateurs ? Ne devrait-il pas y avoir un paramètre pour ne récupérer les infos d'un seul utilisateurs ?
Actuellement il suffit que le rang d'un seul utilisateur soit null pour effectuer la redirection, peu importe le rang des autres utilisateurs.
les changement d'image qui se produise par rapport au fait que [rang] soit null ou non s'affiches à tous les utilisateurs.
c'est pourquoi la fonction header n'agit pas indépendamment pour chaque utilisateurs et les renvois tous vers la nouvelle page.
Ya t'il un moyen de porter sur 1 seul utilisateur?
que faut'il faire?