2012-11-21 44 views
0

我已創建2頁PHP/MySQL的更新將無法工作

update.php 
edit.php 

我們開始edit.php所以這裏是edit.php的腳本

<?php 
$id = $_SESSION["id"]; 
$username = $_POST["username"]; 
$fname = $_POST["fname"]; 
$password = $_POST["password"]; 
$email = $_POST["email"]; 

mysql_connect('mysql13.000webhost.com', 'a2670376_Users', 'Password') or  die(mysql_error()); 
echo "MySQL Connection Established! <br>"; 

mysql_select_db("a2670376_Pass") or die(mysql_error()); 
echo "Database Found! <br>"; 

$query = "UPDATE members SET username = '$username', fname = '$fname', 
password = '$password' WHERE id = '$id'"; 

$res = mysql_query($query); 

if ($res) 
echo "<p>Record Updated<p>"; 
else 
echo "Problem updating record. MySQL Error: " . mysql_error(); 
?> 

<form action="update.php" method="post"> 
<input type="hidden" name="id" value="<?=$id;?>"> 
ScreenName:<br> <input type='text' name='username' id='username' maxlength='25' style='width:247px' name="username" value="<?=$username;?>"/><br> 
FullName:<br> <input type='text' name='fname' id='fname' maxlength='20' style='width:248px'  name="ud_img" value="<?=$fname;?>"/><br> 
Email:<br> <input type='text' name='email' id='email' maxlength='50' style='width:250px' name="ud_img" value="<?=$email;?>"/><br> 
Password:<br> <input type='text' name='password' id='password' maxlength='25'  style='width:251px' value="<?=$password;?>"/><br> 
<input type="Submit"> 
</form> 

現在這裏是update.php頁在那裏我遇到的主要問題

<?php 
session_start(); 
mysql_connect('mysql13.000webhost.com', 'a2670376_Users', 'Password') or die(mysql_error()); 
mysql_select_db("a2670376_Pass") or die(mysql_error()); 

$id = (int)$_SESSION["id"]; 

$username = mysql_real_escape_string($_POST["username"]); 
$fname = mysql_real_escape_string($_POST["fname"]); 
$email = mysql_real_escape_string($_POST["email"]); 
$password = mysql_real_escape_string($_POST["password"]); 


$query="UPDATE members 
SET username = '$username', fname = '$fname', email = '$email', password = '$password' 
WHERE id='$id'"; 


mysql_query($query)or die(mysql_error()); 
if(mysql_affected_rows()>=1){ 
echo "<p>($id) Record Updated<p>"; 
}else{ 
echo "<p>($id) Not Updated<p>"; 
} 
?> 

現在edit.php我填寫表格編輯帳戶「測試」當我登錄到它沒有如果填寫完表格,我點擊| Submit!|按鈕 它需要我update.php並返回該

(0) Not Updated 

(0) <= id of user logged in 

Not Updated <= MySql Error from 


mysql_query($query)or die(mysql_error()); 
if(mysql_affected_rows()>=1){ 

我希望它更新用戶登錄,如果我不是在這個腳本錯誤的,它說

$id = (int)$_SESSION["id"]; 

巫更新與誰在

記錄的人的ID的用戶,但它不是更新它說,沒有表已影響

如果它可以幫助繼承人我們M ySql數據庫圖片 只需點擊此處http://i50.tinypic.com/21juqfq.png

即使

session_start(); 

它不會工作之前

+0

SQL注入攻擊是可能的,我知道這病的修復,一旦我的Git這個工作 –

+0

嘗試呼應完整的SQL UPDATE語句,看看是什麼它試圖運行 –

回答

1

它出現的是你還沒有開始您的會話返回相同的thinf的,因此$_SESSION['id']未設置。

session_start(); 

而且,一如既往不使用mysql_ *函數,那段時間已經過去了。使用mysqliPDO

+0

我在哪裏把session_start(); –

+1

位於開頭'<?php'標籤的下方。而這就是你的update.php頁 –

+0

謝謝我這樣做,並測試它仍然不會像以前一樣工作 –

0

看來您的會話可能會超時,或者您甚至根本沒有初始化它。

從輸出它顯示的ID爲0,所以你的問題