0

ユーザーがサインインしているかどうかを確認するポップアップ ボックスがあります。もしそうなら、ユーザーがボタンを押すとDBに送信される小さなフォームをエコーアウトしています。変数はポップアップに表示されますが、送信を押すと、送信 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;

DBに送信する値のタイトルとリンクを渡したいです。ここに私の 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(ロングテキスト)、link(ロングテキスト)、date(日付)。長いリンクとタイトルが長いテキストとして適切に挿入される他のテーブルがあります。それらは RSS フィードから来ています。

4

2 に答える 2

1

ドキュメントを確認してください: mysqli_real_escape_string 関数は、手続き型アプローチを使用する場合、文字列を 2 番目のパラメーターとして期待します。つまり、次のようになります。

$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 に答える