我们制作了一个登录表单,但首先,它没有给出会话,我们修复了它,但现在页面没有加载..脚本有什么问题? 它将成为我们必须向用户提供不同会话的网站。
我不知道出了什么问题......
[编辑] 我错过了一个' ='来自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>
答案 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
起已弃用,将来会被删除。相反,应使用MySQLi
或PDO_MySQL
扩展名。切换到Prepared Statements
甚至可以更好地抵御SQL注入攻击!