fopen mais seulement d'un fichier du répertoire
le 13/09/2004 à 22:01
i M@N
Hello !
J'arrive pas à faire en sorte que ce code :
<? if (isset($_GET['source'])) $source = $_GET["source"]); else $source = "";
$fp = fopen ("$source","r");
$texte_complet = fread ($fp, filesize("$source"));
$tableau = preg_split ("/(?=\n)/", $texte_complet);
$nb_lignes = count ($tableau)-1;
$i = 0;
for ($i=0; $i<=$nb_lignes; $i++) {
if ($i != $nb_lignes) {
echo $tableau[$i].'<br>';
}
else {
echo $tableau[$i];
}
}
?>
ne lise le fichier appelé en $_GET que si il se trouve dans le répertoire du script.
Help please ...
@+...
One Love, One Heart, One Unity.
Pour mettre les lignes dans un tableau , utilise file() ...
Pour ton probleme , je vois pas trop ce que tu veux faire , si ce n'est tester deja l'existence du fichier dans le repertoire avant de lancer le code...
zebdinou pour les intimes / Blog : http://www.zebden.fr
le 14/09/2004 à 21:33
i M@N
Hello !
En fait après avoir cherché sur le net j'ai finalement trouvé ... tout seul !
$source = str_replace('../','http://www.all-hackerz-fi-dead.net/',$source);
$source = str_replace('./','http://www.all-hackerz-fi-dead.net/',$source);
Et le code complet :
<? if (isset($_GET['source'])) $source = ereg_replace('<[":]>','',$_GET["source"]); else $source = "";
$source = str_replace('../','http://www.all-hackerz-fi-dead.net/',$source);
$source = str_replace('./','http://www.all-hackerz-fi-dead.net/',$source);
$fp = @fopen ("$source","r");
$texte_complet = @fread ($fp, @filesize("$source"));
$tableau = preg_split ("/(?=\n)/", $texte_complet);
$nb_lignes = count ($tableau)-1;
$i = 0;
for ($i=0; $i<=$nb_lignes; $i++) {
if ($i != $nb_lignes) {
echo $tableau[$i].'<br>';
}
else {
echo $tableau[$i];
}
}
?>
Le problème c'était que comme ce code est destiné à lire le contenu d'un fichier dont le nom est passé par l'url, si dans l'url on tapait ...source=../index.php bah on pouvait voir le contenu du fichier index.php et n'importe quel autre fichier du site ... vous voyez le souci.
Je poste donc ma solution ici, si quelqu'un en a une meilleure ...
FAîTES TRES ATTENTiON A CE GENRE DE FAiLLES !!
@+...
One Love, One Heart, One Unity.
le 16/09/2004 à 13:39
bibi
bah tu fais
$source = $_GET['source'];
$extension = explode(".",$source);
$ext = array_pop($extension);
apres tu fais un tableau des extension ke tu veux interdire a l'affichage
$interdit = array("php","ini","inf");
et tu fais:
if(in_array($ext,$interdit))
{
echo "cokinou regarde pas ca c pour les grands";
}
enfin c kom ca ke j'ai fait pour mo nscript et ca marche po mal
commit suicide
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: