2016-04-25 79 views
-4

這是我迄今爲止所做的,但未分配$ _GET ['c_id'](URL看起來像這樣)http://localhost/srs_stuff.php?c_id= 結果肯定存儲在$ r因爲c_name變量通常顯示爲我想要的名字可點擊的鏈接。

foreach ($results as $r) { 
    echo "<a href='srs_stuff.php?c_id='" . $r['c_id'] . ">" . $r['c_name'] . "</a></br>"; 
} 

更好的解決方案是,該C_ID將在SESSION變量被設置,重定向到新的頁面之前,這可能嗎?

回答

0

在分配值之前,您正在關閉href屬性。

更正代碼:

<?php 
$r['c_id'] = 234; 
$r['c_name'] = 'Developer'; 
echo "<a href='srs_stuff.php?c_id=" . $r['c_id'] . "'>" . $r['c_name'] . "</a></br>"; 
?> 

HTML輸出產生(源代碼):

<a href='srs_stuff.php?c_id=234'>Developer</a></br> 
1
<a href='srs_stuff.php?c_id='" . $r['c_id'] 

HTML屬性值可通過"'分隔。您正在使用'

您的href值以srs_開頭並繼續,直到下一個'

下一個'在這裏id='之前 $ r ['c_id']的值。

把你的屬性分隔符放在正確的地方(並使用HTML validator,這會挑起這樣的錯誤)。


更好的是,不要通過將字符串混合在一起生成URL,然後通過將更多字符串聚合在一起來生成HTML。

<?php 
    $query_string = http_build_query(c_id => $r['c_id']); 
    $url = "srs_stuff.php?" . $query_string; 
    $html_safe_url = htmlspecialchars($url); 
    $html_safe_name = htmlspecialchars($r['c_name']); 
?> 
    <a href="<?php echo $html_safe_url; ?>"> 
     <?php echo $html_safe_name; ?> 
    </a> 
    <br>