これは私のコードです。入力時にPHPフォームがMySQLにデータを送信しない
私が作成したMySQLデータベース内の「連絡先」という表にデータを送信するフォームが含まれています。
テーブルには4つのフィールドがあります。タイトル、名前、Eメール、お問い合わせ。
これは私のウェブサイトに合うようにコピーして編集したコードです。私は.PHPには新しいです! 4列/フィールドの
は <?php
if(isset($_POST['add'])) {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn) {
die('Could not connect: ' . mysql_error());
}
if(! get_magic_quotes_gpc()) {
$p_title = addslashes ($_POST['p_title']);
$p_name = addslashes ($_POST['p_name']);
$p_email = addslashes ($_POST['p_email']);
}else {
$p_name = $_POST['p_name'];
$p_email = $_POST['p_email'];
}
$p_enquiry = $_POST['p_enquiry'];
$sql = "INSERT INTO contacts ". "(p_name,p_email, p_enquiry, p_title
join_date) ". "VALUES('$p_name','$p_email',$p_enquiry,$p_title NOW())";
mysql_select_db('test_db');
$retval = mysql_query($sql, $conn);
if(! $retval) {
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border = "0" cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100"><p>Title:</p></td>
<td><input name = "p_title" type = "text"
id = "p_title"></td>
</tr>
<tr>
<td width = "100"><p>Name:</p></td>
<td><input name = "p_name" type = "text"
id = "p_name"></td>
</tr>
<tr>
<td width = "100"><p>Email:</p></td>
<td><input name = "p_email" type = "text"
id = "p_email"></td>
</tr>
<tr>
<td width = "100"><p>Enquiry:</p></td>
<td><input name = "p_enquiry" type = "text"
id = "p_enquiry"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "add" type = "submit" id = "add"
value = "Add Employee">
</td>
</tr>
</table>
</form>
<?php
}
?>
削除された 'mysql_ * 'は使用しないでください。これはもう動作しません。' PDO' [リンク](http://php.net/manual/en/book.pdo.php)または 'mysqli '[link](http://php.net/manual/en/book.mysqli.php)を参照してください。 – Tom
[Little Bobby](http://bobby-tables.com/)は、[あなたのスクリプトはSQLインジェクション攻撃の危険にさらされていると言います。](http://stackoverflow.com/questions/60174/how-can-i-prevent -sql-injection-in-php)を実行します。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –
[mysql_ *関数の使用をやめてください](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)はPHP 7で削除されました。[prepared](http://en.wikipedia.org/ [PDO](http://php.net/manual/en/pdo.prepared-statements.php)および[MySQLi](http://php.net/manual/en/mysqli.quickstart)のwiki/Prepared_statement)ステートメント.prepared-statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –