我是一個嘗試爲使用數據庫的圖庫處理PHP腳本的新手。我最近更改了腳本和數據庫,以便圖庫將基於'photo_caption運行。畫廊的作品,但如果數據庫包含引號(例如標題自然的花園和顏色)腳本只是拉引用前的部分(所以這裏只是自然這個詞,而不是整個標題自然的花園和顏色),從而打破了鏈接。現在鏈接結構是這樣/viewgallery.php?cname=Colorado%20Journies&pcaption=Nature'sGardenAndColors
,但由於它顯示的問題/viewgallery.php?cname=Colorado%20Journies&pcaption=Nature
帶引號引起錯誤的URL
有沒有什麼解決方法這個問題?我怎樣才能讓$ _GET語句拉動包含引號的完整photo_caption?感謝您的幫助......
我現在用這個代碼來獲取photocaption的鏈接
$pcaption = isset($_GET['pcaption']) ? ($_GET['pcaption']) : 0;
如果($ pcaption) {
$result = mysql_query("SELECT photo_caption, photo_description, photo_filename,photo_keywords FROM gallery_photos WHERE photo_caption='".addslashes($pcaption)."'");
list($photo_caption, $photo_description, $photo_filename, $photo_keywords) = mysql_fetch_array($result);
$nr = mysql_num_rows($result);
mysql_free_result($result);
$p_caption = $photo_caption;
$p_description = $photo_description;
$p_keywords = $photo_keywords;
//fill pid_array with sorted pids in current category
$result = mysql_query("SELECT photo_caption FROM gallery_photos WHERE category_name='".addslashes($cname)."' ORDER BY photo_caption");
$ct = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
$pid_array[] = $row[0];
}
mysql_free_result($result);
if(empty($nr))
{
print "%%%%NR is $nr";
$result_final = "\t<tr><td>***No Photo found</td></tr>\n";
}
else
{
$result = mysql_query("SELECT category_name FROM gallery_category WHERE category_name='".addslashes($cname)."'");
list($category_name) = mysql_fetch_array($result);
mysql_free_result($result);
$result_final = "
<div class=limagePage>
<div class=llink><a href='viewgallery.php'>ALBUMS</a><span class=arrow>>></span><a href='viewgallery.php?cname=$cname>$category_name'</a></div>
";
// display previous and next links if more than one photo
if ($ct > 1)
{
$key = array_search($pcaption , $pid_array);
$prev = $key - 1;
if ($prev < 0) $prev = $ct - 1;
$next = $key + 1;
if ($next == $ct) $next = 0;
//$cname = str_replace(" ","_",$cname);
//$pcaption=str_replace(" ","_",$pcaption);
$result_final .= "<div class='prevnext'>";
$result_final .= "<span class='prev'><a href='viewgallery.php?cname=$cname&pcaption=".$pid_array[$next]."'><img src='photos/assets/left.png' border='0' ></a></span>";
$result_final .= "<span class='next'><a href='viewgallery.php?cname=$cname&pcaption=".$pid_array[$prev]."'><img src='photos/assets/right.png' border='0' ></a></span>";
$result_final .= "</div>";
}
}
//$cname = str_replace(" ","_",$cname);
//$pcaption=str_replace(" ","_",$pcaption);
$result_final .= "<div class=limage><table><tr><td><table class=image><tr>\n\t<td><a href='viewgallery.php?cname=$cname&pcaption=".$pid_array[$next]."'><img src='".$images_dir."/".$photo_filename."' border='0' alt='".$photo_keywords."' /></a>
<div class=caption>".$photo_caption."</div>
<div class='excerpt'>".$photo_description."</div>
</td>
</tr></table></td></tr></table><div class=underline></div></div>
<!-- .limagePage --></div> ";
我知道它不整潔,但也許只是用'%27'替換所有'''? – vladkras