2012-11-08 4 views
0

PHP는 내 것이 아니지만 간단한 로그인 영역을 설정해야합니다. 그래서 여기 있습니다. 내가 찾은 코드 중 일부는 작동하지만 리디렉션되지는 않습니다.헤더 위치 코드가 작동하지 않음 - 제안 사항?

리디렉션을 에코로 변경하면 작동합니다. 대신 "포함"위치를 변경하면 작동합니다. "location"코드에서 내가 뭘 잘못하고 있니?

번갈아 코딩하는 것에 대한 제안이 열려 있습니다. 사용자가 암호를 입력하면 사이트에 추가 섹션이 표시된다는 단일 웹 페이지가 있습니다. 따라서이 사이트에이 코드를 제출하는 양식이 있고 이제 새 섹션이 다시 표시되도록 리디렉션해야합니다.

여기되지 않습니다 내 code--

<?php 

// error reporting 
ini_set('display_errors',1); 
error_reporting(E_ALL); 

$host="localhost"; // Host name 
$username="foo"; // Mysql username 
$password="foo"; // Mysql password 
$db_name="foo"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection (more detail about MySQL injection) 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

// If result matched $myusername and $mypassword, table row must be 1 row 
if($count==1){ 
header("Location: http://www.google.com/"); 

// Register $myusername, $mypassword 
// success 
//session_register("myusername"); 
//session_register("mypassword"); 
} 
else { 
echo "Wrong Username or Password"; 
} 

?> 
+2

어디에서 세션을 시작합니까 (session_start()를 호출합니까)? –

+1

스크립트 상단에'ini_set ('error_reporting', E_ALL);을 추가하고 오류 메시지가 나타나는지 확인하십시오. – air4x

+0

OK -이 코드 조각을 첫 번째

답변

1

session_register입니다. 따라서 오류보고가 켜져있는 출력을 이미 보았습니다. 앞에 출력 할 내용이 없습니다. header

+0

그래서 session_register를 주석 처리하면 "myusername") 및 session_register ("mypassword") : 동일한 결과가 나타납니다. 코드에서이 위치로 이동해야합니까? 필요하다고 가정합니다. –

+0

업데이트를 반영하도록 위 코드를 수정했습니다. 여전히 "헤더"에 오류가 발생했습니다 ... 흠 .. –

+0

이 온라인 상태입니까? 라인 번호와 그 행이 무엇인지 말씀 해주십시오 – itachi

1

헤더가 이미 보내 졌으므로 사용하려는 헤더가 무효화됩니다 (PHP가 일반적으로 문제라고 말하지만).

헤더가 자동으로 전송되게하는 원인은 양식 HTML이이 블록 위에 존재하는 것처럼 PHP 블록 외부의 정상 출력입니다.

+0

이것을 이해하려고 노력하고 있습니다. 따라서 양식 작업이있는 index.html 페이지에 양식이 있습니다. 이 코드 (checklogin.php)로 간다.이 오류는 내가 받고 있지만이 모든 것들을 주석으로 처리하여 헤더가 전송되는 위치를 알 수 없다. –

0

문제는 제 코드에서 공백으로 보입니다. 모든 간격을 제거하면 문제가 사라졌습니다. 이상한 일의 종류 - 그러나 그것은 일어난 일입니다. 도움을 감사하십시오!

관련 문제