2014-09-10 2 views
0

간단한 로그인 양식을 만들려고합니다. 제출 버튼을 클릭 할 때마다 내 로그인 정보가 올바르지 않더라도 다른 페이지로 이동합니다. 여기 내 코드는, 아무도이 문제를 도와 줄래? 감사!PHP 로그인 양식이 제대로 작동하지 않습니다.

는 login.php

<?php 
session_start(); 
if(isset($_SESSION['username'])) { 
echo '<script type="text/javascript"> window.location="index2.php";</script>'; 
} 

if(isset($_POST['submit'])) { 
include('connection.php'); 

$user = mysql_real_escape_string($_POST['username']); 
$pass = md5($_POST['password']); 
if($user && $pass) { 
$sql="SELECT * FROM korisnici WHERE username = '" . $user . "' and password = '" . $pass . "'"; 
if (!$q=mysql_query($sql)) 
{ 
echo "<p>Error</p>" . mysql_query(); 
die(); 
} 
if (mysql_num_rows($q)==0) 
{ 
echo '<script type="text/javascript">alert("Username i password incorrect!");  window.location="login.php";</script>'; 
} 
else { 
$_SESSION['username'] = $_POST['username']; 

echo "<script language='javascript'>alert('everything works')</script>"; 
} 
} else { 
echo "<script language='javascript'>alert('Fill out both fields!')</script>"; 
} 
} 
?> 

<head> 
<?php require("connection.php") ?> 
</head> 
<body> 
<div id="wrapper"> 
<form action="login.php" method="POST"> 
Username: <input type="text" name="username"> 
Password:&nbsp <input type="password" name="password"> 
<input type="submit" id="submit" value="LOGIN" name="submit" class="button" /> 
</form> 
</div> 
</body> 
</html> 

는 connection.php

<?php 
$mysql_server = "localhost"; 
$mysql_user = "root"; 
$mysql_password = ""; 
$mysql_db = "comment"; 
if (!$db=mysql_connect($mysql_server, $mysql_user, $mysql_password)) { 
die ("<p>Failed to connect</p>"); 
} 
if (!mysql_select_db($mysql_db, $db)) 
{ 
die ("<p>Wrong database</p>"); 
} else { 
mysql_query("SET NAMES utf8"); 
mysql_query("SET CHARACTER SET utf8"); 
mysql_query("SET COLLATION_CONNECTION='utf8_unicode_ci'"); 
} 
?> 

index2.php은 - 당신이 당신의 질문에서 언급 한 바와 같이 단지 테스트는, index2.php 파일을

<p>Welcome</p> 
+1

분명한 질문은 폼의 작업 속성에 따라 폼을 보내는 곳인 index2.php (login.php 대신)라는 페이지의 첫 번째 부분에있는 코드입니까? – ArtisticPhoenix

+1

이것은 학습 목적을위한 것입니다. 그렇습니까? –

+0

@ Fred-ii- 믿을만하다. –

답변

0

를 작동하는 경우 샘플 HTML 텍스트 만 포함합니다. 이 파일에 action 속성이 설정되어 있으면이 양식의 모든 POST 값이이 스크립트로 전송되므로이 이유 때문에 데이터가 잘못되어도이 파일로 리디렉션 된 이유는 무엇입니까?

<form action="index2.php" method="POST"> 

나는 또한

if (false === ($db = mysql_connect($mysql_server, $mysql_user, $mysql_password))) { 
    die ("<p>Failed to connect</p>"); 
} 

이 또한 변경

if (!$db=mysql_connect($mysql_server, $mysql_user, $mysql_password)) { 
    die ("<p>Failed to connect</p>"); 
} 

에이 줄을 바꿀 것

<form action="" method="post"> 
+0

그 답을 쓴 후에 예. –

+0

그래, 고맙겠습니다.하지만 지금은 데이터베이스에있는 사용자를 입력 할 때 잘못된 사용자를 입력했기 때문에 데이터베이스 연결이 잘못된 것으로 보입니다. – user3734349

+0

@ user3734349 아니요, 성공하지 못했기 때문에 리디렉션이 필요하지 않으므로 자바 스크립트를 사용하지 마십시오./로그인 페이지를 새로 고침하는 경우에만이 리디렉션이 첫 번째 로그인에서 작동하지 않습니다. –

0

이어야한다이 하나

if (!$q=mysql_query($sql)){ 


} 

난 정말이 테스트를하지 않은하지만 당신은 수 있습니다

if (false === ($q = mysql_query($sql))){ 
    ... 

에 '모호하게'가능하지 $q이 동일 PHP를 이야기하지 못했습니다 거기 !와 변수 $q 쿼리 결과를. 그 거짓이 if 문

 $q=mysql_query($sql); 
    if($q) ... etc. 

에서 분리이라면 당신이 $q 다음 테스트를 할당하는 것이 분명하기 때문에 위 넣어처럼 난 항상 (AN 경우 내 인라인 할당)을 할이 다음 var_export($q)을 테스트하려면 그것.

관련 문제