2012-09-19 3 views
0

저는 웹 사이트의 관리자 부분을 가지고 있으며 관리자가 로그인하여 로그인 할 수있는 기능을 원합니다. 지금은 가입 양식을 작성 중입니다. 사용자 이름과 암호를 제출하면 웹 브라우저에 빈 화면이 표시되고 아무 것도 내 데이터베이스에 추가되지 않습니다. 여기 내 코드가있다. 왜 이런 일이 일어나고 작동하지 않는가?PHP 양식에 가입하고 데이터를 데이터베이스에 입력했습니다.

<? 
$con = mysql_connect("localhost", "root", ""); 
if(!$con) 
    { 
    die('Could not connect: ' .mysql_error()); 
    } 
mysql_select_db("bics_place", $con); 

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 
$encrypted_mypassword=md5($mypassword); 

$sql = "INSERT INTO admin 
      (username, password) 
      VALUES 
      ('myusername','encrypted_mypassword')"; 

if(!mysql_query($sql, $con)) 
    { 
    die('Error: ' .mysql_Error()); 
    } 
echo "1 record added"; 

mysql_close($con); 

?> 

답변

0

오류는 표시되지 않지만 SQL은 잘못된 이유는 확실하지 않습니다.

당신은이 :

$sql = "INSERT INTO admin (username, password) VALUES ('myusername','encrypted_mypassword')"; 

이되어야하는 : 당신은 당신의 변수 앞에 $을 놓치고

$sql = "INSERT INTO admin (username, password) VALUES ('$myusername','$encrypted_mypassword')"; 

.

1

코드를 로컬에서 테스트했는데 작동합니다. 확인해야 할 몇 가지 사항.

서버가 짧은 태그를 허용하도록 구성되지 않았을 수 있습니다. 1 호선의 '<?''<?php'으로 변경해보세요.

짧은 태그 (다른 태그를 사용하는 다른 사람의 코드로 작업하고 있음)를 사용해야하는 경우 허용하도록 php.ini 파일을 편집해야합니다. 나는 그것들이 호환성의 이유로 피하는 경향이있다.

short_open_tag=On 

는이 문제를 해결하려면 파일의 시작 부분에 error_reporting(E_ALL);를 추가하고 당신에게 오류를 표시해야하지 않나요. 코드가 작동하면 제거하십시오.

또한 $ sql 변수를 편집해야합니다. 변수 이름 앞에 $를 붙이십시오.

$sql = "INSERT INTO admin 
     (username, password) 
     VALUES 
     ('$myusername','$encrypted_mypassword')"; 

그렇지 않으면 서버 오류 로그에서 무엇을 말합니까?

관련 문제