我希望允许已登录的用户修改其信息

时间:2016-07-07 05:43:38

标签: php html mysql

我想让登录的用户可以允许他们的详细信息我很困惑,因为当我使用以下代码时,它不允许我编辑特定用户的信息 这是我的edit.php,在这个旧的用户细节应该显示在文本框中,但文本框显示为空,任何人都可以解决此问题

edit.php

    <?php 

$connection = mysql_connect('localhost','root','root') or die ("Couldn't connect to server.");  
$db = mysql_select_db('test', $connection) or die ("Couldn't select database.");  



$data ="select first_name,last_name,father_name,address,pincode,dob,phone from acc"; 
  $query = mysql_query($data) or die("Couldn't execute query. ". mysql_error()); 
  $data2 = mysql_fetch_array($query); 

?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
      <title></title> 
 </head> 

<body> 

<!-- form to display record from database --> 
<center>
<form name="form" method="POST" action="abcd2.php"> 
  first Name: <input type="text" name="firstname" value="<?php echo $query['first_name']?>"/> <br> 
 last Name : <input type="text" name="lastname" value="<?php echo $query['last_name']?>"/> <br>
 father Name: <input type="text" name="fathername" value="<?php echo $query['father_name']?>"/> <br> 
 address: <input type="text" name="address" value="<?php echo $query['address']?>"/> <br> 
 pincode: <input type="text" name="pincode" value="<?php echo $query['pincode']?>"/> <br> 
  DOB: <input type="text" name="dob" value="<?php echo $query['dob']?>"/><br>
  phone: <input type="text" name="phone" value="<?php echo $query['phone']?>"/> <br> 
      <input type="submit"  value="submit"> 
</form> 
</center>
</body> 

</html>

update.php

    <?php 

$connection = mysql_connect('localhost','root','root') or die ("Couldn't connect to server.");  
$db = mysql_select_db('test', $connection) or die ("Couldn't select database."); 

$firstname=$_POST['firstname']; 
$lastname=$_POST['lastname']; 
$fathername=$_POST['fathername']; 
$address=$_POST['address']; 
$pincode=$_POST['pincode'];
$dob=$_POST['dob'];
$phone=$_POST['phone'];

$data = "UPDATE `acc` SET first_name='$firstname', last_name='$lastname', father_name='$fathername', address='address', pincode='$pincode', dob='$dob', phone='$phone' "; 
  $query = mysql_query($data) or die("Couldn't execute query. ". mysql_error()); 

?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
      <title></title> 
 </head> 

<body> 

<!--  display the changed record from database --> 
<center>
  First Name: <?php echo $firstname?><br> 
  Last Name: <?php echo $lastname?><br>
  Father Name: <?php echo $fathername?><br>
  Address: <?php echo $address?> <br> 
  Pincode: <?php echo $pincode?><br>
  DOB: <?php echo $dob?><br>
  Phone: <?php echo $phone?><br><br> 
</center>
</body> 

</html>

2 个答案:

答案 0 :(得分:1)

示例步骤
注册:插入到数据库中,假设id设置为自动增量和主键。

&#34;请在打开PHP标记后立即添加start_session(),否则可能会引发与标题相关的错误。&#34;

登录:

  1. 验证用户
     如果登录成功,则在会话变量

    中添加id,name,email

    否则
    销毁会议

  2. 用户登录其个人资料
    通过比较来自会话变量的user_id来获取用户的数据 例如(从tbl中选择*,其中user_id =&#39; $ _ SESSION ['id&#39;]&#39;) 因此,您将拥有用户的数据

  3. 更新数据
    (更新tbl set col = value ....其中user_id = $ _SESSION ['id&#39;])

  4. 这样,如果您按照这些步骤操作,则会处理插入,更新,获取特定用户的更新值。 由于您刚刚开始使用会话,请记住每个用户的唯一性,因此不必担心特定用户的变量中的ID。

答案 1 :(得分:1)

兄弟,为了您网站用户的安全性最低,请不要实施这些代码来编辑或更新信息。我可以告诉你一些原因。

  1. 您使用的是 mysql * ,这是php4的内容,您必须知道当前版本是php7,因此您使用的是旧版本。 你必须学习PDO或MySQLi。 PDO会更好。

    学习像MySQLi / PDO这样的新东西不是火箭科学,它只需要几天,但结果会比你现在的情况好得多。

  2. 您正在使用UPDATE xyz SET x = "123", y="456" WHERE z = "987"之类的查询。真正的新手黑客可能只使用浏览器的地址栏来检索您的数据库信息。准确地了解像{strong> htmlspecialchars 这样的特殊字符,或者像$firstname = htmlspecialchars($_POST['firstName'])那样的PDO Params。

  3. 要从唯一用户的数据库中检索数据,最好使用会话。 `

    会话只不过是服务器上针对您网站环境的访问数据。每次运行登录脚本,然后在代码完成所有检查的行,请使用以下代码:

    session_start(); 
    $_SESSION['firstname'] = htmlspecialchars($_POST['firstname'])
    // and so on...
    

    没关系。现在,在您要填写用户数据的表单中,使用

    <input type="text" value="<?php echo $_SESSION['firstname'];?>">`