2014-02-07 30 views
-1

我有一個頁面,當單擊一個鏈接(它必須保持鏈接,沒有JavaScript)時,被重定向到一個PHP腳本以執行接近即時的操作,並且然後發回到前一頁。停止頁面從重定向後在歷史記憶中

問題是,當用戶單擊後退按鈕時,頁面會返回到執行腳本前已加載的頁面,並且用戶必須點擊後退按鈕兩次,才能返回到發送頁面。

有什麼辦法可以阻止它嗎?這不是一個不錯的用戶體驗,必須點擊後退箭頭兩次,並且必須有一個(相對容易的)方法來阻止這種情況的發生。

任何幫助表示讚賞。

這是網址的網站 http://pla-za.tk/php-login/like.php

這是product_details.php代碼

<?php 

////////////////database connection/////////////////////////////////////////// 
$con=mysqli_connect("*******","********","******","*********"); 
////////////////////////////////////////////////////////////////////////////// 

$id=$_GET["id"]; 

$query=mysqli_query($con,"SELECT ilike FROM mothar WHERE product_id like $id"); 
if(mysqli_num_rows($query)>0){ 
    $like_img="unlike.png"; 
} 
else{ 
    $like_img ="like.png"; 
} 

///////////////////////////////like query////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////// 
$query=mysqli_query($con,"SELECT * FROM products WHERE id like $id"); 
echo "<table border='2'> 
<tr> 
<td>id</td> 
<td>name</td> 
<td>button</td>"; 

while($row = mysqli_fetch_array($query)) 
    { 
     $product_id=$row['id']; 
    echo "<tr>"; 
    echo "<td>".$row['id']."</td>"; 
    echo "<td>".$row['name']."</td>"; 
    echo "<td><form action='test4.php' method='post' name'idnumber'><input type='submit' name='like' value='$product_id' style='background-image:url(http://pla-za.tk/php-login/images/$like_img); width:50px; height:35px; color:transparent; display:block; border:0px;'/></form></td>"; 
    echo "</tr>"; 
    } 
    echo "</table>"; 

$product_likes= mysqli_query($con,"SELECT likes FROM products WHERE id like $id"); 

while($rowlike=mysqli_fetch_array($product_likes)) 
{ 
    $like =$rowlike['likes']; 

} 

?> 
<?php echo "$like like this" ; 

?> 

這個代碼test4.php

<?php 
$con=mysqli_connect("*********","********","********","********"); 
    $like_submit= $_POST["like"]; 
$product_likes= mysqli_query($con,"SELECT likes FROM products WHERE id like $like_submit"); 

while($rowlike=mysqli_fetch_array($product_likes)) 
{ 
    $like =$rowlike['likes']; 
} 

//////////////////////////check if user put like ////////////////////////////// 
$check_query= mysqli_query($con,"SELECT ilike FROM mothar WHERE product_id like $like_submit"); 
while($rowlike=mysqli_fetch_array($check_query)) 
{ 
    $ilike =$rowlike["ilike"]; 
} 
///////////////////////////////if else(like)////////////////////////////////// 
if (mysqli_num_rows($check_query) >0){ 

    //////////////////////////delete 1 like from products table///////////////////// 
$add_like_to_products_table=mysqli_query($con,"UPDATE products SET likes= $like-1 
WHERE id like $like_submit"); 

$delete_like_in_user_table =mysqli_query($con,"DELETE FROM mothar WHERE product_id like $like_submit"); 


} 
else{ 
    //////////////////////////add 1 like to products table////////////////////////// 
    $add_like_to_products_table=mysqli_query($con,"UPDATE products SET likes=$like+1 
WHERE id like $like_submit"); 

$add_like_in_user_table =mysqli_query($con,"INSERT INTO mothar (product_id, ilike) 
VALUES ($like_submit, 1)"); 


} 
//////////////////////////////////// 
header("Location: http://pla-za.tk/php-login/product_details.php?id=1"); 
exit(); 
?> 
+1

看起來你需要一個AJAX調用 – stackErr

+1

「然後發送回上一頁」。怎麼樣?提供代碼。 –

+1

不是那個......我怎麼看php代碼呢?它應該在這個問題上。 –

回答

0

據我瞭解,我可以給你2個選項

  1. 使用AJAX調用。通過這種方式,您可以保持在同一頁面上,但對服務器的請求已完成。
  2. 將該另一個腳本的代碼放入第一個頁面的腳本中。您可以在url中使用GET值,如script.php?specialAction=true。這樣你就不需要從一個頁面跳轉到另一個頁面,而只需要再次加載同一個頁面,並且有一個參數說明應該執行一些特殊的操作。顯然,你需要把這樣的事情到代碼

    if($_GET['specialAction']) { 
        // do something cool here 
    } 
    
+0

如何做到這一點我會爲您提供我的代碼 – user2421299

+0

如果您需要我查看您的代碼,您可以將其放在http://pastebin.com上,並將鏈接複製到 –

+3

....或者只是將其放在問題中。 –

0

沒有看到任何代碼您使用我只是真的猜測,但我知道這一點:使用任何種類元刷新方法將投入臨時頁面納入客戶的瀏覽器歷史記錄,但如果您使用的是

header("Location: destination.php"); 

它不會。

+0

好的這是代碼 – user2421299

相關問題