2012-02-10 46 views
0

私はユーザーがクリックするためのリンクを作成しようとしています。これをクリックするとリストから削除されます。私は送信ボタンを使わずに、$ _GET(可能な場合)を使わずにこれを行う方法を理解しようとしています。リンクのためのセット - PHP

とにかく、ユーザーがURLにこれを入力できるため、99%がこれを行う方法や考え方がわからなくても、$ _GET(これは私が今使っている方法)それらはリストから削除されます。

$ _POSTを使用するにはどうすればいいですか?

$attendingUsers = mysql_query("Select acceptedInvites from events where eventID = ".mysql_real_escape_string($_GET['eventID'])." "); 
    $users= mysql_fetch_array($attendingUsers); 
    $user = $users['acceptedInvites']; 
if(preg_match("/$userid/", $user)){ 
     echo "You are attending this event</br>"; 
     echo '<a href="viewevent.php?eventID='.$_GET['eventID'].'&delete=1">Click here </a>to remove yourself from the list'; 
      if($_GET['delete']=1){ 
        $sql=... 
     } 
    } 

$ _GETを使用せずにこれを行うことはできますか?ありがとう!

答えて

0

私はJavaScriptの権利を持っている場合、これはトリックを行う必要があります。

<a href="javascript:void(document.getElementById('delete').submit());">Delete</a> 
<form id="delete" action="delete.php" method="post"> 
    ... 
</form> 

リンクは、フォームを送信します。

1

あなたは、リンクを介して削除しないのいずれか$_GETまたは$_POST

<form action="delete.php" method="post"> 
    <input type="hidden" name="eventId" value="yourEventId" /> 
    <a href="#" onclick="this.form.submit();" > Delete</a> 
</form> 
+0

リンクに$ _POSTを使用するにはどうすればよいですか?私は$ _POSTを使うことができるようにリンクの名前を付ける方法を尋ねようとしているのでしょうか? – user1104854

+0

@ user1104854:今すぐ自分の答えを確認してください。 – Gaurav

2

を使用する必要があります。 Read The Spider of Doom

「よくあること」フォームの「削除」ページにリンクすることをお勧めします。フォームを送信(POST経由)すると、削除が実行され、適切な結果ページにリダイレクトされます。その後

<a href="remove.php?eventID=<?php echo $eventId ?>">Click here</a> 
to remove yourself from the list 

例えば

remove.php

<?php 
// get Event details via $_GET['eventID'] 

if (isset($_POST['confirm'])) { 
    // delete via SQL 

    // redirect 
    header('Location: http://example.com/events.php'); 
    exit; 
} 

// display event details 
?> 

<form method="post" action="remove.php?eventID=<?php echo $eventId ?>"> 
    <p>Are you sure?</p> 
    <input type="submit" name="confirm" value="Remove me from this event"> 
</form> 

にあなたは、おそらくまた、CSRF保護になっているはずですが、それはこの質問の範囲外は本当にです。

+0

リンクに$ _POSTを使用するにはどうすればよいですか?名前を付ける方法がわかりません。何かが投稿されているかどうかを確認する方法は分かっていますが、名前の付け方についてはわかりません。 – user1104854

+0

@ user1104854私の更新された回答を参照してください – Phil

+0

更新のおかげで、それはより理にかなっていますが、私はまだ一面で混乱しています。ユーザーがリンクをクリックしてremove.phpに行くと、ユーザーが今remove.phpに入っているとき(event.phpから)、どのようにイベントの内容を表示することができますか? – user1104854

0

md5や暗号化された文字列のように、get varを読むことができないようにするには、ある種のエンコーディングを使用できます。

関連する問題