代码的要点是编辑特定用户,该用户由按下了哪个编辑按钮确定。
我收到以下错误:
未定义的变量:第15行的EditUser.php中的user_id。
这不是未定义的变量问题。如果我在调用函数时删除了$ user_id,它会抱怨函数调用没有参数。
我只想要返回该功能,但它并不想被调用。
EditUser.php:
<?php
session_start();
include_once 'Functions.php';
$user = new User();
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
if (isset($_SESSION['EditUser']))
{
$result = User::Edit_User($user_id); //The line which gives me the error
while(list($user_id, $username, $password, $emailadres, $admin) = mysql_fetch_array($result ))
{
$urid = $user_id;
$urnm = $username;
$pw = $password;
$eml = $emailadres;
$an = $admin;
echo "It worked"; //Just aline for debugging. Will remove later
}
}
else
{
echo "error";
}
?>
<form method="post" action="EditUserDef.php">
user_id: </br>
<input readonly="readonly" name="user_id" value=<?php echo $urid ?>></br>
username: </br>
<input type="input" name="username" value=<?php echo $urnm ?>></br>
password: </br>
<input type="input" name="password" value=<?php echo $pw ?>></br>
emailadres: </br>
<input type="input" name="emailadres" value=<?php echo $eml ?>></br>
admin: </br>
<input type="input" name="admin" value=<?php echo $an ?>></br>
<input type="submit" name = "submit" value="edit data">
<input type="button" value="back" onClick="history.go(-1);return true;"></br>
</br>
</form>
</body>
</html>
包含类和函数的文件,Functions.php:
<?php
include_once 'Config.php'; //Class to connect with database, not really important for this question
class User
{
public function Edit_User($user_id)
{
$query = mysql_query("SELECT * FROM useraccounts WHERE user_id = '$user_id'");
$rows = mysql_num_rows($query);
if (!$rows == 0)
{
$_SESSION['EditUser'] = true;
return $query;
}
}
public function Edit_DataSession()
{
return (isset($_SESSION['EditUser']));
}
并且最后一个文件来自&#34; user_id&#34;发送到Functions.php,Administration.php:
<?php
session_start();
include_once 'Functions.php';
$user= new User();
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$user_id = $_POST['hidden'];
$editing = $user->Edit_User($user_id);
if ($editing)
{
header("location:EditUser.php");
}
else
{
echo 'User doesn't exist anymore';
}
}
?>
<html>
<header>
<style>
table, td, th
{
border-style: solid;
border-width: 3px;
border-color: black;
}
</style>
</header>
<body>
<h1>overzicht gebruikers</h1>
<table border = 1>
<tr>
<td>user_id</td>
<td>username</td>
<td>password</td>
<td>emailadres</td>
<td>admin</td>
</tr>
<?php
if (isset($_SESSION['GetUser'])) //function not included in the code of the question, didn't seem necesarry
{
$result = user::get_user();
while(list($user_id, $username, $password, $emailadres, $admin) = mysql_fetch_array($resultaat))
{
echo "<tr><td>$user_id</td>";
echo "<td>$username</td>";
echo "<td>$password</td>";
echo "<td>$emailadres</td>";
echo "<td>$admin</td>";
echo "<td><form action='EditUser.php' method='post'><input type='hidden' name='hidden' value=$user_id><input type='submit' name='edit' value='edit'></form></td>";
echo "<td><form action='DeleteUser.php' method='post'><input type='hidden' name='hidden' value=$user_id><input type='submit' name='delete' value='delete'></form></td></tr>";
}
}
?>
</body>
</html>
有谁知道如何解决这个问题?
答案 0 :(得分:0)
嗯,是的。错误消息很好地告诉你错误:这不是未定义的变量问题。
未定义的变量:第15行的EditUser.php中的user_id
让我们看一下第15行:
$result = User::Edit_User($user_id);
您尝试使用名为$user_id
的变量。在那条线上方,我不会在任何地方看到变量定义。您定义了一个名为$user
的变量:
$user = new User();
但是你在哪里定义一个名为$user_id
的变量?根据您的代码,并根据PHP运行时,您不会。因此错误。
您确实在完全不同的页面上定义了一个类似命名的变量,但变量不会在页面上下文中持续存在。您需要在每个要使用它的页面请求中重新定义它。
您需要先定义变量才能使用它们。也许您打算使用$user
而不是$user_id
的成员?也许你打算使用$user
本身?代码不能知道你的意思,你必须明确定义。