comment utiliser la fonction urlencode( ) dans mon exemple?

J'ai vérifié php.net et de lire quelques-uns des exemples de la façon dont urlencode( ) œuvres mais de toute façon je ne peux tout simplement pas l'obtenir. Quelqu'un peut-il me donner un coup de main?

il va être beaucoup à l'exemple donc j'espère que mon exemple n'aurait un sens.

J'ai une page appelée 2.php et il a été appelé à montrer une certaine contenu d'un .txt fichier choisi en 1.php.

Je me suis dit de faire un lien pour 3.php et le lien devrait ressembler à quelque chose comme /3?filename=a.txt
avec le nom de fichier comme GET nom du paramètre et de s'Assurer GET valeur du paramètre est urlencoded à l'aide de la urlencode( ) fonction.

mais je suis confus comment et où je devrais mettre urlencode() pour le faire fonctionner.

Je vais coller mon 2.php code ici...j'ai simplifié les codes un peu...

<?php

$fileContents = file("./aaa/" . $_GET["course"] . ".txt");

echo "<table border=\"1\">";

foreach($fileContents as $row)
{
    echo "<tr>";
    $contents = preg_split("/,/", $row);

    foreach($contents as $eachline)
    {
        echo "<td>";
        if(!(preg_match("/@/", $eachline)))
        {
        echo trim(ucfirst($eachline));
        }
        else
        {
        echo trim(strtolower($eachline));
        }
        echo "</td>";
    }
    echo "</tr>";
}

    echo "</table>";

    echo "<a href='./1.php'>Choose another txt file</a><br/>";
    echo "or<br/>";
    echo "<a href='.3.php?'>Work with this txt file</a>";
?>

MAIS...3.php l'option doit avoir une chaîne de requête jointe: le nom du fichier texte qui a été sélectionné en 1, donc au lieu de ./3.php, l'url devrait être quelque chose comme ./3?filename=asdf.txt

Utiliser “nom de fichier”, comme le paramètre GET nom. Assurer le OBTENIR la valeur de paramètre est urlencoded à l'aide de la fonction urlencode ().

mais je ne suis pas sûr de savoir comment le faire fonctionner....

collez code.
Notez que ce système pourrait être vulnérable à l'Inclusion de Fichier, si ce n'est pas manipulé correctement
collé....mais un peu simplifié un peu donc il n'y a pas trop de choses à lire, mais j'espère toujours en mesure de comprendre
être conscient que la lecture des noms de fichier avec php peut être un problème de sécurité. pensez à l'exemple suivant: /3?filename=.htpasswd ou /3?filename=../../etc/passwd ou /3?filename=../any.php Dans tous les cas, vous pouvez lire arbitraire de l'information d'un utilisateur ne devrait pas être en mesure de voir. J'espère que j'ai fait cet exemple assez clair

OriginalL'auteur Dora | 2013-02-22