par
Cyrano » 08 mai 2005, 09:44
Tu ne peux pas; Il faut comprendre une chose: PHP s'exécute coté serveur pour faire une chose bien précise : générer une page HTML en langage client. Le PHP ne sort pas du serveur. Donc ce que reçoit le navigateur, c'est un langage qu'il peut interprérer et si tu laisses un lien src="<? echo $url ?>", ton navigateur va le laisser tel quel. mais quand tu cliqueras dessus, il va chercher l'adresse "<? echo $url ?>" au lieu d'une adresse valide.
Si tu essayes de faire ça pour éviter que quelqun aille dans le répertoire en question, mets une page index.php ou index.html dans ce répertoire avec une redirection vers l'entrée du site. Personnellement, c'est ce que j'utilise et ça fonctionne très bien. Mais ça n'interdit pas d'aller dans ce répertoire avec un nom de fichier précis.
Tiens, voici un fichier à placer dans tes répertoires, à nommer index.php
<?php
header("Location: ../index.php?page=accueil");
echo"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sortie manu-militari, zone interdite.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Robots" content="none" />
<script language="JavaScript">
<!-- Begin
//PLF-http://www.jejavascript.net/
function sortieforcee()
{
setTimeout("window.location='../index.php'",2500); // delai en millisecondes
}
// End -->
</script>
</head>
<body onload="sortieforcee()" style="color: #ff0000; background-color: #ffcc66">
<h2 style="text-align:center">L'accès à ce répertoire est interdit.</h2>
<p style="text-align:center">Vous serez redirigé dans trois secondes vers l'acceuil du site</p>
<p style="text-align:center">S'il ne se passait rien, cliquez sur le lien ci-dessous:</p>
<p style="text-align:center"><a href="../index.php">Retour à l'accueil du site</a></p>
</div>
</body>
</html>
Le première ligne de code doit suffire, mais dans le cas tout juste imaginable ou il y aurai un bug de PHP, c'est suivi par un JavaScript qui fait la même chose, et dans le pire des cas, il y a une page avec un lien de retour vers l'index du site.
Tu ne peux pas; Il faut comprendre une chose: PHP s'exécute coté serveur pour faire une chose bien précise : générer une page HTML en langage client. Le PHP ne sort pas du serveur. Donc ce que reçoit le navigateur, c'est un langage qu'il peut interprérer et si tu laisses un lien src="<? echo $url ?>", ton navigateur va le laisser tel quel. mais quand tu cliqueras dessus, il va chercher l'adresse "<? echo $url ?>" au lieu d'une adresse valide.
Si tu essayes de faire ça pour éviter que quelqun aille dans le répertoire en question, mets une page index.php ou index.html dans ce répertoire avec une redirection vers l'entrée du site. Personnellement, c'est ce que j'utilise et ça fonctionne très bien. Mais ça n'interdit pas d'aller dans ce répertoire avec un nom de fichier précis.
Tiens, voici un fichier à placer dans tes répertoires, à nommer index.php
[php]<?php
header("Location: ../index.php?page=accueil");
echo"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sortie manu-militari, zone interdite.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Robots" content="none" />
<script language="JavaScript">
<!-- Begin
//PLF-http://www.jejavascript.net/
function sortieforcee()
{
setTimeout("window.location='../index.php'",2500); // delai en millisecondes
}
// End -->
</script>
</head>
<body onload="sortieforcee()" style="color: #ff0000; background-color: #ffcc66">
<h2 style="text-align:center">L'accès à ce répertoire est interdit.</h2>
<p style="text-align:center">Vous serez redirigé dans trois secondes vers l'acceuil du site</p>
<p style="text-align:center">S'il ne se passait rien, cliquez sur le lien ci-dessous:</p>
<p style="text-align:center"><a href="../index.php">Retour à l'accueil du site</a></p>
</div>
</body>
</html>[/php]
Le première ligne de code doit suffire, mais dans le cas tout juste imaginable ou il y aurai un bug de PHP, c'est suivi par un JavaScript qui fait la même chose, et dans le pire des cas, il y a une page avec un lien de retour vers l'index du site.