0 レビュー
3 回答
php-フォームの値がデータベースに正しく表示されない
テキストフォームからデータベースに情報を転送したいのですが、値がデータベースに正しく表示されません。これが私が持っているものです:
形式のHTMLコード:
<form method="post" action="process.php">
<input type="text" maxlength="150" name="textbox">
<input type="submit" name="submit">
</form>
process.php
<?php
$con=mysqli_connect($host, $username, $password, $database);
$sql = mysqli_query($con,"INSERT INTO notes (User, Note)
VALUES ('test', '$_POST [textbox]')");
// I also tried writing $_POST ['textbox'] instead; didn't make a difference.
?>
ただし、データベースの出力は次のとおりです。
ユーザー:テスト
注:配列[テキストボックス]
[メモ]列の値を修正するにはどうすればよいですか(つまり、フォームに入力された値にするため)?
わからない
0
レビュー
答え :
解決策:
最初に...$_POSTと['textbox']の間にスペースがありました。 $ _POST ['textbox'] ...
である必要がありますしかし、最初にデータをサニタイズする必要があるので... これを試してください
$input = mysqli_real_escape_string($_POST['textbox']);
$sql = mysqli_query($con,"INSERT INTO notes (User, Note)
VALUES ('test', '$input')");
しかし、実際には、非推奨のmysql_*関数の代わりにPDOを使用する必要があります... Google PDO、およびプリペアドステートメントの実行方法を学びます。
ここにPDOがあります...
$conn = new PDO("mysql:host=$host;dbname=$database",$username,$password);
$user = 'Test';
$note = $_POST['textbox'];
$sql = "INSERT INTO notes (User, Note) VALUES (:user,:note)";
$q = $conn->prepare($sql);
$q->execute(array(':user'=>$user,
':note'=>$note));
編集... また、入力が閉じられていないことに気付きました。それぞれの最後に/があるはずです...
<form method="post" action="process.php">
<input type="text" maxlength="150" name="textbox" />
<input type="submit" name="submit" />
</form>
わからない
0
レビュー
答え :
解決策:
$_POSTと[テキストボックス]の間にスペースがあります。 $_POSTは配列です。したがって、配列[テキストボックス]、つまり:ArraySPACE[テキストボックス]
スペースを削除してから、プリペアドステートメントの使用を検討する必要があります。最初にサニタイズせずに、ユーザーが送信したデータを直接使用しないでください。
わからない
0
レビュー
答え :
解決策:
$sql = mysqli_query($con,"INSERT INTO notes (User, Note)
VALUES ('test', '{$_POST['textbox']}')");
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。