2013-07-05 64 views
0

這是我的第一篇文章。我搜查了很多,但我找不到我在找什麼。所以我有這個文件,它打破後的內容和已讀更多:我想輸出從後我怎樣才能從一個頁面的數組ID到另一個重定向頁面

<?php 

include('../root/admin/includes/connect.php'); 
$sql = "SELECT * FROM posts"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_array($result)) { 
    echo "\n"; 
    echo truncate($row['Content'], "article.php", "article_id", $row['ID']); 
} 

//function to truncate text and show read more link 
function truncate($mytext, $link, $var, $id) { 
    //Number of characters to show 
    $chars = 25; 
    $mytext = substr($mytext, 0, $chars); 
    $mytext = substr($mytext, 0, strrpos($mytext, ' ')); 
    $mytext = $mytext . " <a href='$link?$var=$id'>read more...</a>"; 
    return $mytext; 
} 

?> 

現在我有這個文件

<?php 

include('includes/connect.php'); 
$id = isset($_GET['ID']); 
$query = mysql_query("SELECT * FROM posts WHERE ID='$id'") or die(mysql_error()); 
if (mysql_num_rows($query) == 0) { 
    echo "<tr><td colspan=\"3\">No Posts Were Found</td></tr>"; 
} else { 
    while ($post = mysql_fetch_assoc($query)) { 
     echo "<div class='perigrama'><div class='titlos'><h2><a href='#'>" . $post['Title'] . "</a></h2></div><div class='infos'><p>Posted by <a href='#'>" . $post['Author'] . "</a> on March 10, 2011 | <a href='#'>Full article</a></p></div><div class='image'><img src='#' width='540' height='300'></div><div class='content'><p>" . $post['Content'] . "</p></div><div class='more'><p><a href='#'>Full details</a></p></div></div>"; 
    } 
} 
?> 

而這個文件數據庫基於ID在這裏,當我點擊閱讀更多:

<html> 
    <head> 
     <title></title> 
    </head> 
    <link rel="stylesheet" type="text/css" href="../test/testdivformascss.css"> 
    <body> 
     <?php 
     include('functions1.php'); 
     ?> 
    </body> 
</html> 

,我有這樣的時候,我打讀取輸出更重定向我正確的頁面ID,但是他說我沒有帖裏發現的。

如果你能告訴我一個如何做到這一點的方法,我會很高興看到它。提前致謝!

+1

你聽說過SQL注入嗎?閱讀它。 – Robert

+1

您應該使用mysqli_函數或PDO代替使用mysql_函數。除此之外,'$ link'變量的內容是什麼? – Naryl

回答

2

變化

$id=isset($_GET['ID']); 

$id=isset($_GET['article_id']) ? (int)$_GET['article_id'] : 0; 

$id = isset($_GET['ID']); - 這將返回布爾,而且它會始終爲false,因爲在$_GET

沒有ID您的鏈接看起來像$mytext = $mytext . " <a href='$link?$var=$id'>read more...</a>";

它被解析通過截斷功能,輸出

<a href='article.php?article_id=SOME_ID'>read more...</a>

所以你應該使用上$_GET['article_id']得到這個ID,你應該投它由(INT)或intval()

兩兩件事爲int。

  1. 你的代碼是很危險的,你應該認真閱讀和谷歌的一些主題,涵蓋SQL_INJECTION

  2. Mysql_ *功能depracated,並會在將來被移除。代替使用PDOMysqli。這些引擎有一些叫做準備語句的東西,並且用參數綁定你不需要照顧正確的轉義。

+0

謝謝我的朋友,它的工作...我知道有很多問題,是危險的...我這樣做只用於測試。我只有2個月,我學習PHP和MySQL,並因此是如此危險:P我當然必須嘗試mysqli或PDO ...只讀基本的事情和理解的MySQL。感謝提示:) –

相關問題