ホームページ  >  記事  >  バックエンド開発  >  助けてください。コードを投稿したので、読むためにファイルをダウンロードする必要はありません。

助けてください。コードを投稿したので、読むためにファイルをダウンロードする必要はありません。

WBOY
WBOYオリジナル
2016-06-23 13:56:05849ブラウズ

a.php  包含一个删除选中书签的复选框function display_user_urls($url_array){  // display the table of URLs  // set global variable, so we can test later if this is on the page  global $bm_table;  $bm_table = true;?>  <br />  <form name='bm_table' action='delete_bms.php' method='post'>  <table width=300 cellpadding=2 cellspacing=0>  <?php  $color = "#cccccc";  echo "<tr bgcolor='$color'><td><strong>Bookmark</strong></td>";  echo "<td><strong>Delete?</strong></td></tr>";  if (is_array($url_array) && count($url_array)>0)  {    foreach ($url_array as $url)    {      if ($color == "#cccccc")        $color = "#ffffff";      else        $color = "#cccccc";      // remember to call htmlspecialchars() when we are displaying user data      echo "<tr bgcolor='$color'><td><a href=\"$url\">".htmlspecialchars($url)."</a></td>";      echo "<td><input type='checkbox' name=\"del_me[]\"             value=\"$url\"></td>";      echo "</tr>";     }  }  else    echo "<tr><td>No bookmarks on record</td></tr>";?>  </table>   </form><?php}


点击上面删除的复选框后,需要点击下方的删除书签<?php  // only offer the delete option if bookmark table is on this page  global $bm_table;  if($bm_table==true)    echo "<a href='#' onClick='bm_table.submit();'>Delete BM</a> | ";   else    echo "<font color='#cccccc'>Delete BM</font> | "; ?>


delete_bms.php 删除函数如下<?php  require_once('bookmark_fns.php');  session_start();   //create short variable names  $del_me = $HTTP_GET_VARS['del_me'];  $valid_user = $HTTP_GET_VARS['valid_user'];   do_html_header('Deleting bookmarks');  check_valid_user();  if (!filled_out($HTTP_GET_VARS))  {    echo 'You have not chosen any bookmarks to delete.         Please try again.';    display_user_menu();    do_html_footer();      exit;  }  else   {    if (count($del_me) >0)    {      foreach($del_me as $url)      {        if (delete_bm($valid_user, $url))          echo 'Deleted '.htmlspecialchars($url).'.<br />';        else          echo 'Could not delete '.htmlspecialchars($url).'.<br />';      }      }    else      echo 'No bookmarks selected for deletion';  }  // get the bookmarks this user has saved  if ($url_array = get_user_urls($valid_user))    display_user_urls($url_array);  display_user_menu();   do_html_footer();?>


delete_bm函数的代码如下function delete_bm($user, $url){  // delete one URL from the database  $conn = db_connect(); //此处已经包含在另一个php文件中,连接数据库是正常的  // delete the bookmark  if (!$conn->query( "delete from bookmark                        where username='$user' and bm_url='$url'"))    throw new Exception('Bookmark could not be deleted');  return true;  }


この投稿 http://bbs.csdn.net/topics/390801785 の 2 人の専門家の提案に従って、delete_bms.php の $HTTP_GET_VARS をすべて $_GET に変更しました。テスト後、ブックマークが正常に削除され、呼び出しコード「 echo 'Deleted '.htmlspecialchars($url).'.df250b2156c434f3390392d09b1c9563';」が表示されますが、ブックマークはその後も残っています。 F5でWebページを更新しても全く削除されていません アドバイスをお願いします。データベースをチェックインしたところ、ブックマークが 2 件まだ存在していることがわかりました。 。

もう一つの質問は、ブックマークがない場合はステータスをクリックして BM を削除できないのに、ブックマークがある場合は利用可能なステータスが表示されるのはなぜですか?このコードはブックマークなしでは使用できないように書かれていますか?アドバイスをお願いします。

echo "2ade61adf30bfcd3a4f1b92d12f099a5Delete BM5db79b134e9f6b82c0b36e0489ee08ed | "; このコード bm_table.submit() は何を意味しますか?私のphpにはsubmit関数がないようです。


ディスカッション (解決策) への返信

bm_table.submit() はフォームを送信するためのもので、bm_table はフォーム名、submit はフォームのメソッドです。

863d08cad58d374965d3f8f9111e434a

渡されたパラメータを取得するには、$_GET ではなく $_POST を使用します。

$del_me = $_POST['del_me'];
$valid_user = $_POST['valid_user'];

まず基本を理解する必要があります。そうしないと、他の人が助けるのが難しくなります。

削除クエリの戻り結果を判定しただけで、mysql_query("delete") は実行していません。

bm_table.submit() はフォームを送信するためのもので、bm_table はフォーム名、submit はフォームのメソッドです。

863d08cad58d374965d3f8f9111e434a

渡されたパラメータを取得するには、$_GET ではなく $_POST を使用します。

$del_me = $_POST['del_me'];
$valid_user = $_POST['valid_user'];

まず基本を理解する必要があります。そうしないと、他の人が助けるのが難しくなります。


これが問題であることが分かりました。 。テストに合格しました。 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。