Problème avec redirection de page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec redirection de page

Re: Problème avec redirection de page

par Mazarini » 07 sept. 2012, 16:14

C'est le pastis et le rhum du vendredi midi... Mais les autres jours, c'est guère mieux.

La, j'ai un pb de soap en asp. J'ai ajouté des tests de code erreur et ca marche depuis... j'essaye de voir ce qui a changé mais je n'ai pas accès à ceux qui font le service. C'est un client, il ne change jamais rien, mais le flux évolue de temps en temps.

Je vais jouer la montre jusqu'à ce soir.

Edit : essaye de paramétrer les 2 serveurs de la même facon.

Re: Problème avec redirection de page

par Monsieur Fernand » 07 sept. 2012, 16:12

Whaouuu, messieurs, votre diligence n'a d'égale que votre virtuosité...
j'ai effectivement déplacé ma routine php en début de page, upload sur le serveur, et.... heureux !!!
Merci beaucoup à vous deux, je me coucherai ce soir un peu plus aware sur le Php.
Grâce à vous.
Bon weekend

Re: Problème avec redirection de page

par xTG » 07 sept. 2012, 15:56

Tu as du contenu envoyé au navigateur avant le header().
Ton installation locale est très permissive et ne bloque pas il semblerait.
Mais une erreur est générée à cause du buffer à envoyer au navigateur qui n'est pas vide (code HTML) et donc le header() s'attendant (et devant !) à être le premier contenu PHP génère une erreur. (disponible dans ton fichier error.log)

Ce fonctionnement est indiqué dans la documentation de la fonction header.

Edit : ah on sent bien qu'on est vendredi, plus personne ne veut bosser et on traîne sur les forums hein ! :twisted:

Re: Problème avec redirection de page

par Mazarini » 07 sept. 2012, 15:55

La redirection n'est possible que si aucune donnée n'a été envoyée au navigateur au préalable.

On voit que tu envies <form...> avant le header, donc erreur.

1) Tu ne voies pas de message d'erreur à cause du paramétrage de PHP (normal en production). Si tu ajoutais une ligne "error_reporting(E_ALL); en début de script tu verrais un message d'erreur (sauf blocage parametrage de display_errors).

2) Ca marche en locale car php est paramétré pour bufferiser et donc le header passe. Si tu ajoutes ob_start() au début de ta page, ca doit marcher. La solution propre est de mettre les sorties après le header().

Je te conseille de faire une page <?PHP phpinfo(); ?> pour voir le paramétrage et de paramétrer ton serveur local comme le serveur distant pour éviter les surprises.

Problème avec redirection de page

par Monsieur Fernand » 07 sept. 2012, 15:42

Bonjour à tous,

je rencontre un petit problème que je ne m'explique pas... J'ai créer un formulaire (nommé form1), par lequel je renseigne plusieurs zones :
La date (automatique), le nom de l'auteur (automatique), le titre de l'article, et le corps de l'article.
Ensuite, deux boutons : Un pour envoyer et un pour annuler.
A l'aide du code ci-dessous, lorsque je clique sur Envoyer, je souhaite revenir sur ma page d'accueil après avoir inscrit les données dans ma base Sql.

Code :
.../...
<form name="form2" method="post"><input type="submit" name="envoi" value="Envoyer" /></form>
.../...
<?php
if (isset($_POST['envoi']))
{
$todayinfo = date('y-m-d');
$auteurinfo = htmlspecialchars($_SESSION['user']);
$titreinfo = htmlspecialchars($_POST['titre']);
$info = nl2br(htmlspecialchars($_POST['corpsinfo']));
mysql_query("INSERT INTO articles VALUES('', '" . $auteurinfo . "', '" . $todayinfo . "', '" . $titreinfo . "', '" . $info . "', '')");
mysql_close();
header("location:gestbaseinfo.php");
}
?>
.../...


En local, sur mon PC, avec WampServer 2.1, la redirection après l'action fonctionne parfaitement...
En revanche, dès que j'upload mon fichier sur mon serveur, plus de redirection, je reste sur mon fichier...
Quelqu'un aurait-il une idée sur l'origine de ce problème ?
Je suis complètement autodidacte, alors peut-être n'est-ce qu'un problème de configuration de Php sur mon serveur ?
Je vous remercie de votre aide à venir...
Cordialement