我想让登录的用户可以允许他们的详细信息我很困惑,因为当我使用以下代码时,它不允许我编辑特定用户的信息 这是我的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>
答案 0 :(得分:1)
示例步骤
注册:插入到数据库中,假设id设置为自动增量和主键。
&#34;请在打开PHP标记后立即添加start_session(),否则可能会引发与标题相关的错误。&#34;
登录:
验证用户
如果登录成功,则在会话变量
否则
销毁会议
用户登录其个人资料
通过比较来自会话变量的user_id来获取用户的数据
例如(从tbl中选择*,其中user_id =&#39; $ _ SESSION ['id&#39;]&#39;)
因此,您将拥有用户的数据
更新数据
(更新tbl set col = value ....其中user_id = $ _SESSION ['id&#39;])
这样,如果您按照这些步骤操作,则会处理插入,更新,获取特定用户的更新值。 由于您刚刚开始使用会话,请记住每个用户的唯一性,因此不必担心特定用户的变量中的ID。
答案 1 :(得分:1)
兄弟,为了您网站用户的安全性最低,请不要实施这些代码来编辑或更新信息。我可以告诉你一些原因。
您使用的是 mysql * ,这是php4的内容,您必须知道当前版本是php7,因此您使用的是旧版本。 你必须学习PDO或MySQLi。 PDO会更好。
学习像MySQLi / PDO这样的新东西不是火箭科学,它只需要几天,但结果会比你现在的情况好得多。
您正在使用UPDATE xyz SET x = "123", y="456" WHERE z = "987"
之类的查询。真正的新手黑客可能只使用浏览器的地址栏来检索您的数据库信息。准确地了解像{strong> htmlspecialchars 这样的特殊字符,或者像$firstname = htmlspecialchars($_POST['firstName'])
那样的PDO Params。
要从唯一用户的数据库中检索数据,最好使用会话。 `
会话只不过是服务器上针对您网站环境的访问数据。每次运行登录脚本,然后在代码完成所有检查的行,请使用以下代码:
session_start();
$_SESSION['firstname'] = htmlspecialchars($_POST['firstname'])
// and so on...
没关系。现在,在您要填写用户数据的表单中,使用
<input type="text" value="<?php echo $_SESSION['firstname'];?>">`