2012-11-21 46 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,所以你的问题