【问题标题】:need assistance adding an "edit profile" page to my project on a small social network website在一个小型社交网络网站上向我的项目添加“编辑个人资料”页面需要帮助
【发布时间】:2019-04-11 16:03:56
【问题描述】:

我有一个项目,所以建立了一个小型社交网络网站。注册表单可以使用用户名,但是当我为名字和姓氏添加区域时,它不起作用。 我不知道如何添加“编辑个人资料”页面,用户可以在其中添加个人资料照片和带有基本信息的简历。下面是我在尝试添加不起作用的名字和姓氏时使用的文件。

if (isset($_POST['reg_user'])) {


$username = mysqli_real_escape_string($db, $_POST['username']);
$firstname = mysqli_real_escape_string($db, $_POST['firstname']);
$lastname = mysqli_real_escape_string($db, $_POST['lastname']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
$password_2 = mysqli_real_escape_string($db, $_POST['password_2']);


if (empty($username)) { array_push($errors, "Username is required"); }
if (empty($email)) { array_push($errors, "Email is required"); }
if (empty($password_1)) { array_push($errors, "Password is required"); }
if ($password_1 != $password_2) {
array_push($errors, "The two passwords do not match");
}


$user_check_query = "SELECT * FROM clients WHERE username='$username' OR 
email='$email' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);

if ($user) { // if user exists
if ($user['username'] === $username) {
  array_push($errors, "Username already exists");
}

if ($user['email'] === $email) {
  array_push($errors, "email already exists");
}
}

if (count($errors) == 0) {
$password = md5($password_1);

$query = "INSERT INTO clients (username, firsname, lastname, email, 
password) 
          VALUES('$username', '$firstname', '$lastname' '$email', 
'$password')";

mysqli_query($db, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "You are now logged in";
header('location: indexclient.php');
}
}

【问题讨论】:

  • “那不起作用”是什么意思?你有任何错误吗?你会得到意想不到的结果吗?请在您的问题中添加更多信息。
  • 没有错误,只是没有向数据库添加任何内容。
  • 您确定您的代码能达到所需的查询吗?你有没有在$password = md5($password_1);之后尝试过echo 'Right before the query executes'; exit();之类的东西?
  • 我让它工作了!基本上我只是重写了所有内容,并且成功了。

标签: php mysql forms registration


【解决方案1】:

我仍然不能 100% 理解问题,但我确实在您的 INSERT 查询中发现了一个错误。你需要在'$lastname'之后添加一个分号

所以这个:

$query = "INSERT INTO clients (username, firsname, lastname, email, 
password) 
          VALUES('$username', '$firstname', '$lastname' '$email', 
'$password')";

需要:

$query = "INSERT INTO clients (username, firsname, lastname, email, 
password) 
          VALUES('$username', '$firstname', '$lastname', '$email', 
'$password')";

顺便说一句,您的查询打开了 SQL 注入,how to prevent SQL injection

【讨论】:

  • 谢谢!我添加了分号。它仍然没有向数据库添加任何内容。它没有显示任何错误或任何东西。它只是不会添加任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多