これで私が得ることができる助けを本当に感謝します。
フォームに本当に問題があり、mysql_real_escape_string がまったく機能しないようです。
私は PHP で MySQL 5.5 を使用しています。それをテストするために、マジック クォートがまったくオンになっていない単純なフォームを作成しました。
このフォームの使用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="event_ad" action="test.php" method="post">
<table>
<tr>
<td>Event Name:</td>
<td><input name="event_name" type="text" size="90" /></td>
</tr>
<tr>
<td>Start Date:</td>
<td><input name="start_date" type="text" size="90" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="Submit" type="submit" id="Submit" value="Add New Event" /></td>
</tr>
</table>
</form>
</body>
</html>
次に、test.php を使用してデータをテーブルに入力します。
<?php
mysql_connect("localhost","username","password") or die(mysql_error());
mysql_select_db("databasename") or die(mysql_error());
$name = $_POST['event_name'];
$sdate = $_POST['start_date'];
$name = mysql_real_escape_string($name);
$sql = "INSERT INTO tblevents (event_name, event_date) VALUES ('" . $name . "','" . $sdate . "')";
mysql_query($sql);
echo "success";
?>
(接続の詳細が変更されました)
イベント名 O'Rielly "Smith" を入力すると、MySQL テーブルに O'Rielly "Smith" として挿入されます
バックスラッシュもエスケープもまったくありません。
私は本当にこれを解決しようとしてインターネットを精査しましたが、それは他の誰にとってもうまくいくようです.
ここで基本的なことを誤解していますか?誰かが私を正しい方向に導くことができれば、心から感謝します。
これはこのフォーラムでの私の最初の投稿であり、html とコードのフォーマットは、私が訪れたほとんどのフォーラムと同じではないようです。
助けを提供してくれた人に事前に感謝します。乾杯アル。