登录系统不想登录网页

时间:2014-01-10 14:11:06

标签: php sql session login

我为我的网页创建了一个登录系统。 在localhost上,当我输入我的用户名和密码并单击登录时,它可以工作。 当我在现场网站上这样做时,没有任何事情发生。

这是我的代码:

<?php

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

$password=$_POST['password'];
$username=$_POST['username'];
$password_hash=md5($password);

if(!empty($username) && !empty($password)){
$query= "SELECT id FROM studenti WHERE username='".mysql_real_escape_string($username)."' AND password='".mysql_real_escape_string($password_hash)."'";
if($query_run=mysql_query($query)){
$query_num = mysql_num_rows($query_run);

if($query_num==0){

echo '<div class="text1">Pogresan Username/Password</div>';

}else if ($query_num==1){

$user_id=mysql_result($query_run,0, 'id');
$_SESSION['user_id']=$user_id;
header('Location : index.php');

}
}
}else{
echo '<div class="text2">Morate upisati Username i  Password</div>';

}
}

?>

在这里你可以试试EXAMPLE注册工作正常,所有用户都在数据库中,而且我在datebase中的密码字段是35个字符长...(md5)。我没有看到问题在哪里..

这是注册码:

<?php
require 'core.php';
require 'connectdb.php';

if(!loggedin()){

if(
    isset($_POST['password']) && isset($_POST['password_again'])&& isset($_POST['username'])&& isset($_POST['ime'])&& isset($_POST['prezime'])){

$password=$_POST['password'];
$password_again=$_POST['password_again'];
$username=$_POST['username'];
$ime=$_POST['ime'];
$prezime=$_POST['prezime'];
$password_hash=md5($password);

if(!empty($password) && !empty($password_again)&& !empty($username)&& !empty($ime)&& !empty($prezime)){

if($password!=$password_again){

echo '<div class="text2">Passwordi se ne poklapaju :)</div>';

}else{

$query="SELECT username FROM studenti WHERE username='$username'";
$query_run = mysql_query($query);

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

echo '<div class="text2">Korisnicko ime'.' '.$username.' '.'vec postoji</div>';
}else{
$query="INSERT INTO studenti VALUES ('','".mysql_real_escape_string($username)."','".mysql_real_escape_string($password_hash)."','".mysql_real_escape_string($ime)."','".mysql_real_escape_string($prezime)."')";
if($query_run=mysql_query($query)){

header('Location: uspjeh.php');

}else{
    echo '<div class="text2">Dogodila se greska, probaj kasnije!</div>';
}
}
}
}else{

    echo '<div class="text4">Popuni sva polja</div>';
}
}
    ?>

以下是pastebin中的所有代码 我的服务器使用PHP版本5.3.26,所以我不需要使用mysqli_connect();

1 个答案:

答案 0 :(得分:0)

您在第一个文件中缺少connectdb.php(require / include)!也许你没有数据库连接。

您必须在使用session_start()变量的每个文件的开头设置$_SESSION[]

你应该切换到mysqliPDO,因为不推荐使用mysql,并且会在较新版本的PHP中将其删除。

使用mysql_real_escape_string(),您只能获得基本安全保障。请查看prepared statements (mysqli) / prepared statements (PDO)

您必须在每个查询中转义值,包括“SELECT”。 (例如$username