-2

過去 2 週間で 1500 件以上の投稿を検索しましたが、コードを機能させるための解決策が見つかりませんでした。登録フォームとログイン フォームは正しく機能しますが、ユーザーがログインして情報を追加または編集すると、SQL データベースがユーザーの入力で更新されず、エラー/更新メッセージがエコーしません。私のユーザーは名前、姓、電子メール、およびパスワードで登録しますが、ログインすると、個人情報に追加する必要があり、後で個人情報を編集できるようになります。しかし、私が試したことは何もうまくいきませんでした...これを正しくする必要があるので助けてください....私のコードは次のとおりです:

PHP CODE:

<?php
include_once "connect_to_mysql.php";
$id = $_SESSION['id'];

$title=$_POST['title'];
$username=$_POST['username'];
$surname=$_POST['surname'];
$identityno=$_POST['identityno'];
$gender=$_POST['gender'];
$birthdate = strftime("%d %b %Y", strtotime($row['birthdate']));
$ethnicity=$_POST['ethnicity'];
$nationality=$_POST['nationality'];
$homeaddress=$_POST['homeaddress'];
$province=$_POST['province'];
$suburb=$_POST['suburb'];
$hometele=$_POST['hometele'];
$celltele=$_POST['celltele'];
$creditclear=$_POST['creditclear'];
$criminalrecord=$_POST['criminalrecord'];
$driverslicense=$_POST['driverslicense'];
$owntransport=$_POST['owntransport'];
$medicalconditions=$_POST['medicalconditions'];

$query("UPDATE cic_candidates SET title='$title', username='$username', surname='$surname', 
identityno='$identityno', gender='$gender', birthdate='$birthdate', ethnicity='$ethnicity', 
nationality='$nationality', homeaddress='$homeaddress', province='$province', suburb='$suburb', 
hometele='$hometele', celltele='$celltele', creditclear='$creditclear', 
criminalrecord='$criminalrecord', driverslicense='$driverslicense', 
owntransport='$owntransport', medicalconditions='$medicalconditions' WHERE id='$id'");
mysql_query($query);

echo 'Your account info has been updated, you will now see the new info.<br /><br />
To return to your profile edit area, <a href="edit_personal_details.php">click here</a>';
exit();
mysql_close();

?>
4

2 に答える 2

0

上記の SQL インジェクションの問題は別として (姓O'Connorはコードを壊しますが、これは発生する可能性が最も低いことです)、作成時に代入演算子がありません$query

$query("UPDATE cic_candidates ....

PHP はそれを代入ではなく関数呼び出しとして解釈しています。角かっこは必要ありませんが、代入演算子が必要です。

$query = "UPDATE cic_candidates ....

mysql_ 関数から mysqli_ または PDO への移行を検討する必要があります。どちらも、より安全なコードを簡単に記述できるようにします。しかし、少なくとも、データベースに追加するデータをサニタイズする必要があります

于 2013-09-01T16:31:11.777 に答える
0

変化する

$query("sql query string"); 

$query = "sql query string"; 

次に実行

mysql_query($query);
于 2013-09-01T16:38:10.153 に答える