DOUBLE ASTUCE POUR LES LIENS & AUTRES(À PARTIR DE L'URL)

Kilco Messages postés 30 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 22 septembre 2004 - 9 avril 2004 à 21:45
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006 - 6 mai 2004 à 19:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21772-double-astuce-pour-les-liens-autres-a-partir-de-l-url

Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
6 mai 2004 à 19:26
Merci Natim.
J'aimerais préciser, à l'attention de tout le monde, que ça peut s'employer avec un switch.
Le code de Kilco peut devenir :
-------------------------------------------------------
define('HERE',strrev(substr(strrev("http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']),strlen(strtok(strrev($_SERVER['SCRIPT_NAME']),"/"))+1)));
$p = substr("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],strlen(HERE."/general.php."));
switch ($p){
case ("codessources"):
$inclus = "pageainclure.php";
break;
}
include ($inclus);
-------------------------------------------------------
cs_Natim Messages postés 24 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 26 juin 2004
6 mai 2004 à 18:53
Moi je trouve que c un bon truc !!
La preuve c qu'il est utilisé sur php.net
Enfin !! c pas une preuve
Moi je trouve que c très pratique car on peut accerder directement à la fonction que l'on cherche.
Il n'y a qu'a faire http://www.php.net/echo ou http://www.php.net/break pour connaitre leurs utilités

Enfin !! on est tjs mal compris dans ce monde
Bravo
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
10 avril 2004 à 12:15
Je viens de tester, l'astuce de mettre les fichiers à inclure dans un dossier spécial sécurise l'inclusion. Si l'utilisateur met une url du type 'http://www.phpcs.com/auteurdetail.aspx?ID=198832', la page '404...' sera chargée (même si il enlève 'http://'), et s'il met une adresse du type '../telle_page.ext', 'telle_page.ext' sera chargée à l'adresse : 'http://www.votresite.ext/telle_page.php', de même si il ne met pas '.php', sans passer par le fichier d'inclusion ('la_page_qui_contient_tout.php'), comme s'il mettait directement 'http://www.votresite.ext/telle_page.php';
Ce système est donc assez sécurisé.

Dites-moi si vous voyez une autre faille, c'est toujours utile.

PS:tests faits sur http://www.ichthus-ados.com , qui utilise ce système.
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
10 avril 2004 à 12:01
Si tuveux, mais je ne suis pas convaincu.
Après tout, ça à l'air compliqué comme ça, mais concrètement, c'est presque rien.

Pour la 2nde problèmatique, il faut mettre 'define('HERE',strrev(substr(strrev("http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']),strlen(strtok(strrev($_SERVER['SCRIPT_NAME']),"/"))+1)));', et sur tous les lien, il faut mettre "<?= HERE ?>" au début de l'url.

Et pour la 1ere, il faut mettre juste 'inckude(substr("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_UlI'],strlen(HERE."/general.php.")));' pour avoir la page insérée.
C'est vrai qu'au niveau sécurité, c'est pas le top, mais rien ne t'empèche de mettre tous les fichiers qui doivent être inclus dans un dossier spécial, et de l'inclure par 'include("le_dossier_qui_contient_les_pages_a_inclure/".substr("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],strlen(HERE."/general.php.")).".php");' (le ".php" c'est si tu veux que l'extension n'apparraisse pas. Dans ce cas, si l'utilisateur met n'importe quoi, tu peux toujours vérifier que le fichier existe dans le répertoir, et si ce n'est pas le cas, tu inclus une page du style '404, page non trouvée...'.
Kilco Messages postés 30 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 22 septembre 2004
9 avril 2004 à 23:06
fyav rendort toi!!
c du php de base que tu nous parle là!!
le genre de codage qui sert à rien et pis les visiteurs se retrouverait sur des pages sans sommaire et des trucs comme ca!!!

Anthomicro ca crée aucune faille de sécu!! ca fait pas très joli c'est tout!!!

samiby alor tas cas utiliser des fonctions pour toutes tes pages qui te donne le graphisme du site et avec tes informations tu fait des pages différentes

ex:
function entête(){
//graphisme entête
}
function pagenorm(){
//graphisme page norm
}
function pagenormfin(){
//graphisme page normfin
}
...


page1.php
------------
entête()
pagenorm()
informations
pagenormfin()
fyav Messages postés 124 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 12 février 2010
9 avril 2004 à 22:35
pourquoi ne pas mettre dans ta page des templates en html?

style du genre: tapage.php qui contient un include(entete.php);

et dans entete.php une page en html qui a des balises du style <?mavariable>

ça serait beaucoupe plus simple !

joyeuses paques à tous
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 avril 2004 à 22:26
Vive les failles de sécurité. Inclure une page dans l'url est la pire des choses à faire !!!

a +
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
9 avril 2004 à 22:10
Sauf si ta première page est une page d'entrée.
Et puis c'est toujours mieux que _tout_ le contenu du site soit référencé, par exemple, pour un site dont tout le contenu est une mine d'information.
Kilco Messages postés 30 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 22 septembre 2004
9 avril 2004 à 22:04
Mais ca on s'en fiche!
La page d'accueil elle sera forcément un lien sans '?' donc il n'y a pas de problème avec les référenceur!
tant qu'il y a au moins une page s'en '?'! c'est dans la poche.

et les référenceur ne refuseront plus!!

ou alor jai vraiment rien compris à la vie
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
9 avril 2004 à 21:56
Bien sûr, mais il ne me semble pas que tu aie lu le début de mon explication :
"Malheureusement, ce système a l'inconvénient de ne pas plaire à certains référenceurs de sites qui n'aiment pas les '?' dans l'url, et qui, par conséquent, refuseront de référencer votre chef-d'oeuvre"

PS:
Cette info n'est pas de moi (Login n°109, article de Yann Rocq), est elle n'est pas exactement retranscrite. En fait, les réfé"renceurs refusent de suivre les liens avrec un '?', ce qui a le même résultat.
Kilco Messages postés 30 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 22 septembre 2004
9 avril 2004 à 21:45
Jvoi pas à koi ca sert ton truc!
Autant utilisé un truc du genre:
http://www.lesite.com/index.php?p=codessources

-------------------------------------------------------
switch ($p){
case ("codessources"):
$inclus = "pageainclure.php";
break;
}
include ($inclus);
-------------------------------------------------------

c'est beaucoup plus court et mieux compréhensible
Rejoignez-nous