Heim  >  Artikel  >  Backend-Entwicklung  >  请帮帮忙,我贴代码了,现在不用下载文件看了。

请帮帮忙,我贴代码了,现在不用下载文件看了。

WBOY
WBOYOriginal
2016-06-23 13:56:05849Durchsuche

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).'.
';”但是刷新F5刷新网页书签还在,根本没有删除,请各位指点。我进入数据库查看,发现2个书签还在。。

还有个问题就是:为什么没有书签的时候,Delete BM 是不可以点状态,有书签的时候就会显示可用状态?这个代码有写没有书签就不可用吗?请指点。

 echo "Delete BM | ";  这一句代码bm_table.submit()是什么意思?我的php中好像没有submit函数。


回复讨论(解决方案)

bm_table.submit() 就是提交表单,bm_table是表单名,submit是表单方法。



明显是用$_POST获取传递的参数,而不是用$_GET。

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

基础还是需要先了解下,不然别人很难给予帮助。

你只判断了delete的query返回结果,而没有去执行mysql_query(“delete”)。

bm_table.submit() 就是提交表单,bm_table是表单名,submit是表单方法。



明显是用$_POST获取传递的参数,而不是用$_GET。

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

基础还是需要先了解下,不然别人很难给予帮助。
真是亮瞎我的眼睛了,原来问题出在这里。。测试通过。。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn