2013-02-22 22 views
5

Sprawdziłem php.net i przeczytałem kilka przykładów, jak działa urlencode(), ale jakoś po prostu nie mogę tego naprawić. Czy ktoś może mi pomóc?jak korzystać z urlencode() w moim przykładzie?

To będzie dużo do zrobienia, więc mam nadzieję, że mój krótki przykład miałby sens.

Mam stronę o nazwie 2.php i została ona wywołana, aby pokazać zawartość pliku .txt wybranego w 1.php.

Powiedziano mi, aby link do 3.php a link powinien wyglądać mniej więcej tak /3?filename=a.txt z pliku jako GET nazwy parametru i zapewnić GET wartość parametru jest urlencoded użyciu funkcji urlencode().

ale jestem zdezorientowany, jak i gdzie powinienem umieścić urlencode(), aby działał.

będę wkleić mój kod 2.php tutaj ... I uproszczone kody nieco ...

<?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>"; 
?> 

ale ... opcja 3.php musi mieć ciąg kwerendy dołączoną do niego: the nazwa pliku tekstowego, który został wybrany w 1, więc zamiast ./3.php, adres URL powinien być taki, jak ./3? nazwa_pliku=asdf.txt

Użyj "filename" jako nazwy parametru GET. Upewnij się, że wartość parametru GET jest zakodowana za pomocą funkcji urlencode().

ale ja po prostu nie wiem, jak zmusić go do pracy ....

+0

Wklej swój kod. –

+0

Należy zauważyć, że ten system może być podatny na zdalne włączanie plików, jeśli nie jest obsługiwany prawidłowo –

+0

wklejony ... ale trochę go uprościł, więc nie ma za dużo do czytania, ale mam nadzieję, że nadal rozumiem, że odczytywanie nazw plików za pomocą kodu – Dora

Odpowiedz

4

Można owinąć część, która powinna być url zakodowany w funkcji w ciągu:

$url = 'http://www.google.com?q=' . urlencode($search); 

OR in html 

http://www.google.com?q=<?php echo urlencode($search); ?> 

Gdzie . to konkatenacja 2 wyjść.

+0

, ale co powiesz na $ search? co to jednak powinno być? jak to jest wyjście? i czy możemy wstawić echo w łączu? (Przepraszam, jestem całkowicie nowy w php.) Nadal się uczę) – Dora

+0

Myślę, że zaczynam to rozumieć. ale jeśli zrobię to w ten sposób ... $ url = "./3.php?filename=". urlencode ($ _ GET ["aaa"]. ".txt"); Pomyślałem, że jeśli użyję $ _GET ["filename"] da mi ten sam wynik co $ _GET ["aaa"]. Czy jest to również jeden z dobrych wyników używania urlencode? Ponieważ jeśli użyję $ _GET ["aaa"] w 3.php, nie można znaleźć wartości, ponieważ nie jest ona połączona, ale z pomocą "./3.php?filename=". urlencode ($ _ GET ["aaa"]. ".txt"); Mogę przenieść parametr $ _GET ["aaa"] do 3.php – Dora