redirection

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 : redirection

par nath-0-0 » 09 déc. 2005, 13:48

ok merci pour la precision, je vais changer cela...

par nicolas » 08 déc. 2005, 21:57

Même si la plupart des navigateurs le tolère la fonction header pour faire une redirection s'utiliser avec une url absolue et pas relative.

par nath-0-0 » 08 déc. 2005, 19:22

ahhhhhhhhhhhhhh j'ai enfin compris....

Je pensais que c'etait bon tant que rien n'allait s'afficher sur le navigateur, mais cela commence bien avant.... :lol:

merci pour votre patience :wink:

par Cyrano » 08 déc. 2005, 18:50

On recommence :
Pour utiliser certaines fonctions comme header(), session_start() et quelques autres moins utilisées, il faut une condition préalable obligatoire: aucun contenu de quelque forme que ce soit ne doit avoir au préalable avoir été envoyé vers le navigateur. Un simple espace suffit à générer le message d'erreur mentionné.

Dans ton code, tu commences par envoyer du html, ensuite tu fais un include contenant ton instruction header(): Le html envoyé au début interdit justement l'utilisation de header().

Si tu n'as pas le choix d'envoyer le html avant, alors pour faire une redirection, il faut te tourner vers un langage client : JavaScript et window.location

par nath-0-0 » 08 déc. 2005, 16:51

mais mon include n'est pas du code html mais php...donc le serveur ne renvoie normalement rien au navigateur!!!

par jobherzt » 05 déc. 2005, 14:59

un simple retour chariot peut suffire a faire planter le schmilblick. or, sur ton extrait de ton include, je vois un retour a la ligne au debut. enfin, le mieux est que tu nous poste le code en entier, ou en tout cas tout le debut du fichier jusqu'a Header

par nath-0-0 » 05 déc. 2005, 14:12

justement j'ai bien lu qu'il doit etre envoyé avant tout affichage mais affichage html.
Hors c'est bien ce que je pense avoir fait mon .inc.php est un fichier que php il s'apelle en fait inserphp.inc.php

et a la ligne 7 j'ai un

Code : Tout sélectionner

<link rel="stylesheet" href="../nikita_style.css" type="text/css"/>
Mais c'est peut etre bien cela qui suffit a le faire planter

par jobherzt » 05 déc. 2005, 13:34

sujet récurrent : les header doivent etre envoye avant tout affichage.dans ton copier coller :-) du fichier inc.php, je vois une ligne vide, en haut... essaie deja de la supprimer pour voir !!

par mario » 05 déc. 2005, 13:33

output started at d:\lesitelevrai\calao\inser.php:7
ouvre le fichier inser.php à la ligne 7, un affichage a été envoyé au navigateur.

rien ne doit etre envoyé au navigateur avant header()

si tu n'as pas le choix, tu peux faire une redirection javascript

redirection

par nath-0-0 » 05 déc. 2005, 13:13

Bonjour

J'ai tenté une redirection apres une suppression de donnée mais cela ne marche pas...
J'ai le msg suivant que j'ai pas bien compris
Warning: Cannot modify header information - headers already sent by (output started at d:\lesitelevrai\calao\inser.php:7) in d:\lesitelevrai\calao\include\inserphp.inc.php on line 209
enfin je comprends pas pourquoi il ne peut pas modifier mes haeder information.

voila mon code


Code : Tout sélectionner

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Language" content="fr" /> <link rel="stylesheet" href="../nikita_style.css" type="text/css"/> <title>Paris-Appartements</title> <script type="text/javascript" src="../java.js"></script> </head> <body><?php include("include/inserphp.inc.php"); // on appelle le fichier ?>
une partie de mon .inc.php

Code : Tout sélectionner

if ($pb_Supprimer=="Supprimer"){ $readonly=""; $etat ="Delete"; $link = mysql_connect('localhost','root','pa'); if (!$link) {die('Impossible de se connecter : ' . mysql_error());} $db_selected = mysql_select_db('paweb',$link); $sql="DELETE FROM `bien` where idBien ='$idBien' " ; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); mysql_close(); header("Location: r_s.php"); }
help please !!!!