fopen mais seulement d'un fichier du répertoire

Répondre
i M@N
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.
zebden
le 13/09/2004 à 23:02
zebden
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
i M@N
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. smiley
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.
bibi
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
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours