0

我有一个弹出框,用于检查用户是否登录。如果他是,我正在回显一个用户将按下按钮并将其提交给数据库的小表单。变量显示在弹出窗口中,但是当按下提交时,它们不会传递到提交 php 文件。

$add_wish = "<form action='memWishList.php' method='post' id='memWishList'>
    <h3>Add this item to your Wish List?</h3><br>
    <input type='hidden' name='title' value='".$title."'>".$title."</input><br>
    <input type='hidden' name='link' value='".$link."'></input><br>
    <input type='submit' name='submit' value='Add'/><button id='cancel'>
      Cancel</button>
</form>";
    echo $add_wish;

我想传递要提交给数据库的值标题和链接。这是我的 memWishList.php 文件:

if (isset($_POST['submit'])){
  //get member id
  $title = mysqli_real_escape_string($_POST['title']);
  $link = mysqli_real_escape_string($_POST['link']);
  $mysql = "INSERT INTO wish_list (memNum, title, link, date) VALUES ('$memnum', \ 
      '$title', '$link', now())";
    $myquery = mysqli_query($mysqli_connect, $mysql);}

这样做,我只得到成员 ID 和插入的日期,而不是标题和链接。有什么问题?我回显此表单的原因是登录用户和未登录用户有一个 if/else 语句。在 html 中执行此操作会容易得多,但不能...

DB:memnum(varchar)、title(longtext)、link(longtext)、date(date)。我还有其他表格,其中插入长链接和标题就像长文本一样好。它们来自 RSS 提要。

4

2 回答 2

1

请检查文档:如果您使用程序方法,mysqli_real_escape_string 函数期望字符串作为第二个参数。它可能是即:

$link = mysqli_real_escape_string($mysqli_connect, $_POST['link']);
于 2013-02-08T13:45:03.770 回答
0

您有一些标记错误。您隐藏的输入标签应如下所示:

<input type='hidden' name='link' value="<?php echo $link ?>">

将您的 HTML 文件更新为如下所示,所有值都将发送到 $_POST 变量:

<form action='memWishList.php' method='post' id='memWishList'>
    <h3>Add this item to your Wish List?</h3><br>
    <input type='hidden' name='title' value="<?php echo $title ?>"><?php echo $title ?><br>
    <input type='hidden' name='link' value="<?php echo $link ?>"><br>
    <input type='submit' name='submit' value='Add'/><button id='cancel'>Cancel</button>
</form>
于 2013-02-08T13:46:33.400 回答