无法访问或分配登录用户名变量 - 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>";

收到一只叮咚
浏览 126回答 2
2回答

ABOUTYOU

不安全,但把:<?php$uname=$_POST['uname'];$password=$_POST['password'];&nbsp;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){&nbsp; &nbsp; echo "Login success";&nbsp; &nbsp; $_SESSION['log']=1;&nbsp; &nbsp; $_SESSION['uname'] = $_POST['uname'];&nbsp; &nbsp; header("refresh:2;url=welcome.php");}else{&nbsp; &nbsp; echo "please fill proper details";&nbsp; &nbsp; header("refresh:2;url=index.php");}?>然后检查:if($logedInUsername == $_SESSION['uname'])...您还需要在welcome.php 中将$logedInUsername 设置为$row['uname'] 或检查if($row['uname'] == $_SESSION['uname'])

PIPIONE

登录成功后在 login.php 中执行这个 $_SESSION['uname'] = $_POST['uname'];在welcome.php 中执行这个 $logedInUsername = $_SESSION['uname'];现在当前登录的用户名存储在$logedInUsernamewelcome.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)&nbsp; &nbsp; echo "<td>" . $row['yourword'] . "<a href='edityourword.php?edit=$row[yourword]'> edit</a></td>";else&nbsp; &nbsp; echo "<td>" . $row['yourword'] . "</td>";echo "</tr>";}echo "</table>";?>
打开App,查看更多内容
随时随地看视频慕课网APP