나는 웹 페이지라는 숙제를하고 있습니다. 사용자 이름 입력, 비밀번호 입력 및 로그인 버튼이있는 로그인 페이지로 색인 페이지를 만들었습니다.PHP 로그인 후 다음 페이지로 이동
버튼을 클릭하면 PHP 코드 (아래에 설명되어 있습니다)가 실행되었습니다. 로그인을 위해 MySQL을 사용합니다.
로그인 문제로 리디렉션이 발생했습니다. 입력 한 사용자 이름과 암호가 괜찮 으면 페이지는 다음 페이지로 이동해야합니다 (예 : 다음 페이지의 링크는 http://stackoverflow.com입니다). 내가 header("location: http://stackoverflow.com ");
를 사용
다음 페이지로 이동합니다,하지만 다음과 같은 오류 가지고 : 이미 ob_end_flush()
와 ob_start()
시도했습니다 Warning: Cannot modify header information - headers already sent by (output started at /users/kzr/www/index.php:60) in /users/kzr/www/index.php on line 14
을하지만, 상황을 변경하지 않았다 오류가 동일 .
아무도 나를이 코드 작업에 도움이 될 수 있습니까?
참고 : PHP 코드와 HTML 코드는 한 번에 하나의 파일에 있지만 분리되었습니다.
PHP 코드 : HTML 코드
if(isset($_POST["login"])){
$username=$_POST["username"];
$password=$_POST["password"];
$connect=mysql_connect("127.0.0.1","kzr_zetr","350adagsertesborda");
if($connect){
$db=mysql_select_db("kzr_zetr");
if($db){
$query=mysql_query("SELECT * FROM login WHERE username = '$username' AND password = '$password'");
$rowcount=mysql_num_rows($query);
if($rowcount>0){
$uri="http://kzr.bplaced.de/session/?username=".$username;
header('Location:'.$uri);
print 'sucess';
}else{
echo "<script type='text/javascript'>login_f_val_phperr();</script>";
print 'fail';
}
}
}
}
:
<!DOCTYPE html>
<html>
<head>
<title>Bejelentkezés | ZETR</title>
<meta charset="utf-8" />
<meta name="author" content="Kókai Z. Ronald" />
<meta name="contact" content="[email protected]" />
<meta name="description" content="(Konrad) Zuse Elektronikus Tanulmányi Rendszer" />
<meta name="keywords" content="konrad, zuse, konrad zuse, etr, rendszer, tanulmányi rendszer" />
<meta name="subject" content="Alkalmazott Informatika Házi Feladat Varga István Tanár Úrnak" />
<base href="http://kzr.bplaced.de" />
<link rel="stylesheet" type="text/css" href="/f/font/ubuntu/ubuntu.css" />
<link rel="stylesheet" type="text/css" href="/f/css/zetr.css" />
<link rel="stylesheet" type="text/css" href="/f/css/login.css" />
<link rel="shortcut icon" type="image/x-icon" href="/f/img/favicon.ico" />
<script type="text/javascript" src="/f/script/login-f.js"></script>
</head>
<body>
<div id="container">
<h1>Zuse</h1>
<h2>Elektronikus Tanulmányi Rendszer</h2>
<div id="loginbox">
<form name="login-f" action="" onsubmit="return login_f_val()" method="post">
<input type="text" name="username" id="username" placeholder="Felhasználónév" autocomplete="off" />
<input type="password" name="password" id="password" placeholder="Jelszó" />
<input type="submit" name="login" id="login" value="Bejelentkezés" />
</form>
</div>
</div>
</body>
</html>
1. 코드가 SQL 삽입에 매우 취약합니다. 'admin '-을 사용자 이름으로 사용해보십시오. 갑작스런 암호를 몰라도 관리자 (또는 다른 사용자)로 로그인했습니다. 2. mysql_을 사용하지 마십시오. 그들은 오랫동안 사용되지 않았습니다. 준비된 문과 바인드 변수를 사용하여 PDO 또는 MySQLi를 사용하십시오. 3. 데이터베이스에 일반 텍스트 암호를 사용하지 마십시오. 대신에'password_hash'를 사용하십시오 (do ** ** md5()도 사용하지 마십시오) – h2ooooooo
** 왜 당신은 Google 친구가 될 수 없습니까 ?? 동일한 오류에 대한 솔루션 100 개가 있습니다.>> http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php** – NoobEditor