无法访问或分配登录用户名变量 - mysql - php
Cannot access or assign login username variable - mysql - php
我找不到访问我在 php 网络表单上登录时使用的用户名的方法。
我看过这些帖子,但我认为我的情况略有不同,因为它们都在顶部声明了用户名变量。我只是使用 sql 查询登录。
这是登录脚本
<?php
$uname=$_POST['uname'];
$password=$_POST['password'];
session_start();
$con=mysqli_connect("localhost","root","g7trj98o6fyr5","login");//mysqli("localhost","username of database","password of database","database name")
$result=mysqli_query($con,"SELECT * FROM `login_info` WHERE `uname`='$uname' && `password`='$password'");
$count=mysqli_num_rows($result);
if($count==1)
{
echo "Login success";
$_SESSION['log']=1;
header("refresh:2;url=welcome.php");
}
else
{
echo "please fill proper details";
header("refresh:2;url=index.php");
}
?>
我希望能够使用当前登录的用户进行 if 检查,以将他们与所有其他在线用户区分开来。
我有这个 if 检查应该只将编辑按钮放在登录用户旁边。
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['uname'] . "</td>";
echo "<td>" . $row['clickrate'] . "</td>";
if($logedInUsername == $row['uname'])
echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";
else
echo "<td>" . $row['yourword'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
welcome.php(if 语句所在的位置)
<?php
function add_ant(&$connection)
{
mysqli_query($connection, "UPDATE `login_info` SET `clickrate`=`clickrate`+'1' WHERE `uname`='rvbvakama' && `password`='pass'");
}
session_start();
if(isset($_SESSION['log']))
{
$_SESSION['uname'] = $_POST['uname'];
echo "<script type='text/javascript'>alert('$logedInUsername');</script>";
$con=mysqli_connect("localhost","root","pass","login"); //mysqli("localhost","username of database","password of database","database name")
if(array_key_exists('add',$_POST))
{
add_ant($con);
}
$result = mysqli_query($con,"SELECT * FROM login_info");
if (!$result)
{
printf("Error: %s\n", mysqli_error($con));
exit();
}
echo "<table border='1'>
<tr>
<th>username</th>
<th>clickrate</th>
<th>yourword</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['uname'] . "</td>";
echo "<td>" . $row['clickrate'] . "</td>";
if($logedInUsername == $_SESSION['uname'])
echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";
else
echo "<td>" . $row['yourword'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Add ants</h1>
<button type='button' name="add">ADD</button> <br/> <br/>
<a href="index.php" >logout</a>
</body>
</html>
<?php
}
else
{
echo "please fill proper details";
header("refresh:2;url=index.php");
}
?>
谢谢。
不安全,但放:
<?php
$uname=$_POST['uname'];
$password=$_POST['password'];
session_start();
$con=mysqli_connect("localhost","root","g7trj98o6fyr5","login");//mysqli("localhost","username of database","password of database","database name")
$result=mysqli_query($con,"SELECT * FROM `login_info` WHERE `uname`='$uname' && `password`='$password'");
$count=mysqli_num_rows($result);
if($count==1)
{
echo "Login success";
$_SESSION['log']=1;
$_SESSION['uname'] = $_POST['uname'];
header("refresh:2;url=welcome.php");
}
else
{
echo "please fill proper details";
header("refresh:2;url=index.php");
}
?>
然后检查:
if($logedInUsername == $_SESSION['uname'])
...
您还需要在 welcome.php 中将 $logedInUsername 设置为 $row['uname']
或检查
if($row['uname'] == $_SESSION['uname'])
在login.php登录成功后执行这个
$_SESSION['uname'] = $_POST['uname'];
在welcome.php中执行这个
$logedInUsername = $_SESSION['uname'];
现在登录的用户名存储在$logedInUsername
中供welcome.php使用,这是因为SESSION在php中是一个全局变量,可以从任何地方访问。
while 循环和其中的 if 语句现在应该如下所示:
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['uname'] . "</td>";
echo "<td>" . $row['clickrate'] . "</td>";
if($row['uname'] == $logedInUsername)
echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";
else
echo "<td>" . $row['yourword'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
我找不到访问我在 php 网络表单上登录时使用的用户名的方法。
我看过这些帖子,但我认为我的情况略有不同,因为它们都在顶部声明了用户名变量。我只是使用 sql 查询登录。
这是登录脚本
<?php
$uname=$_POST['uname'];
$password=$_POST['password'];
session_start();
$con=mysqli_connect("localhost","root","g7trj98o6fyr5","login");//mysqli("localhost","username of database","password of database","database name")
$result=mysqli_query($con,"SELECT * FROM `login_info` WHERE `uname`='$uname' && `password`='$password'");
$count=mysqli_num_rows($result);
if($count==1)
{
echo "Login success";
$_SESSION['log']=1;
header("refresh:2;url=welcome.php");
}
else
{
echo "please fill proper details";
header("refresh:2;url=index.php");
}
?>
我希望能够使用当前登录的用户进行 if 检查,以将他们与所有其他在线用户区分开来。
我有这个 if 检查应该只将编辑按钮放在登录用户旁边。
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['uname'] . "</td>";
echo "<td>" . $row['clickrate'] . "</td>";
if($logedInUsername == $row['uname'])
echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";
else
echo "<td>" . $row['yourword'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
welcome.php(if 语句所在的位置)
<?php
function add_ant(&$connection)
{
mysqli_query($connection, "UPDATE `login_info` SET `clickrate`=`clickrate`+'1' WHERE `uname`='rvbvakama' && `password`='pass'");
}
session_start();
if(isset($_SESSION['log']))
{
$_SESSION['uname'] = $_POST['uname'];
echo "<script type='text/javascript'>alert('$logedInUsername');</script>";
$con=mysqli_connect("localhost","root","pass","login"); //mysqli("localhost","username of database","password of database","database name")
if(array_key_exists('add',$_POST))
{
add_ant($con);
}
$result = mysqli_query($con,"SELECT * FROM login_info");
if (!$result)
{
printf("Error: %s\n", mysqli_error($con));
exit();
}
echo "<table border='1'>
<tr>
<th>username</th>
<th>clickrate</th>
<th>yourword</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['uname'] . "</td>";
echo "<td>" . $row['clickrate'] . "</td>";
if($logedInUsername == $_SESSION['uname'])
echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";
else
echo "<td>" . $row['yourword'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Add ants</h1>
<button type='button' name="add">ADD</button> <br/> <br/>
<a href="index.php" >logout</a>
</body>
</html>
<?php
}
else
{
echo "please fill proper details";
header("refresh:2;url=index.php");
}
?>
谢谢。
不安全,但放:
<?php
$uname=$_POST['uname'];
$password=$_POST['password'];
session_start();
$con=mysqli_connect("localhost","root","g7trj98o6fyr5","login");//mysqli("localhost","username of database","password of database","database name")
$result=mysqli_query($con,"SELECT * FROM `login_info` WHERE `uname`='$uname' && `password`='$password'");
$count=mysqli_num_rows($result);
if($count==1)
{
echo "Login success";
$_SESSION['log']=1;
$_SESSION['uname'] = $_POST['uname'];
header("refresh:2;url=welcome.php");
}
else
{
echo "please fill proper details";
header("refresh:2;url=index.php");
}
?>
然后检查:
if($logedInUsername == $_SESSION['uname'])
...
您还需要在 welcome.php 中将 $logedInUsername 设置为 $row['uname'] 或检查
if($row['uname'] == $_SESSION['uname'])
在login.php登录成功后执行这个
$_SESSION['uname'] = $_POST['uname'];
在welcome.php中执行这个
$logedInUsername = $_SESSION['uname'];
现在登录的用户名存储在$logedInUsername
中供welcome.php使用,这是因为SESSION在php中是一个全局变量,可以从任何地方访问。
while 循环和其中的 if 语句现在应该如下所示:
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['uname'] . "</td>";
echo "<td>" . $row['clickrate'] . "</td>";
if($row['uname'] == $logedInUsername)
echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";
else
echo "<td>" . $row['yourword'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>