2011-10-12 55 views
-2

我有問題通過url參數傳遞值到其他頁面。我想通過單擊拒絕按鈕拒絕基於選定的預訂ID的預訂。但bookingID值不會傳遞到其他頁面,網址出現這樣http://localhost/tablesortapprovebook/approve_booking.php?bookingID=傳遞給其他php頁面的PHP url參數

這裏是我的編碼片段:

的index.php

<head> 
<script src="jquery-latest.js" type="text/javascript"></script> 
<script src="jquery.tablesorter.js" type="text/javascript"></script> 
<script> 
$(document).ready(function() { 
$("#myTable").tablesorter({widgets: ['zebra']}); 
}); 

$(document).ready(function() 
{ 
    $("#myTable").tablesorter(); 
} 
); 

$(document).ready(function() 
{ 
    $("#myTable").tablesorter({sortList: [[0,0], [1,0]]}); 
} 
); 
</script> 
<link href="style.css" rel="stylesheet" type="text/css"> 
<link href="stylelogin.css" rel="stylesheet" type="text/css"> 
</head> 
<body> 

<?php 

include("dbconfig.php"); 

$query = "SELECT customer.companyName, customer.contactName, eventinfo.eventTitle,boothAlias,date, testbook.bstatus, testbook.username, bookingID from eventinfo, testbook, customer where testbook.username=customer.username AND testbook.eventID=eventinfo.eventID"; 

$o = '<table id="myTable" class="tablesorter" width="930px"><thead><tr><th>Company Name</th><th>Contact Name</th><th>Event</th><th>Booth</th><th>Date</th><th>Status</th></tr></thead><tbody>'; 



$result = mysql_query($query); 
     while($row=mysql_fetch_array($result)) 
     { 
     $boothAlias=stripslashes($row["boothAlias"]); 
     $eventTitle=stripslashes($row["eventTitle"]); 
     $date=stripslashes($row["date"]); 
     $bstatus=stripslashes($row["bstatus"]); 
     $companyName=stripslashes($row["companyName"]); 
     $contactName=stripslashes($row["contactName"]); 
     $bookingID=stripslashes($row["bookingID"]); 


if($bstatus==0){ 
    $status="Pending"; 
}else if($bstatus==1){ 
    $status="Successful"; 
}else{ 
    $status="Reject"; 
} 


$o .= '<tr><td width="120px">'.$companyName.'</td><td width="120px">'.$contactName.'</td><td width="180px">'.$eventTitle. 
'</td><td width="70px">'.$boothAlias.'</td><td width="170px">'.$date.'</td><td width="70">'.$status.'</td><td>'.$bookingID.' 
</td><td width="100"><input type="hidden" name="bookingID" value="<?php echo $bookingID; ?>" ><a href="approve_booking.php?bookingID=".$bookingID. 
" name="REJECT" id="REJECT"><input width="100px" name="REJECT" type="submit" id="REJECT" value="Reject"></a></td></tr>'; 
} 

$o .= '</tbody></table>'; 

echo $o; 
?> 

</body> 

approve_booking.php

<?php 

mysql_connect("localhost", "root", "") or die (mysql_error()); 
mysql_select_db("eventdb") or die (mysql_error()); 

$booking=$_GET['bookingID']; 
echo $booking; 

if(isset($_POST['APPROVED'])) 
    { 

     $query2 = "UPDATE testbook SET bstatus ='0' WHERE bookingID='$booking'"; 
      $result2 = @mysql_query($query2); 
    } 


if (isset($_POST['REJECT'])) 
    { 
     $query3 = "UPDATE testbook SET bstatus ='2' WHERE bookingID='$booking'"; 
      $result3 = @mysql_query($query3); 

    } 



?> 
+0

問題是? – matino

+0

問題是丟失:) –

+0

1)當心SQL注入2)刪除錯誤抑制器,尤其是在開發環境3)如何傳遞查詢字符串?我只看到一個破損/不完整的表格。如果它使用GET方法,則2個POST生成在哪裏? 4)是的,你的問題實際上是什麼? –

回答

0

我真的不知道你的問題是什麼,但試試$ _REQUEST ['....']而不是$ _GET ['...']。

順便問一下,你有一個SQL注入漏洞:

$booking=$_GET['bookingID']; 

替換有:

$booking=mysql_escape_string($_GET['bookingID']); 
0

有很多無效的語言用法在這裏。您的具體問題:

'</td><td width="100"><input type="hidden" name="bookingID" 
    value="<?php echo $bookingID; ?>" > 
<a href="approve_booking.php?bookingID=".$bookingID." name="REJECT"' 

您在'單引號'環境,並且".$bookingID."因此將無法正常工作。實際上,不正確的雙引號只是終止了HTML屬性。

上面的<?php echo...也不會在一個字符串內工作(無論是單引號還是雙引號)。