Problème "Location :" ?

Eléphant du PHP | 142 Messages

27 mai 2011, 10:42

Bonjour,

Mon problème est simple. Je suis débutant, et j'aimerais que, si l'adresse de la page est par exemple "http://www.site.com/page.php", un message s'affiche.
Autrement dit, un truc du genre :
if (Location : http://www.site.com/page.php)
{
   echo "Vous êtes sur PAGE.PHP";
}
Mais comment faire ? Ca doit être tout bête, mais je n'ai pas trouvé sur Google...

Mammouth du PHP | 672 Messages

27 mai 2011, 10:55

:?:

Ce n'est pas très clair, là...
Comme tu présentes les choses il suffit de mettre un echo "Vous êtes sur PAGE.PHP"; dans la page page.php.

Sinon, tu peux regarder les variables serveur : print_r($_SERVER); en début de page. Tu devrais trouver ton bonheur...
suivant ce que tu cherches précisément, tu as (par exemple) $_SERVER['PHP_SELF'] qui renvoit l'adresse (relative) de la page et $_SERVER['HTTP_HOST'] pour l'adresse de base.
Ou __FILE__ qui te renvoit le script réellement en cours (chemin complet).

Eléphant du PHP | 142 Messages

27 mai 2011, 11:07

Désolé pour le manque de clarté... En fait, j'ai des adresses qui se génèrent sans forcément qu'il y ait une page PHP derrière.
Par exemple, quand l'adresse est "http://www.monsite.com/etc/mapage.php?t ... min=Pierre", je voudrais afficher un certain message.
Et quand l'adresse est "http://www.monsite.com/etc/mapage.php?t ... admin=Paul", je voudrais en afficher un autre... C'est possible ça ?!

Mammouth du PHP | 672 Messages

27 mai 2011, 11:13

Désolé pour le manque de clarté... En fait, j'ai des adresses qui se génèrent sans forcément qu'il y ait une page PHP derrière.
Par exemple, quand l'adresse est "http://www.monsite.com/etc/mapage.php?t ... min=Pierre", je voudrais afficher un certain message.
Et quand l'adresse est "http://www.monsite.com/etc/mapage.php?t ... admin=Paul", je voudrais en afficher un autre... C'est possible ça ?!
Oui.

Dans le script mapage.php il "suffit" de récupérer les paramètres que tu as passé, et de faire un test dessus. Quelques exemples :
$admin = $_GET['admin']; // Penser à sécuriser ce que tu récupéres (ou pas) par un GET
if ($admin == 'Pierre' ) {
   echo 'Salut Pierre';
}
if ($admin == 'Paul' ) {
   echo 'Salut Paul';
}
switch ($admin) {
   case 'Pierre' : echo 'Salut Pierre';break;
   case 'Paul' : echo 'Salut Paul';break;
   default : 'Salut, inconnu';break;
}
echo 'Salut '.$admin;

Eléphant du PHP | 142 Messages

27 mai 2011, 11:51

Oui, je comprends ce que tu dis. En fait, ce n'était pas en fonction de l'admin que je voulais afficher un message, mais en fonction de la table sur laquelle on est. Mais j'ai du mal car je reprends le code de quelqu'un, et que la variable en question n'est pas simplement $NomTable, mais $Menu->NomTable[$i]['MenuSQL']. Elle est enfermée dans une boucle, or moi j'aimerais l'afficher, mais à un autre endroit de la page... Et si je l'affiche dans un autre endroit, avec le code suivant :
if (($Menu->NomTable[$i]['MenuSQL']) == 'Les_commerciaux') {echo "MON BLABLA";}
Et bien je n'obtiens rien, puisqu'il y a le [$i]. Mais même sans le [$i], ça ne marche pas :s

Mammouth du PHP | 672 Messages

27 mai 2011, 11:58

Oui, je comprends ce que tu dis. En fait, ce n'était pas en fonction de l'admin que je voulais afficher un message, mais en fonction de la table sur laquelle on est. Mais j'ai du mal car je reprends le code de quelqu'un, et que la variable en question n'est pas simplement $NomTable, mais $Menu->NomTable[$i]['MenuSQL']. Elle est enfermée dans une boucle, or moi j'aimerais l'afficher, mais à un autre endroit de la page... Et si je l'affiche dans un autre endroit, avec le code suivant :
if (($Menu->NomTable[$i]['MenuSQL']) == 'Les_commerciaux') {echo "MON BLABLA";}
Et bien je n'obtiens rien, puisqu'il y a le [$i]. Mais même sans le [$i], ça ne marche pas :s
Il faudrait la boucle, là...
Ou au moins savoir à quoi correspond le $Menu->NomTable[$i]['MenuSQL']

Sinon, si tu veux éviter de trop toucher au code, tu récupéres les infos dans la boucle, et tu gères l'affichage après.
Du genre :
// initialisation
var $texte = '';
//dans la boucle
if (($Menu->NomTable[$i]['MenuSQL']) == 'Les_commerciaux') $texte = "MON BLABLA";
// Après la boucle, où tu veux
echo $texte

Eléphant du PHP | 142 Messages

27 mai 2011, 12:15

Je ne m'en sors pas avec ta solution, il n'aime pas le "var", ou qu'il soit... Voici le code de la boucle :
		$Menu = new Menu();
		$i = 0;
		while ($i < count($Menu->NomTable))
		{
			if (($Menu->NomTable[$i]['MenuSQL'] <> 'Mdp_Formation') 						      && ($Menu->NomTable[$i]['MenuSQL'] <> 'login'))
			{
				echo '
					<a class="TexteX-Small" title="'.$Menu->NomTable[$i]['MenuSQL'].'" 
					href="mapage.php?table='.$Menu->NomTable[$i]['MenuSQL'].'                                                     &admin='.$NomAdmin.'">'.$Menu->NomTable[$i]['MenuAffichage'].'</a>
				';
			}
		$i++;
		}
		unset($Menu);

Mammouth du PHP | 672 Messages

27 mai 2011, 13:53

:oops:
Je me suis trompé... Un bête $texte = ''; suffit pour initialiser la variable.

Eléphant du PHP | 142 Messages

27 mai 2011, 14:43

Ah c'est bon ! J'ai trouvé un autre moyen de faire ce que je voulais, en mieux, en allant trifouiller un autre bout de code ! Grâce à Firebug...

Merci macgawel, toujours là à ma rescousse :wink: