Se connecter avec
S'enregistrer | Connectez-vous

Problème : Cannot modify header information

Dernière réponse : dans Programmation

Bonjour à tous,
J'ai créer un page "saisirloterreur" qui est pareil à "saisirlot" mais qui devrai me permettre de géré les erreurs.
Dans ma page "saisirlot" j'ai créer un IF, voir ci-après :

  1. if (is_string($_POST['txtNumMarche2'])
  2. and is_string($_POST['txtMontant2'])
  3. or is_string($_POST['txtMontant2'])
  4. and is_string($_POST['txtMontantMini2'])
  5. or is_string($_POST['txtMontantMini2'])
  6. and is_string($_POST['txtMontantMaxi2'])
  7. or is_string($_POST['txtMontantMaxi2'])
  8. and is_string($_POST['txtMontantReel2'])
  9. or is_string($_POST['txtMontantReel2']))
  10. {
  11. header("Location:http://xp05043/Marches/saisirlot.php");
  12. }


Mais le problème c'est que j'ai ceci comme message d'erreur :

  1. Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Marches\saisirlot.php:14) in C:\wamp\www\Marches\saisirlot.php on line 474


Si quelqu'un peut m'aider, sa m'aiderai car là, je bloque !!
Lassé par la pub ? Créez un compte

On ne peut pas utiliser header( "Location: ..." ); si du texte à déja été envoyé.

Exemple :
  1. echo "a";
  2. header( "Location: <a href="http://www.monsite.com" target="_blank">http://www.monsite.com</a>" );


Ne doit (normalement) pas marcher.

Death-Punk a dit :
Ok
Existe t-il une fonction qui agit comme "header" et qui fonctionne lorsque qu texte à été envoyé ?

include(), par exemple, pour inclure un corps de page ou un élément de page plutôt qu'un autre ou des scripts divers (comme ton formualire de saisie de lots)..

header() est vraiment à n'utiliser qu'avant d'envoyer quoi que ce soit, par exemple dans le cas d'une redirection de page.. C'est alors une redirection complète !

Sinon, vois dans le topic pinné en tête de liste ;) ..

:jap: 

Maintenant que j'ai mis un include, il me met :

  • Warning: include(saisirloterreurs.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\Marches\saisirlot.php on line 471

  • Warning: include() [function.include]: Failed opening 'saisirloterreurs.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\Marches\saisirlot.php on line 471

    Je n'ai pas trop compris l'intervention de Johan_et_Pirlouit pour le "include", include est fais pour inclure des fichiers, non pour rediriger vers une page quelconque me semble-t-il -__-"

    Citation :
    Je n'ai pas trop compris l'intervention de Johan_et_Pirlouit pour le "include", include est fais pour inclure des fichiers, non pour rediriger vers une page quelconque me semble-t-il -__-"

    Oui, c'est fait pour inclure des fichiers.. Si on ne peut pas faire une redirection, on fait autrement [:spamafote].. Ces fichiers peuvent contenir des bouts de code, des scripts, des fonctions, des classes, etc... Donc ça peut fonctionner pour appeler un formulaire qui sera inclu dans un bloc <div> de la page principale (par exemple : un bloc <div> qui fait office de "frame", de conteneur central, quoi).. Aucun besoin d'avoir une page complète pour faire ce formulaire, donc..

    Mais include() n'est qu'une piste, il y en a certainement d'autres (require(), require_once(), ...)..

    Le manuel PHP est accessible depuis le premier topic de la cat'..

    :jap: 

    Je t'ai donné une piste pour faire autrement avec succès, merci de l'essayer..

    D'autre part, il t'a été dit qu'il ne faut afficher aucun texte avant l'envoi du header.. Vois ça aussi parce que c'est entièrement faisable : traitement de tes données puis envoi du header en fonction du résultat !

    Pour apprendre le PHP : Site du zér0 >> http://www.siteduzero.com/ (et non, l'habit ne fait pas forcément le moine, c'est pas un site de nullos pour les caves)..

    :jap: 

    mido@IDN a dit :
    Je t'ai donné une piste pour faire autrement avec succès, merci de l'essayer..

    D'autre part, il t'a été dit qu'il ne faut afficher aucun texte avant l'envoi du header.. Vois ça aussi parce que c'est entièrement faisable : traitement de tes données puis envoi du header en fonction du résultat !

    Pour apprendre le PHP : Site du zér0 >> http://www.siteduzero.com/ (et non, l'habit ne fait pas forcément le moine, c'est pas un site de nullos pour les caves)..

    :jap: 


    Oui .. super site .. tres bien fait :) 

    Citation :
    */ le code en lui meme est faux ...
    */ pourquoi ne pas utiliser la fonction header ?
    */ pourquoi ne pas utiliser la redirection html (2 facons) ?

    :non: 
    //e code fonctionne bien!
    //la fonction header en php provoque une une erreur en cas ou il n'est pas utilisée ds l'entête du page
    //html ne sert que faire une redirection automatique,on peut pas mettre des condition de redirection.

    Citation :
    */ non, tu spécifie pas le type de script.
    */ c'est ton code php qui est mal pensé. faut revoir ta facon de voir ...
    */ pas de condition ? mais les conditions, sont a gérer coté serveur mon coco :o 

    //indication de type the script est facultatif parceque le navigateur sache qu'il s'agit du javascript
    //et toi au lieu de faire du blabla tu proposes au moin une solution claire
    Lassé par la pub ? Créez un compte