dongman2721 2014-03-19 14:33
浏览 72
已采纳

使用phpmyadmin和SQL登录功能

So i've made this login function using PHP and im having trouble asking a question correctly to the phpmyadmin database, basically the question i ask now is "SELECT * FROM User" which only lets the first registered user in the database login.

The question i really want to ask is something like this: fetch the column where the username thats being inputed matches with the column.

This is my take on it:

 "SELECT * FROM User WHERE username = '$_post['username_input']'"

but i just get error message.

How should i ask this question? thanks for the help in advance!

<form method='post'>
    <table>
        <tr><td></td><td><input type='text' name='username_input' /></td></tr>
        <tr><td></td><td><input type='text' name='password_input' /></td></tr>
        <tr><td></td><td><input type='submit' name='submit' value='Logga in' /></td></tr>
    </table>
<form>

<?php
    $link = mysqli_connect ("localhost", "xxxxxxxx", "xxxxxxx", "xxxxxxx");
    $sql_result = $link->query ("SELECT * FROM User");
    $rad = mysqli_fetch_array ($sql_result); 

    $columnuser = $rad['username'];
    $columnpassword = $rad['password'];

    if (isset($_POST['submit'])) {
        if ($_POST['username_input'] == $columnuser && md5 ($_POST['password_input']) == $columnpassword) {
            $_SESSION['log_in'] = true;
            header("Location: administration.php");
        }
        else {
            echo "Fel användarnamn eller lösenord, vänligen försök igen.";
        }
    }
    mysqli_close ($link);
?>
  • 写回答

3条回答 默认 最新

  • doubianyu7844 2014-03-19 14:45
    关注

    What I am thinking you are making mistake in query is concatenation of variable and $_POST is array which is capitalized

    "SELECT * FROM User WHERE username = '".$_POST['username_input']."' "
    

    I hope this solves your problem.

    Edit: The error you might be getting because code runs always, you should have condition in starting as

    <?php
        if (isset($_POST['submit'])) {    
            $link = mysqli_connect ("localhost", "xxxxxxxx", "xxxxxxx", "xxxxxxx");
            $sql_result = $link->query ("SELECT * FROM User WHERE username = '".$_POST['username_input']."' ");
            $rad = mysqli_fetch_array ($sql_result); 
    
            $columnuser = $rad['username'];
            $columnpassword = $rad['password'];
    
    
            if ($_POST['username_input'] == $columnuser && md5 ($_POST['password_input']) == $columnpassword) {
                 $_SESSION['log_in'] = true;
                 header("Location: administration.php");
            }
            else {
                echo "Fel användarnamn eller lösenord, vänligen försök igen.";
            }
            mysqli_close ($link);
        }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站