|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour à tous
je débute en php et je dois, suite à un formulaire d'authentification, rediriger un visiteur vers une URL j'ai essayé avec header("location:....) et ça ne fonctionne pas voici le code // connexion à la base de données $db = mysql_connect ('xxxx' , 'yyyyy' , 'zzzzz') or die ( ' Erreur de connexion '.mysql_error()); mysql_select_db('uuuuuuuu', $db) or die('Erreur de sélection'.mysql_error()); // vérification des données du formulaire $sql = "Select * from Users where NOM_US='".$nom."' and PRE_US='". $prenom."'"; $result = mysql_query($sql) or die("Query failed"); $valide = false; while ($line = mysql_fetch_assoc($result)) { $valide = true; } mysql_free_result($result); if($valide == true) { ////////////////// c'est là que ça plante //////////////////////// header("Location: test.php"); } else { echo("BAD CHOICE !"); return false; } / Fermeture de la connexion mysql_close($db); pouvez vous m'indiquer une piste ? merci d'avance BV |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Il est préférable de créer un buffer de sortie pour utiliser la fonction
header. En effet, il ne faut pas que des données aient été déjà envoyés au navigateur par le script. pour ce faire, voici la méthode que j'utilise: En toutdébut de votre page php utilisez la fonction suivante: //début de session ob_start(); dans votre script à la ligne précédent votre function header : //rediriger ob_end_clean(); >>> header("Location: test.php"); Enfin a la fin de votre script : //vider le buffer ob_end_flush(); Ca marche très bien dans tous mes scripts, mais si vous n'avez pas compris, faites le moi savoir. Bonne chance.... |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Le 22/07/2007 17:18, Ben74 a écrit :
> > je débute en php et je dois, suite à un formulaire d'authentification, > rediriger un visiteur vers une URL > j'ai essayé avec header("location:....) et ça ne fonctionne pas Ah, « ça ne fonctionne pas ». Mais parmi les zillions de façons possibles de « ne pas fonctionner », quelle est la tienne ? Par exemple : 1) Rien ne s'affiche. 2) Tu as un message d'erreur (lequel ?). 3) Les « é » sont transformés en « é ». 4) Ton écran explose. 5) Tes toasts sont trop grillés. 6) Le script tourne pendant une minute sans résultat. 7) Ta femme t'a quitté. 8) etc. Vu que tu utilises la fonction header (avec comme paramètre un truc interdit par la noreme HTTP, mais passons...), as-tu déjà lu la FAQ ? http://faqfclphp.free.fr/#rub2.11 http://faqfclphp.free.fr/#rub2.12 > voici le code Sans une description de la façon dont « ça ne fonctionne pas », c'est un peu inutile. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On 23 juil, 10:21, Emmanuel Petit <emmanuel.peti...@free.fr> wrote:
> Il est préférable de créer un buffer de sortie pour utiliser la fonction > header. En effet, il ne faut pas que des données aient été déjà envoyés > au navigateur par le script. > pour ce faire, voici la méthode que j'utilise: > En toutdébut de votre page php utilisez la fonction suivante: > > //début de session > ob_start(); > > dans votre script à la ligne précédent votre function header : > //rediriger > ob_end_clean(); > > >>> header("Location: test.php"); > > Enfin a la fin de votre script : > > //vider le buffer > ob_end_flush(); > > Ca marche très bien dans tous mes scripts, mais si vous n'avez pas > compris, faites le moi savoir. > Bonne chance.... je vais essayer ! même si j'avoue ne pas tout saisir, je vais également aller regarder l'aide PHP pour en savoir plus sur la notion de buffer merci bq pour votre reponse, je vous tiens au courant pour vous dire si cela fonctionne |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On 23 juil, 10:36, Olivier Miakinen <om+n...@miakinen.net> wrote:
> Le 22/07/2007 17:18, Ben74 a écrit : > > > > > je débute en php et je dois, suite à un formulaire d'authentification, > > rediriger un visiteur vers une URL > > j'ai essayé avec header("location:....) et ça ne fonctionne pas > > Ah, « ça ne fonctionne pas ». Mais parmi les zillions de façons > possibles de « ne pas fonctionner », quelle est la tienne ? > > Par exemple : > 1) Rien ne s'affiche. > 2) Tu as un message d'erreur (lequel ?). > 3) Les « é » sont transformés en « é ». > 4) Ton écran explose. > 5) Tes toasts sont trop grillés. > 6) Le script tourne pendant une minute sans résultat. > 7) Ta femme t'a quitté. > 8) etc. > > Vu que tu utilises la fonction header (avec comme paramètre un truc > interdit par la noreme HTTP, mais passons...), as-tu déjà lu la FAQ ? > > http://faqfclphp.free.fr/#rub2.11htt...ee.fr/#rub2.12 > > > voici le code > > Sans une description de la façon dont « ça ne fonctionne pas », c'est un > peu inutile. Bonjour j'aime le coté sarcastique du message.... quand je dis que ca ne fonctionne pas c'est que j'ai un écran vide maintenant concernant l'interdiction et la norme, je débute, je sais que j'ai encore pleind e choses à lire et à découvrir, mais l'euphorie du débutant à fait que je me suis lancé sur des lignes de codes pour tester désolé de ne pas respecter les cadres et les standards BV |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Le 23/07/2007 14:51, Ben74 a écrit :
>> >> Ah, « ça ne fonctionne pas ». Mais parmi les zillions de façons >> possibles de « ne pas fonctionner », quelle est la tienne ? > > j'aime le coté sarcastique du message.... ;-) > quand je dis que ca ne fonctionne pas c'est que j'ai un écran vide C'est déjà une indication, et même plusieurs : - tu n'as pas de message d'erreur ; - et le navigateur n'affiche rien. Mais même dans ce cas là tu devrais commencer par regarder le code HTML généré (View/Page source) car il y a sûrement des choses à voir. > maintenant concernant l'interdiction et la norme, je débute, je sais > que j'ai encore > pleind e choses à lire et à découvrir, mais l'euphorie du débutant à > fait que je me suis > lancé sur des lignes de codes pour tester > désolé de ne pas respecter les cadres et les standards En quelques mots, le header("Location: ...") ne devrais jamais servir à rien d'autre qu'à rediriger d'un site vers un autres, et pas entre deux pages du même site. D'ailleurs il devrait toujours y avoir une URL absolue (du genre http://www.example.com/test.html) et jamais une URL relative (telle que test.html). Par ailleurs, merci de ne rien citer de plus que ce qui est utile quand tu réponds à un message sur usenet. Quelques lignes de citations en plus, et ton article aurait été refusé par la modération pour citation excessive. Cf. <http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/>. |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
On 23 juil, 10:21, Emmanuel Petit <emmanuel.peti...@free.fr> wrote:
> Il est préférable de créer un buffer de sortie pour utiliser la fonction > header. En effet, il ne faut pas que des données aient été déjà envoyés > au navigateur par le script. > pour ce faire, voici la méthode que j'utilise: > En toutdébut de votre page php utilisez la fonction suivante: > > //début de session > ob_start(); > > dans votre script à la ligne précédent votre function header : > //rediriger > ob_end_clean(); > > >>> header("Location: test.php"); > > Enfin a la fin de votre script : > > //vider le buffer > ob_end_flush(); > > Ca marche très bien dans tous mes scripts, mais si vous n'avez pas > compris, faites le moi savoir. > Bonne chance.... J'ai essayé mais ca ne marche pas toujours une page blanche |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen a écrit :
(snip) > En quelques mots, le header("Location: ...") ne devrais jamais servir à > rien d'autre qu'à rediriger d'un site vers un autres, et pas entre deux > pages du même site. Chapitre et verset, s'il te plait ? Moi, ce que je vois dans la rcf, c'est: 14.30 Location The Location response-header field is used to redirect the recipient to a location other than the Request-URI for completion of the request or identification of a new resource. For 201 (Created) responses, the Location is that of the new resource which was created by the request. For 3xx responses, the location SHOULD indicate the server's preferred URI for automatic redirection to the resource. The field value consists of a single absolute URI. Location = "Location" ":" absoluteURI Qui ne dit en rien que l'URI doivent appartenir à un autre domaine - au contraire, cf la partie sur le code 201, ainsi que cet autre extrait: 9.5 POST (...) If a resource has been created on the origin server, the response SHOULD be 201 (Created) and contain an entity which describes the status of the request and refers to the new resource, and a Location header (see section 14.30). qui pour ce que j'en comprend implique au contraire qu'il est non seulement autorisé mais dans certaines circonstances *recommandé* d'utiliser un header Location avec une URI pointant sur le même domaine. nb : http://www.faqs.org/rfcs/rfc2616 >D'ailleurs il devrait toujours y avoir une URL > absolue (du genre http://www.example.com/test.html) et jamais une URL > relative (telle que test.html). Là par contre on est d'accord. C'est d'ailleurs documenté dans la doc PHP. http://fr.php.net/manual/en/function.header.php |
|
![]() |
| Outils de la discussion | |
|
|