TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : Précédente 1 2 3 ... 86 87 88 89 90 91 92 93 94 95 96 Suivante | |||||
| Auteur | Message | ||||
|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||||
| Page : Précédente 1 2 3 ... 86 87 88 89 90 91 92 93 94 95 96 Suivante | |||||
Talus
|
# Posté le 23/06/2008 à 02:50:45 | ||||
タルス![]() Groupe : Membres |
Reprise du dernier message de la page précédente :
ben... Tu captures tout ce qui est entre des < et > (c'est pas (x)HTML ca, c'est XML au passage)... Donc, par exemple,Code : PHP
Sera interpreté par ton "parseur"... |
||||
jeff52
|
# Posté le 23/06/2008 à 11:31:02 | ||||
|
PHPadawan Groupe : Membres |
Je n'en suis pas sûr ... j'ai fais quelque tests qui se sont avérés concluants sans aucun problème de conversion.
En effet, je fais un preg_replace_callback() pour le code PHP et j'utilise ensuite un simple highlight_string(,true) Les entités retournées sont donc < et > et non < et >
|
||||
Talus
|
# Posté le 23/06/2008 à 12:44:57 | ||||
タルス![]() Groupe : Membres |
Mouais, mais ca reste lourd de faire un callback pour parser d'abord que les php, etc... Puis,après, les balises créées par l PHP (les span, etc), ne sont pas interprétés non plus ?
Édité
le 23/06/2008 à 12:45:38
par Talus
|
||||
jeff52
|
# Posté le 23/06/2008 à 16:43:08 | ||||
|
PHPadawan Groupe : Membres |
Ça reste une fonction très simpliste.
Je ne sais pas si tu t'es déjà lancé dans la création d'un algorithme de coloration de code, mais c'est un véritable défi (contrairement à ce que certains pourraient croire) J'ai fais de mon mieux, et je cherche pour trouver d'autres solutions plus sûres - moins lourdes - et donc obtenir un code plus propre. Pour l'instant, j'ai pas mieux en magasin... et ça marche. Donc osef
|
||||
treize
|
# Posté le 26/06/2008 à 20:29:32 | ||||
*Brain FAILED*![]() Groupe : Membres |
( edit ) Non, en fait rien.
Secret (cliquez pour afficher) But: Créer un système d'aperçu de pages grâce aux includes. Pour ceux qui veulent un site avec une page modèle, et inclure la page voulue grâce à $_GET['page']. Code : PHP
Si les pages à inclure sont dans un fichier : Code : PHP
Exemple: Votre page modèle se nomme modele.php. Vous souhaiter inclure infos.php. Pour cela, vous faites un <a href="modele.php?page=infos">Ici</a> . Arrivé sur la page modele.php grâce au lien, la fonction se met en marche et vérifie s'il y a une variable. Oui, ?page=infos donc $_GET['page'] vaut infos. On rajoute un ".php" à la fin, soit "infos.php" et on vérifie dans le répertoire courant ./ s'il y a infos.php. Si oui, on l'inclue; sinon, on inclue index.php qui est la page par défaut (à vous de changer ).En clair : Citation : Explication Si on a $_GET['page'] et que $_GET['page'] n'est pas nul { | $_GET['page'] = Protection de $_GET['page']; | $page_get = Dossier courant + nom de la page voulue ($_GET['page']); | | Si $page_get existe dans le répertoire courant | | On inclue $page_get; | | Sinon | | On inclue la page par défaut index.php; } Sinon la variable n'existe pas | On inclue la page par défaut index.php; En espérant vous avoir aidé. J'enlève ce que j'ai posté car en plus d'être déjà abordé dans le tuto de M@téo sur cette page, le code présente des failles que Dentuk a remarqué(es ?). Je voulais simplement proposer un code qui permettrait d'inclure ses pages sans avoir besoin de rajouter une condition nouvelle. M'enfin bon.
Édité
le 27/06/2008 à 12:31:02
par treize
|
||||
Dentuk
|
# Posté le 26/06/2008 à 20:53:03 | ||||
Yamo...![]() Groupe : Membres |
Citation : treize
| $_GET['page'] = Protection de $_GET['page']; Sais-tu ce que font htmlspecialchars et mysql_real_escape_string ? Quel est le rapport avec l'utilisation que tu fais de ta variable ? :-/Citation : treize | Si $page_get existe dans le répertoire courant Qu'est-ce qui empêche de remonter via ../ etc ?
Édité
le 26/06/2008 à 20:56:32
par Dentuk
Signature en cours de révision. |
||||
Thulium
|
# Posté le 27/06/2008 à 12:11:53 | ||||
![]() Groupe : Membres |
premièrement, c'est pas une fonction, et ensuite c'est une énorme faille de sécurité a éviter absolument et je suis quasi-sur qu'on a déjà parlé de ça dans ce topic ...
et mysql_real_escape_string ne sert a rien, tu ne fait pas de requêtes sql avec ta variable.
Édité
le 27/06/2008 à 12:27:33
par Thulium
"Keyboard not found, press F1 to resume." enfant@fils-deskop:~$ sudo apt-get autoremove vie-sociale parent@pere-deskop:~$ C'est bien mon fils, tu es devenu un Geek ! ![]() ![]() |
||||
treize
|
# Posté le 27/06/2008 à 12:31:38 | ||||
*Brain FAILED*![]() Groupe : Membres |
|||||
Dentuk
|
# Posté le 27/06/2008 à 22:00:05 | ||||
Yamo...![]() Groupe : Membres |
Pour vérifier que le fichier existe dans le répertoire "includes":
Code : PHP
Édité
le 27/06/2008 à 22:02:37
par Dentuk
Signature en cours de révision. |
||||
Jeremie64
|
# Posté le 28/06/2008 à 04:46:23 | ||||
Get over it ! ![]() Groupe : Membres |
Pourquoi pas faire celà:
<?php if(!empty($_GET['page']) && file_exists('./protected/php/'.htmlspecialchars($_GET['page']).'.php') ?> Coding is more than a job, more than hobby, more than activity, it's a lifestyle ! PHP is a powerful programming language, if you know how to use it... |
||||
Dentuk
|
# Posté le 28/06/2008 à 11:43:33 | ||||
Yamo...![]() Groupe : Membres |
Parce que htmlspecialchars n'a rien à voir et n'empêche pas de remonter dans l'arborescence via ../.
Signature en cours de révision. |
||||
Thulium
|
# Posté le 28/06/2008 à 16:21:28 | ||||
![]() Groupe : Membres |
tu peux très bien faire ./protected/php/../../../page_avec_tout_les_mots_de_passe.php ...
"Keyboard not found, press F1 to resume." enfant@fils-deskop:~$ sudo apt-get autoremove vie-sociale parent@pere-deskop:~$ C'est bien mon fils, tu es devenu un Geek ! ![]() ![]() |
||||
treize
|
# Posté le 28/06/2008 à 16:29:55 | ||||
*Brain FAILED*![]() Groupe : Membres |
Si on recherche dans $_GET['page'] qu'il n'y a pas de ../ (une URL avec ../, c'est rare..).
|
||||
Asibasth
|
# Posté le 28/06/2008 à 16:39:29 | ||||
Mangeur de Lapins Crus![]() ![]() |
Code : PHP
Utilisé sur : http://outils.asibasth.com/ Si vous voulez tester, comme ça a été codé vite fait, si isPathValid renvoit false, je fais direct un trigger_error()
|
||||
Savageman
|
# Posté le 28/06/2008 à 17:57:10 | ||||
Insa : If inside![]() Groupe : Membres |
|||||
anonyme
|
# Posté le 28/06/2008 à 17:59:43 | ||||
|
Groupe : |
Citation : Savageman
Pas bon Asibath. On peut aussi faire ./../etc Ca sera vu par un strpos() ça. Par contre on pourrait réécrire cette fonction plus joliment. |
||||
Thulium
|
# Posté le 28/06/2008 à 18:12:41 | ||||
![]() Groupe : Membres |
on peut se passer de se système, m@théo dit que la méthode "brutal" comme il dit n'est pas pratique pour changer de design:
Code : PHP
si on change debut.php et fin.php, on peut aisément changer de design ! "Keyboard not found, press F1 to resume." enfant@fils-deskop:~$ sudo apt-get autoremove vie-sociale parent@pere-deskop:~$ C'est bien mon fils, tu es devenu un Geek ! ![]() ![]() |
||||
Asibasth
|
# Posté le 28/06/2008 à 18:20:06 | ||||
Mangeur de Lapins Crus![]() ![]() |
Nan mais chacun ses besoins Thulium, en ce qui me concerne c'est un listing de fichiers, je me vois mal hard-coder chacun des paths de mon FTP.
@Savageman : Non on ne peut pas faire ./../ Et faire ./ est absolument inutile, vu que ça ramène au répertoire courant. Citation : `Haku Par contre on pourrait réécrire cette fonction plus joliment. Code : PHP
Comme ça ? C'est peut être plus court, mais je trouve ça moins clair, j'essaie d'avoir une constance au niveau de la structure de mes fonctions, j'élimine d'abord toute erreur possible avant de renvoyer le 'vrai' résultat. Un peu comme on vérifierait les pointeurs en début de fonction C/C++.
Édité
le 28/06/2008 à 18:24:00
par Asibasth
|
||||
Jeremie64
|
# Posté le 28/06/2008 à 18:57:52 | ||||
Get over it ! ![]() Groupe : Membres |
Citation : Dentuk
Parce que htmlspecialchars n'a rien à voir et n'empêche pas de remonter dans l'arborescence via ../. Le htmlspecialchars, c'est pas pour les ../ que je l'ai mis. Mais bon, c'est donc pas sécure, ok je vais changer ma technique ![]() Bye Coding is more than a job, more than hobby, more than activity, it's a lifestyle ! PHP is a powerful programming language, if you know how to use it... |
||||
anonyme
|
# Posté le 28/06/2008 à 19:08:07 | ||||
|
Groupe : |
Citation : Asibasth
Comme ça ? Non, comme ça même si ça revient au même : Code : PHP
Le strpos() n'a à mes yeux rien à voir avec la vérification de la validité d'un pointeur en c. Vérifier que le chemin est licite fait partie de la procédure permettant de valider ou pas le chemin, ce n'est donc pas un prémice comme l'est la vérification de la validité des pointeurs en c. |
||||
TheBidi
|
# Posté le 28/06/2008 à 20:00:27 | ||||
|
HowTo... Groupe : Membres |
Citation : JeromeJ
Citation : Dentuk array_map a été faite pour pouvoir être utilisée avec des fonctions utilisateur : pour moi c'est beaucoup plus clair et simple de faire ça (par exemple): Pas mal =) J'y avais pas pensé... mais ça oblige à créer des fonctions utilisateurs... ma solution non =oCode : PHP
Un coup de create_function et c'est plus la peine de créer une fonction utilisateur exprès pour une utilisation ![]() Code : PHP
Édité
le 28/06/2008 à 20:00:56
par TheBidi
xDoc, moteur de documentations en XML : [ |||||||||||||||||||| ] 30% (Centrale de bugs @ 40%) Re-rédaction de la doc' xTPL : [ |||||||||||||||||||| ] 70% Pensez au zCode quand vous donnez du code source ; et aux <?php 'tags PHP' ?>
pour le colorer. Ne donnez que le code nécessaire (et pas le index.php de 800 lignes) |
||||
Jeremie64
|
# Posté le 28/06/2008 à 20:02:24 | ||||
Get over it ! ![]() Groupe : Membres |
Ceci est plus sécurisé ?
Code : PHP
Coding is more than a job, more than hobby, more than activity, it's a lifestyle ! PHP is a powerful programming language, if you know how to use it... |
||||
Talus
|
# Posté le 28/06/2008 à 21:07:11 | ||||
タルス![]() Groupe : Membres |
Pourquoi utiliser stropos, au juste ? :-°. Surtout que NON, ce n'est pas plus sécurisé !
realpath('protected/php') (admettons que ce soit /var/www/machin/protected/php) est contenu dans realpath('protected/php/../../../pass.txt') ! Suffit de faire une bete comparaison... |
||||
Jeremie64
|
# Posté le 29/06/2008 à 01:01:06 | ||||
Get over it ! ![]() Groupe : Membres |
Non justement, ça fonctionnera pas, car regarde ceci:
F:\www\--Site--\protected\php est le répertoire de base. Regarde le répertoire d'include pour le fichier, que donnera ceci: (../../../pass.txt) -> $pageInclude = realpath(dirname('protected/php/'.$page.'.php')); -> F:\www Ceci retournera false et le fichier ne sera pas inclu. Si on regarde, on peut pas allez plus haut que: F:\www\--Site--\protected\php. Et strpos, ben, ça trouve des caractères dans une chaîne, dans ce cas, c'est le répertoire minimal pour pouvoir inclure. Bye Coding is more than a job, more than hobby, more than activity, it's a lifestyle ! PHP is a powerful programming language, if you know how to use it... |
||||
Psykose
|
# Posté le 30/06/2008 à 01:15:44 | ||||
Carambaaa(r) !![]() Groupe : Membres |
Je ne ferai pas avancer le débat mais posterai tout simplement une fonction (je suis lâche hein
).Elle permet tout simplement de mélanger les mots d'une phrase ... Code : PHP
Édité
le 30/06/2008 à 01:16:19
par Psykose
Mes tutos préférés : Apprenez le Javascript - Dominos animables (blender) - Apprenez Maya Mes tutos : Créer une tête Cartoon avec Blender Psykose's JukeboX : I - II - III - IV - V - Now extended ! - VI - VII - VIII |
||||
anonyme
|
# Posté le 30/06/2008 à 01:17:36 | ||||
|
Groupe : |
Ca fonctionne ton truc ? Parce que si je me souviens shuffle() ne retourne pas le tableau mais un booléen.
Et au lieu de ton foreach(), il y a implode(). |
||||
Psykose
|
# Posté le 30/06/2008 à 01:28:20 | ||||
Carambaaa(r) !![]() Groupe : Membres |
Théoriquement non
Doc Php - Shuffle Pour implode c'est tout con j'y avais même pas pensé ...ce qui noud onne donc : Code : PHP
Mes tutos préférés : Apprenez le Javascript - Dominos animables (blender) - Apprenez Maya Mes tutos : Créer une tête Cartoon avec Blender Psykose's JukeboX : I - II - III - IV - V - Now extended ! - VI - VII - VIII |
||||
Bilbax
|
# Posté le 30/06/2008 à 01:31:24 | ||||
www.bilbax.eu![]() Groupe : Membres |
Les espaces ne sont pas restaurés
.Code : PHP
|
||||
Psykose
|
# Posté le 30/06/2008 à 01:34:11 | ||||
Carambaaa(r) !![]() Groupe : Membres |
Merci Bilbax
En plus j'ai oublié un paramètre à implode() bon eh bien je réflichérai a deux fois avant de remettre une fonction ici xD Mes tutos préférés : Apprenez le Javascript - Dominos animables (blender) - Apprenez Maya Mes tutos : Créer une tête Cartoon avec Blender Psykose's JukeboX : I - II - III - IV - V - Now extended ! - VI - VII - VIII |
||||
Thulium
|
# Posté le 30/06/2008 à 01:37:16 | ||||
![]() Groupe : Membres |
Si, shuffle renvoi un booléen, et modifie directement le tableau passé en paramètre (bool shuffle ( array &$array )
"Keyboard not found, press F1 to resume." enfant@fils-deskop:~$ sudo apt-get autoremove vie-sociale parent@pere-deskop:~$ C'est bien mon fils, tu es devenu un Geek ! ![]() ![]() |
||||
Psykose
|
# Posté le 30/06/2008 à 01:40:20 | ||||
Carambaaa(r) !![]() Groupe : Membres |
Si tu vas voir dans les fonctions concernant les arrays elles renvoient pratiquement pour la plupart un Booléen
Mes tutos préférés : Apprenez le Javascript - Dominos animables (blender) - Apprenez Maya Mes tutos : Créer une tête Cartoon avec Blender Psykose's JukeboX : I - II - III - IV - V - Now extended ! - VI - VII - VIII |
||||
Retour au forum "PHP" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
211 Zéros connectés |
7 requêtes |
0.1391s (0.1212s)
