我究竟做错了什么? (PHP + Mysql会话)

时间:2014-04-02 17:08:22

标签: php mysql function error-handling

我们制作了一个登录表单,但首先,它没有给出会话,我们修复了它,但现在页面没有加载..脚本有什么问题? 它将成为我们必须向用户提供不同会话的网站。

我不知道出了什么问题......

[编辑] 我错过了一个' ='来自if段,但现在它不会给会话..

    if(isset($_POST['belepes'])) {
        if($_POST['username'] && $_POST['jelszo']) {


            $jelszo = $_POST['jelszo']; //jelszo means password
            $name = $_POST['username'];
            $jelszo = sha1($jelszo);


            $kereses = mysql_query("SELECT * FROM `mql_users` WHERE `username`='".mysql_real_escape_string($name)."' AND `password`='".$jelszo."'") or die(mysql_error());

            if (mysql_num_rows($kereses) = 1) {

                $ker = mysql_fetch_assoc($kereses);

                $_SESSION['atmeneti']['id'] = $ker['id'];
                $_SESSION['atmeneti']['username'] = $ker['username'];
                header("Location:index.php");
                mysql_query("UPDATE `mql_users` SET `ip`='".$_SERVER['REMOTE_ADDR']."' WHERE `id`='".$ker['id']."'") or die(mysql_error());
            } else { ?>
                <div>Ez nem jött össze...</div>

            <?php
            }

        } else { ?>
            <div>Talán ha minden adatot kitöltenél be is engedne...</div>
        <?php
        }
        }

?>  
      <form action="?p=login" method="post"> // index.php with a $_GET['p'] include. It will redirect to pages/login.php
        <center><h2>Bejelentkezés</h2></center>
        <p>Felhasználó: </p><input type="text" name="username" placeholder="Felhasználó">
        <p>Jelszó: </p><input type="password" name="jelszo" placeholder="Jelszó">

<br />
        <input name="belepes" type="submit" value="Login">
      </form>

1 个答案:

答案 0 :(得分:4)

if (mysql_num_rows($kereses) = 1) {

应该是

if (mysql_num_rows($kereses) == 1) {

您正在进行作业而非比较。这就是你的代码的问题。

更多错误

  • 好像你在代码上忘记了session_start();
  • 此外,您不能在header("location:$url)之后拥有代码;您需要在此函数之前移动UPDATE语句,并在标题函数之后添加exit;

mysql_*)扩展程序自PHP 5.5.0起已弃用,将来会被删除。相反,应使用MySQLiPDO_MySQL扩展名。切换到Prepared Statements甚至可以更好地抵御SQL注入攻击!