【问题标题】:Use forms in wordpress which goes back to itself?在 wordpress 中使用可以追溯到自身的表单?
【发布时间】:2012-04-19 22:31:21
【问题描述】:

我正在使用 buddypress 开发一个 wordpress 网站。所以,我正在创建一个页面,您可以在其中查看成员并使用数据库搜索他们:wp_users。 如果我将它作为 php 添加到 wp 页面时,它会正常显示,但单击提交时会出现 404 错误。

这是代码:

    <!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta  http-equiv="Content-Type" content="text/html;  charset=utf-8">
    <title>Search  Contacts</title>
  <style type="text/css">
  #spacer {
    border-top-width: 1px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    border-left-width: 1px;
    border-top-style: solid;
}
  </style>
  </head>
  <p><body>
    <p>&nbsp;</p>
    <form  method="post" action=""  id="searchform">
      <p>
        <input name="name"  type="text">
        <input  type="submit" name="submit" value="Søk">
      </p>
      <p>Tips: du kan søke etter adresse, navn og e-post.</p>
    </form>

  <table width="600">
            <tr>
              <th width="200" height="50">Navn</th>
                <th width="200">&nbsp;</th>
              <th width="200">E-post adresse</th>
            </tr>  
<?php
/* Change next two lines  if using online*/
$db="skynnaks_skyn";
$link = mysql_connect('localhost', 'skynnaks_skyn', '*password*');

if (! $link) die(mysql_error());
mysql_select_db($db , $link) or die("Couldn't open $db: ".mysql_error());
$result = mysql_query( "SELECT * FROM wp_users" )
          or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);

if ($result) {

while ($row = mysql_fetch_array($result)) { 
$_SESSION['id']=$row['id'];
#echo "<tr><a href='#'>".$row['display_name']."</a>";
echo "<td><a href="."/members/".$row['user_nicename']."/profile/>".$row['display_name']."</a></td>";
#echo "<a href=" '.$row['id'].'>Bruker: ".$row['user_url']."</a>";
echo "<td><a href=".$row['user_url'].">".$row['user_url']."</a></td>";
echo "<td><a href=".'mailto:'.$row['user_email'].">".$row['user_email']."</a></td></tr>";
}
}


?>
</table>
    <div id="spacer">
     <?php
  if(isset($_POST['submit'])){
  if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
  $name=$_POST['name'];
  //connect  to the database
  $db=mysql_connect  ("localhost", "skynnaks_skyn",  "*password*") or die ('I cannot connect to the database  because: ' . mysql_error());
  //-select  the database to use
  $mydb=mysql_select_db("skynnaks_skyn");
  //-query  the database table
  $sql="SELECT  ID, user_login, user_nicename FROM wp_users WHERE user_login LIKE '%" . $name .  "%' OR user_nicename LIKE '%" . $name ."%'";
  //-run  the query against the mysql query function
  $result=mysql_query($sql);
  //-create  while loop and loop through result set
  while($row=mysql_fetch_array($result)){
          $loginName  =$row['user_login'];
          $niceName=$row['user_nicename'];
          $ID=$row['ID'];
  //-display the result of the array

  echo "<ul>\n";
  echo "<li>" . "<a href="."/members/".$loginName."/profile/>".$niceName."</a>" ;
  echo "</ul>";
  }
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
?>
  </div>
    <p>&nbsp;</p>


  </body>
</html>
</p>

PS:由于 buddypress 插件,我无法使用默认永久链接。而且我知道 buddypress 带有会员搜索功能,但我已经安装了挪威语语言包,但它不适用于 buddypress 中的会员搜索。

感谢您的帮助:)

【问题讨论】:

    标签: mysql forms wordpress


    【解决方案1】:

    看起来像this problem

    所以用任何特定的名称属性更改您的输入标签名称。

    例如,

    <input name="membername" type="text" />
    

    但不要忘记从 $_POST 获取相同的变量

    【讨论】:

    • @user1219796 url 是否与发布表单后的页面 url 相同?你检查了吗?
    • 想通了 :) 对于想要进行此“搜索”的人,您需要从提交更改按钮-> formsubmit ...我还删除了“go”扩展名和操作 = “”(无)
    猜你喜欢
    • 2015-01-26
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多