2013-02-22 42 views
5

Tôi đã kiểm tra php.net và đọc một vài ví dụ về cách hoạt động của urlencode() nhưng bằng cách nào đó tôi không thể làm đúng. Ai đó có thể cho tôi một tay không?cách sử dụng urlencode() trong ví dụ của tôi?

nó sẽ là rất nhiều ví dụ để hy vọng ví dụ ngắn gọn của tôi sẽ có ý nghĩa.

Tôi có một trang có tên là 2.php và nó được gọi để hiển thị một số nội dung của tệp .txt được chọn trong 1.php.

Tôi nói để tạo ra một liên kết cho 3.php và liên kết sẽ giống như /3?filename=a.txt với tên tập tin như GET tên tham số và Đảm bảo GET giá trị tham số là urlencoded sử dụng urlencode() chức năng.

nhưng tôi nhầm lẫn cách thức và nơi tôi nên đặt urlencode() để làm cho nó hoạt động.

tôi sẽ dán mã 2.php của tôi ở đây ... Tôi đơn giản hóa các mã một chút ...

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

NHƯNG ... tùy chọn 3.php phải có một chuỗi truy vấn nối thêm vào nó: tên của tệp văn bản đã được chọn trong 1, do đó thay vì ./3.php, url phải là một cái gì đó như ./3?filename=asdf.txt

Sử dụng "tên tệp" làm tên thông số GET. Đảm bảo giá trị tham số GET được mã hóa url bằng cách sử dụng hàm urlencode().

nhưng tôi chỉ không chắc chắn làm thế nào để có được nó để làm việc ....

+0

dán mã cho bạn. –

+0

Lưu ý rằng hệ thống này có thể dễ bị tấn công từ xa, nếu không được xử lý đúng cách –

+0

dán .... nhưng loại đơn giản hóa nó một chút để không có quá nhiều để đọc nhưng hy vọng vẫn có thể hiểu được – Dora

Trả lời

4

Bạn có thể quấn phần mà nên url mã hóa trong các chức năng trong chuỗi:

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

OR in html 

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

đâu . là kết nối của 2 đầu ra.

+0

nhưng làm thế nào về tìm kiếm $? những gì nên được mặc dù? như đầu ra là gì? và oh chúng ta được phép đặt echo trong liên kết? (Xin lỗi tôi hoàn toàn mới với php. Vẫn đang học) – Dora

+0

Tôi nghĩ tôi bắt đầu nhận được nó. nhưng nếu tôi làm theo cách này ... $ url = "./3.php?filename=". urlencode ($ _ GET ["aaa"]. ".txt"); Tôi đã tính nếu tôi sử dụng $ _GET ["filename"] sẽ cho tôi kết quả tương tự như $ _GET ["aaa"]. Đây có phải là một trong những kết quả tốt cho việc sử dụng urlencode không? Bởi vì nếu tôi chỉ sử dụng $ _GET ["aaa"] trong 3.php giá trị không thể tìm thấy vì nó không được liên kết nhưng với sự trợ giúp của "./3.php?filename=". urlencode ($ _ GET ["aaa"]. ".txt"); Tôi có thể thực hiện tham số $ _GET ["aaa"] thành 3.php – Dora

Các vấn đề liên quan