IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

syntaxe header location


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut syntaxe header location
    Bonsoir,
    je rencontre un problème avec une de mes syntaxes header, je m'en sert pour me rediriger vers une autre page "en l'occurrence l'index" et afficher quelque chose de annonçant si cela a fonctionner ou pas. j'ai un premier exemple ou cela fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    header("location:index.php?e=empty_ajouter");
    	}
    	else
    	{
    		header("location:index.php?e=empty_ajout");
    	}
    retournant vers ceci de l'index

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="ajout_mot.php" method="post">
    		<p><?php if(isset($_GET['e'])) if($_GET['e']=="empty_ajout") echo ("Le mot exite déja !"); if($_GET['e']=="empty_ajouter") echo ("Le mot est bien ajouter !");?></p>
    		<p>
    			<label for="ajout_mot">Ajouter un mot :</label> <input type="text" name="ajout_mot" /><br /><br />
    			<label for="synonyme">Ajouter de son synonyme :</label> <input type="text" name="synonyme" /><br /><br />
    			<input type="submit" value="valider" /><br/><br/><br/><br/>
    		</p>
    	</form>
    maintenant j'ai la même fonction mais qui ne fonctionne pas la différence est que au lieu de le mettre dans l'index dans des balise <form>, elle est juste a coté du lien de référence afin de ne pas afficher le message n'importe ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    		//echo "Ca a marché";
    		header("location:index.php?e=empty_synajouter");
     
    	}
    	else
    	{
    		//echo "Le mot n existe pas";
    		header("location:index.php?e=empty_donttrouve");
    	}
    qui renvoi a l'index a ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		<p><?php if(isset($_GET['e'])) if($_GET['e']=="empty_synajouter") echo ("Le synonyme a été ajouté !"); if($_GET['e']=="empty_donttrouve") echo ("Le mot n'exite pas dans la liste !");?></p>
    		<p><a href="ajout_synonyme.php">Ajout d'un synonyme !</a><br/><br/></p>
    il dois y avoir une syntaxe avec les liens qui m'échappe merci de bien vouloir m'éclairer svp bonne soiré!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et qu'est ce qui ne fonctionne pas comme tu veux ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    le header devrai me renvoyer vers l'index et m'afficher l'un ou l'autre texte "réussit ou non" juste au dessus du liens concerné.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et au lieu de ça tu as quoi ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    a la place j'ai un message d'erreur concernant le header, je pensait que c'était a cause du echo car on ne peut pas afficher sur une page et repartir en même temps sur une autre. Bref ce n'est pas cela...

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Peux-tu nous donner le message d'erreur ?

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    headers already sent ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    Voila le message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\cour\benhamed_18sept09\suppression.php:3) in C:\wamp\www\cour\benhamed_18sept09\suppression.php on line 94
    desoler pour le temps de post je n'ai pas pu le mettre de suite

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il ne doit y avoir aucun envoi avant le header().
    La, ligne 3, tu as quelque chose qui est envoyé, un echo par exemple.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    ma ligne 3 sur ce document est la balise <?php pour un include_once sur le <head> </head>
    je colle le code de ma page ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <?php
       include_once("head.php");
       ?>
     
       <body>
       <?php
       include_once("en_tete.php");
       include_once("menu.php");
       ?>
     
       <div id="corps">
    <p>
       <h2>Dictionnaire de Benhamed !</h2><br /><br />
     
    <?php
    	$mot_supp = $_POST["supprimer"];
     
    	/* Lecture du fichier */
    	$affiche=fopen("dictionnaire.txt","r"); //ouverture du fichier
    	$tableau_mot = array(); //Creation du tableau pour stocker les mots
    	$i=0;
     
    	while(!feof($affiche)) //parcour jusqu'a la fin du fichier
    	{
    		$tableau_mot[$i] = fgets($affiche,100); //charge la ligne dans tableau
    		$i=$i+1;
    	}
    	fclose($affiche); //Fermeture du fichier
     
    	/*Séparation des mots et synonymes*/ 
    	$tab_motsyn = array();//cree tableau ac mot + synonyme ds ligne diff
    	$tab_separ = array();
    	$i=$i-2; //i contient le nombre de couple mots+synonymes
    	$k=0;
    	$j=0;
     
    	while ($j <= $i)
    	{
    		$tab_separ = explode ("°",$tableau_mot[$j],2);
    		$tab_motsyn [$k] = $tab_separ[0];
    		$k++;
    		$tab_motsyn [$k] = $tab_separ[1];
    		$k++;
    		$j++;
    	}
    	$k--;// k contient le nombre de ligne de tab_motsyn
     
    	/*Recherche du mot dans la liste de mot du dictionaire */
    	$j=0;
    	$mot_trouve = 0; //Variable signalant si le mot a été trouvé
    	while ($j <= $k)
    	{
    		if ($mot_supp == $tab_motsyn[$j]) //le mot de la recherche est trouvé
    		{
    			$mot_trouve = 1;	
    			$i = $j; //Sauvegarde de la position du bon mot
    		}
    		$j = $j+2; // + 2 car la ligne n+1 est le synonyme du mot de la ligne n
    	}
     
    	/* Affichage du Résultat */
    	if($mot_trouve == 1)
    	{
    		while($i<=$k)
    		{
    			$tab_motsyn[$i]=$tab_motsyn[$i+2];//le mot est remplacer par le mots suivant deux ligne plus loin
    			$tab_motsyn[$i+1]=$tab_motsyn[$i+3];//le synonyme est remplacer par le synonyme suivant deux ligne plus loin
    			$i=$i+2;
    		}
    		$f=0;
    		$g=0;
     
    		while($g<=$k-2)
    		{
    			$tableau_mot[$f] = $tab_motsyn[$g]."°".$tab_motsyn[$g+1];
    			$f=$f+1;
    			$g=$g+2;
    		}
    		$f=$f-1;
    		//Ecriture dans le fichier
    		unlink("dictionnaire.txt");
    		touch("dictionnaire.txt");
    		$j=0;
    		$affiche=fopen("dictionnaire.txt","r+"); //ouverture du fichier
     
    		while($j <= $f)
    		{
    			fputs($affiche,"$tableau_mot[$j]");//va a la ligne tt seul
    			$j=$j+1;
    		}
    		fclose($affiche);
    		header("location:index.php?e=empty_supprimer");
    	}
    	else
    	{
    		header("location:index.php?e=empty_nontrouver");
    	}
    ?>
     
    </div>
     
       </div>
       <?php
       include_once("pied.php");
       ?>
     
     
       </body>
    </html>

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il ne doit y avoir aucun envoi avant le header().

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    Merci beaucoup j'ai comprit grâce a vous,
    il y avait effectivement un renvoi mais pas un echo,
    j'avais mis les balise corps menu et pied de page etc... il peut pas afficher et renvoyer en même temps..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon header("Location: page.php"); ne fonctionne pa
    Par Flushovsky dans le forum Langage
    Réponses: 17
    Dernier message: 25/03/2006, 00h49
  2. [header location]
    Par agougeon dans le forum Langage
    Réponses: 5
    Dernier message: 11/01/2006, 21h26
  3. Actualiser une page après un "header location"
    Par salva57 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 10/01/2006, 23h09
  4. header('Location:$url') VS session_start()
    Par Paniez dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 23h30
  5. [FTP] problème header("location:......")
    Par K4trix dans le forum Langage
    Réponses: 23
    Dernier message: 30/11/2005, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo