Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/07/2011, 09h57   #1
Invité de passage
 
Inscription : mai 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 8
Points : 0
Points : 0
Par défaut Aide sur la fonction header

bonjour

mon problem est que j'utilise dans un site web la fonction header.

donc voilà , j'ai des formulaire a traiter , et j'ai une grande masse de traitement d'info et j'ai fait le traitement apart dans une page consacré pour sa , et vers la fin du traitement quand je teste que tous mes requette sont executé correctement , j'aimerai faire une redirection pour une autre page.

le problem c'est que sur WAMP en local , sa marche nikel , mais quand j'ai heberger le site pour dans un hebergeur gratuit pour le test sa m'affiche cet erreur
Citation:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
et j'ai vu que la fonction header doit etre placer tout en haut du fichier , donc soit y'a une solution avec le header sois une autre facons pour que je redirige parceque je fais sa dans un test comme ce ci
Code :
1
2
3
4
//Traitement
...
...
if(sa_marche) { header(location:.....);
donc je peux pas la mettre en haut du fichier
PeDrOo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h07   #2
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Il aurait été utile que tu post le fichier ou tout du moins le bout de code où ça plante, ainsi que l'erreur complète, avec la ligne où ça plante
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h10   #3
Invité de passage
 
Inscription : mai 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 8
Points : 0
Points : 0
ouiii mec , l'erreur est presente labas je l'ai marqué et si le fichier etait necessaire j'allais je le poster . ma question est simple sur internet je trouve que le header comme solution pour faire une redirection , et la redirection avec header ne marche pas si tu la place dans un code ( cad pas au debut du fichier )

donc moi ce que je veux , c'est un plan B

j'espere que j'etais plus claire là
PeDrOo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h19   #4
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Je te garanti que ça fonctionne, le tout c'est de bien l'utilisé

Perso je l'utilise avec les session sur mon site donc envoi ton zoli code et je te dis pourquoi ça va pas
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h41   #5
Invité de passage
 
Inscription : mai 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 8
Points : 0
Points : 0
Là c'est vraiment la merde lol

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
<?php 
    if(isset($_POST['submit']))
    {
            $login=$_POST['login'];
            $pass=$_POST['pass'];
        $sql="SELECT id,prenom,nom,count(id) as oui FROM `am` WHERE login= '".mysql_real_escape_string($login)."' and pass= '".mysql_real_escape_string(md5($pass))."'" ;
        $resultat=mysql_query($sql);
$donnees = mysql_fetch_array($resultat);
 
        if($donnees['oui']==1)
        {   
            $_SESSION['nomhead']=$donnees['nom'];
            $_SESSION['prenomhead']=$donnees['prenom'];
           $_SESSION['id']=$donnees['id'];
            header('Location: premiere.php?id='.$donnees['id'].''); 
 
        }
        else
        {
           header('Location: index.php'); 
 
        }
    }
 
 
     ?>
Voilà le code j'ai résolu le problème des sessions, encore un espace qui trainait, mais le problème du header il est toujours là et le nouveau message d'erreur est celui là :
Citation:
Warning: Cannot modify header information - headers already sent by
PeDrOo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h42   #6
Invité de passage
 
Inscription : mai 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 8
Points : 0
Points : 0
et je veux pas utiliser le JS parceque comme vous savez , s'il est desactivé , un fonctionement important de mon site sera mis en question


merci de bien m'aider
PeDrOo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 10h55   #7
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Ton erreur est incomplète, comme le code que tu post, envoi tout le fichier ainsi que l'erreur complète, du style :

Citation:
"headers already sent by toto on line 32 in toto.php"
PS:Envoi pas de MP pour solutionner tes problème ça a tendance à enervé un peu ^^
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 12h12   #8
Invité de passage
 
Inscription : mai 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 8
Points : 0
Points : 0
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
session_start();
include '../connection.php';
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Authentifiez Vous </title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="ddaccordion.js"></script>
<script type="text/javascript">
ddaccordion.init({
	headerclass: "submenuheader", //Shared CSS class name of headers group
	contentclass: "submenu", //Shared CSS class name of contents group
	revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click", "clickgo", or "mouseover"
	mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover
	collapseprev: true, //Collapse previous content (so only one open at any time)? true/false 
	defaultexpanded: [], //index of content(s) open by default [index1, index2, etc] [] denotes no content
	onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
	animatedefault: false, //Should contents open by default be animated into view?
	persiststate: true, //persist state of opened contents within browser session?
	toggleclass: ["", ""], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
	togglehtml: ["suffix", "<img src='images/plus.gif' class='statusicon' />", "<img src='images/minus.gif' class='statusicon' />"], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
	animatespeed: "fast", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
	oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
		//do nothing
	},
	onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
		//do nothing
	}
})
</script>
 
<script type="text/javascript" src="jconfirmaction.jquery.js"></script>
<script type="text/javascript">
 
	$(document).ready(function() {
		$('.ask').jConfirmAction();
	});
 
</script>
 
<script language="javascript" type="text/javascript" src="niceforms.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="niceforms-default.css" />
 
</head>
<body>
<div id="main_container">
 
 
 
    </div>
 
         <div class="login_form">
 
         <h3>Entrez votre Login et Mot de Passe</h3>
 
         <a href="#" class="forgot_pass">Forgot password</a> 
 
         <form action="index.php" method="post" class="niceform">
 
                <fieldset>
                    <dl>
                        <dt><label for="email">Login:</label></dt>
                        <dd><input type="text" name="login" id="" size="54" /></dd>
                    </dl>
                    <dl>
                        <dt><label for="password">Mot De Passe:</label></dt>
                        <dd><input type="password" name="pass" id="" size="54" /></dd>
                    </dl>
 
                     <dl class="submit">
                    <input type="submit" name="submit" id="submit" value="Enter" />
                     </dl>
 
                </fieldset>
 
         </form>
         </div>  
 
 
 
 
 
</div>		
</body>
</html>
 
 
<?php 
    if(isset($_POST['submit']))
    {
            $login=$_POST['login'];
            $pass=$_POST['pass'];
        $sql="SELECT id,prenom,nom,count(id) as oui FROM `am` WHERE login= '".mysql_real_escape_string($login)."' and pass= '".mysql_real_escape_string(md5($pass))."'" ;
        $resultat=mysql_query($sql);
$donnees = mysql_fetch_array($resultat);
 
        if($donnees['oui']==1)
        {   
            $_SESSION['nomhead']=$donnees['nom'];
            $_SESSION['prenomhead']=$donnees['prenom'];
           $_SESSION['id']=$donnees['id'];
            header('Location: premiere.php?id='.$donnees['id'].''); 
 
 
        }
        else
        {
          header('Location: index.php'); 
 
 
 
        }
    }
 
 
     ?>
voila tout le code

et voilà l'erreur
Code :
Warning: Cannot modify header information - headers already sent by (output started at mon_site/am/index.php:12) in mon_site/am/index.php on line 113
PeDrOo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 12h59   #9
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Avant session ou header tu NE DOIS PAS avoir de code html c'est pour sa que tu as une erreur.

Un principe de base en web: séparer le code html du code php, fais d'abord tout ton traitement en php puis l'affichage en html+php si tu veux garder une seule page

Sinon utilise un moteur de template .
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h27.


 
 
 
 
Partenaires

Hébergement Web