Bonjour,
Je voudrais faire une redirection en php.
"header (location : ...)" a une contrainte qui m'empeche d'utilisé dans mon cas.
Existe-t-il une autre solution pour faire une redirection et sans contrainte.
Merci
Version imprimable
Bonjour,
Je voudrais faire une redirection en php.
"header (location : ...)" a une contrainte qui m'empeche d'utilisé dans mon cas.
Existe-t-il une autre solution pour faire une redirection et sans contrainte.
Merci
tu mets une redirection en javascript
Code:echo "<script>document.location.href='tapage';</script>";
Oui y a cette solution là mais si l'utilisateur bloque le JS, bug...
Ba ça repond pas à ma question.Citation:
Envoyé par Eusebius
Tu demandais d'autres méthodes de redirection.Citation:
Envoyé par MANU_2
C'est une liste des méthodes de redirection.
Si tu commençais par nous dire quel est cette fameuse contrainte on pourrait peut être t'en dire plus... .. .Citation:
Envoyé par MANU_2
@ tchaOo°
Voila les redirection que je connais avec les contraintes :
header : Cette fonction doit par contre être utilisée avant d'envoyer des données html, sous peine de produire une erreur.
JavaScript : Pour fonctionner, il faut néanmoins que le visiteur ait activé le support du javascript..
balise <meta> : Cette balise se place dans la partie <head> de votre page
Moi je cherche une autre commande de redirection sans contrainte.
Ce que tu appelles des contraintes, j'appelle ça des conditions d'utilisation. Suivant ce que tu veux faire, tu utilises une méthode ou l'autre. Les contraintes, ce sont tes spécifications. Quelles sont-elles ?Citation:
Envoyé par MANU_2
C'est un peu compliquer, je vais essayer d'être clair.
J'ai 1 fichier index.php du style :
contenu.php permet d'afficher un formulaire et il envoie les données dans traiter.php.Code:
1
2
3
4
5
6
7
8
9
10 ... <html> ... <%php selon (nb) : 1 : contenu.php ?> ... </html>
Dans le fichier traiter.php, je traite les données et s'il y a erreur, je veux revenir au formulaire en précisant quelle est l'erreur. Si je fais un header(), ça ne marche pas car l'entête est deja envoyé.
Donc je cherche une redirection du style "header(location : index.php?nb=1)"
Session + Header.
Tu peux m'expliquer comment on fait une redirection avec une session et le header (qui ne marche pas ds mon cas) ?Citation:
Envoyé par nicocsgamer
Pourquoi, tu fais un affichage dans ton script de traitement ?Citation:
Envoyé par MANU_2
C'est pas ce qu'il y a de plus propre comme façon de faire (j'aurais tendance à rejoindre Eusebius) mais tu peut activer la bufferisation de sortie... .. .
@ tchaOo°
Car je ne fais pas d'affichage ds mon fichier de traitement.Citation:
Envoyé par Eusebius
Et quelle solution + propre tu proposes ?Citation:
Envoyé par kankrelune
Ben je jetterais bien un coup d'oeil dans traiter.phpCitation:
Envoyé par MANU_2
dans traiter.php, il y a le traitement des donnés et c'est tout, aucun echo ou print.
Alors il ne devrait pas y avoir de "headers already sent".Citation:
Envoyé par MANU_2
Voici mon fichier de traitement des données :
Et voici l'erreur :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php // Connection include("../connection/connection.php"); // Recuperation des champs $Id_ut = $HTTP_POST_VARS[ch_id]; $nom = $HTTP_POST_VARS[ch_nom]; $prenom = $HTTP_POST_VARS[ch_prenom]; $rue = $HTTP_POST_VARS[ch_rue]; $code_postal = $HTTP_POST_VARS[ch_code_postal]; $ville = $HTTP_POST_VARS[ch_ville]; $pwd = $HTTP_POST_VARS[ch_pwd]; $mail = $HTTP_POST_VARS[ch_mail]; $statut = $HTTP_POST_VARS[ch_statut]; if ($statut == "Administrateur") { $statutb = 1; } elseif ($statut == "Journaliste") { $statutb = 2; } else { $statutb = 0; } $requete = "UPDATE Utilisateur "; $requete = $requete."SET Nom='".$nom."', Prenom='".$prenom."', Rue='".$rue."', Code_postal='".$code_postal."', Ville='".$ville."', Pwd='".$pwd."', Mail='".$mail."', Statut='".$statutb."' "; $requete = $requete."WHERE Id_utilisateur=".$Id_ut; $result = mysql_query($requete) or die ('Erreur : '.mysql_error() ); mysql_close(); header('Location: ../admin/index_admin.php?nb=1'); // LIGNE 38 ?>
Code:Warning: Cannot modify header information - headers already sent by (output started at D:\cnam10\journal\admin\index_admin.php:10) in D:\cnam10\journal\admin\modif_util.php on line 38
Eh bien je dirais que c'est un de tes fichiers d'include qui fait un affichage, on déplace le problème...
Au passage, $HTTP_POST_VARS c'est deprecated, depuis la version 4.1.0, il faut utiliser $_POST (mais ça a rien à voir avec ton erreur).