[英]Trying to update profile from HTML form to MySQL using PHP
我整天都在這,並且有一種感覺,這可能是非常簡單的事情。 我試圖讓我的用戶選擇更新其用戶配置文件中的一些條目,而無需每次都填寫所有內容。
我將在下面發布我的代碼,但基本上我沒有得到任何響應。
我的HTML表單如下;
<table width="500" border="0" cellpadding="3" cellspacing="1">
<tr>
<form method="post" action="edit.php">
<div data-role="fieldcontain">
<td width="200">Name:</td>
<td width="450"><input type="text" name="inputName" value="" /> </td>
</tr>
<tr>
<td width="200">Password:</td>
<td width="450"><input type="password" name="inputPassword" value="" /></td>
</tr>
<tr>
<td width="200">Date of Birth:</td>
<td width="450"><input type="date" name="inputDOB" value="" /></td>
</tr>
<tr>
<td width="200">Core Competencies:</td>
<td width="450">
<input type="checkbox" name="coreComp[]" value="Honesty" />Honesty<br />
<input type="checkbox" name="coreComp[]" value="Loyalty" />Loyalty<br />
<input type="checkbox" name="coreComp[]" value="Trust" />Trust<br />
<input type="checkbox" name="coreComp[]" value="Empathy" />Empathy<br />
<input type="checkbox" name="coreComp[]" value="Respect" />Respect</td>
</tr>
<tr>
<td colspan="2">
<button data-theme="b" id="submit" type="submit">Submit</button>
</td>
</tr>
<tr>
<td colspan="2">
<h3 id="notification"></h3>
</td>
</div>
</form>
</tr>
</table>
我的PHP目前看起來像這樣;
<?php
session_start();
include 'includes/Connect.php';
$name = $_POST['inputName'];
$password = $_POST['inputPassword'];
$dob = $_POST['inputDOB'];
$aCC = implode( ',' , $_POST['coreComp'] );
$encrypt_password=md5($password);
$username=$_SESSION['myusername'];
if(!empty($name))
{
mysql_query("UPDATE Profile SET `Name`='$name' WHERE Username='$username'" or die(mysql_error());
echo("You have successfully updated your Name");
}
if(!empty($password))
{
mysql_query("UPDATE Profile SET Password='$encrypt_password' WHERE Username='$username'" or die(mysql_error());
echo("You have successfully updated your Password");
}
if(!empty($dob))
{
mysql_query("UPDATE Profile SET DOB='$dob' WHERE Username='$username'" or die(mysql_error());
echo("You have successfully updated your Date of Birth");
}
if(!empty($aCC))
{
mysql_query("UPDATE Profile SET CC='$aCC' WHERE Username='$username'" or die(mysql_error());
echo("You have successfully updated your Core Values");
}
mysql_close();
?>
您有一系列語法錯誤。 這是不正確的,因為它缺少a )
:
mysql_query("UPDATE Profile SET `Name`='$name' WHERE Username='$username'" or die(mysql_error());
您需要在查詢字符串之后關閉括號( )
),但之前or die...
:
mysql_query("UPDATE Profile SET `Name`='$name' WHERE Username='$username'") or die(mysql_error());
更正代碼:
if(!empty($name))
{
mysql_query("UPDATE Profile SET `Name`='$name' WHERE Username='$username'") or die(mysql_error());
echo("You have successfully updated your Name");
}
if(!empty($password))
{
mysql_query("UPDATE Profile SET Password='$encrypt_password' WHERE Username='$username'") or die(mysql_error());
echo("You have successfully updated your Password");
}
if(!empty($dob))
{
mysql_query("UPDATE Profile SET DOB='$dob' WHERE Username='$username'") or die(mysql_error());
echo("You have successfully updated your Date of Birth");
}
if(!empty($aCC))
{
mysql_query("UPDATE Profile SET CC='$aCC' WHERE Username='$username'") or die(mysql_error());
echo("You have successfully updated your Core Values");
}
另外,正如我在上面的注釋中指出的那樣, 不推薦使用mysql_ *函數,並且您對SQL注入非常開放。 您需要使用MySQLi或PDO並使用預准備語句。 你的HTML也有各種各樣的問題,比如一個div和一個從一個tr開始到另一個tr結束的表單。 這不是您的代碼失敗的原因,但我強烈建議您清理代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.