Я создаю фиктивное приложение для основных целей обучения PHP. Теперь мое приложение регистрирует пользователя в учетной записи, где пользователь может делать несколько вещей, таких как поисковые продукты и т. Д. Одна из функций, которую пользователь может сделать, - это Измените данные учетной записи, и здесь все пойдет не так. Отображаемых ошибок нет, но когда я отправляю запрос, нажмите кнопку «Изменить учетную запись», чтобы все симы работали, но когда я проверю базу данных, я узнаю, что ничего не изменилось ...PHP update table
Я также осведомлен о проблемах безопасности жгутов коды, но атм я хочу установить базовую функциональность
userEditAccount.php:
<?php
session_start();
include('connect_mysql.php');
if(isset($_POST['Edit Account']))
{
$usernameNew = stripslashes(mysql_real_escape_string($_POST["username"]));
$passwordNew = stripslashes(mysql_real_escape_string($_POST["password"]));
$first_nameNew = stripslashes(mysql_real_escape_string($_POST["first_name"]));
$last_nameNew = stripslashes(mysql_real_escape_string($_POST["last_name"]));
$emailNew = stripslashes(mysql_real_escape_string($_POST["email"]));
$dbusername = $_SESSION['username'];
$editQuery = mysql_query("UPDATE users SET user_id='NULL' username='$usernameNew', password='$passwordNew', first_name='$first_nameNew', last_name='$last_nameNew' , email='$emailNew' WHERE username='$edit'");
if(!$editQuery)
{
echo mysql_error($editQuery);
die($editQuery);
}
}
?>
<html>
<head>
<title>Edit Account</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<header><h1>E-Shop</h1></header>
<article>
<h1>Welcome</h1>
<h1>Edit Account</h1>
<div id="login">
<ul id="login">
<form method="post" name="editAccount" action="userEditAccount.php" >
<fieldset>
<legend>Fill in the form</legend>
<label>Select Username : <input type="text" name="username" /></label>
<label>Password : <input type="password" name="password" /></label>
<label>Enter First Name : <input type="text" name="first_name" /></label>
<label>Enter Last Name : <input type="text" name="last_name" /></label>
<label>Enter E-mail Address: <input type="text" name="email" /></label>
</fieldset>
<br />
<input type="submit" value="Edit Account" class="button">
</form>
</div>
<form action="userhome.php" method="post">
<div id="login">
<ul id="login">
<li>
<input type="submit" value="back" onclick="index.php" class="button">
</li>
</ul>
</div>
</article>
<aside>
</aside>
<div id="footer">Text</div>
</div>
</body>
</html>
Я также будет включать login.php:
<?php
session_start();
require('connect_mysql.php');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$username = $_POST["username"];
$password = $_POST["password"];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$query = mysql_query("SELECT * FROM users WHERE Username='$username' AND Password='$password'");
$numrow = mysql_num_rows($query);
if($username && $password){
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrow = mysql_num_rows($query);
if($numrow !=0){
while($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if($username == $dbusername && $password == $dbpassword){
$_SESSION['username'] == $dbusername;
header("Location: userhome.php");
}
else{
echo "Incorect password";
}
}
else{
die("This user dosent exists");
}
}
else{
$reg = die("Please enter username and password");
}
}
?>
В моем собственном решении проблема лежит где-то на СЕССИИ или, возможно, в запросе, но я прошел через множество разных ресурсов, и это не должно быть проблемой ... Возможно, мне не хватает чего-то очень фундаментального или ошибки LAME: D
Почему вы избегаете своих строк, а затем удаляете косые черты? В любом случае вы не должны использовать расширение mysql_ *. Используйте PDO или Mysqli вместо http://www.php.net/manual/en/mysqlinfo.api.choosing.php – Tchoupi
Где ваш 'userEditAccount.php'? Форма отправляется туда, но вы ее не публиковали. –
Если вы только учитесь, научитесь использовать подготовленные инструкции с расширениями MySQLi или PDO, а не изучать неверные методы с устаревшим расширением MySQL –