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....
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 clairOriginalL'auteur Dora | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envelopper la partie qui doit être encodée url dans la fonction au sein de la chaîne:
Où
.
est la concaténation de 2 sorties.Je pense que je commence à obtenir. mais si je le fais de cette façon...$url = "./3.le php?filename=" . urlencode($_GET["aaa"] . ".txt"); j'ai pensé que si j'utilise $_GET["nom"] me donnera le même résultat que $_GET["aaa"]. Est-ce aussi un bon résultat pour l'utilisation de la fonction urlencode? Parce que si je viens d'utiliser $_GET["aaa"] 3.php la valeur ne peut pas être trouvé, car il n'est pas lié, mais avec l'aide de "./3.le php?filename=" . urlencode($_GET["aaa"] . ".txt"); je peux le porter sur le paramètre $_GET [aaa] dans 3.php
OriginalL'auteur Emery King