2012-03-23 3 views
0

PhP 및 MySQL을 사용하여 로그인/등록 시스템을 만드는 방법에 대한 좋은 자습서를 찾았습니다. 포럼은 약 5 년 전 (작년에 편집 됨)이지만 여전히 유용 할 수 있습니다.PhP 로그인/등록 시스템

Beginner Simple Register-Login system

는 모두 로그인에 문제가 될 수 및 페이지를 등록하는 것 같다.

<?php 

function register_form(){ 

$date = date('D, M, Y'); 
echo "<form action='?act=register' method='post'>" 
."Username: <input type='text' name='username' size='30'><br>" 
."Password: <input type='password' name='password' size='30'><br>" 
."Confirm your password: <input type='password' name='password_conf' size='30'><br>" 
."Email: <input type='text' name='email' size='30'><br>" 
."<input type='hidden' name='date' value='$date'>" 
."<input type='submit' value='Register'>" 
."</form>"; 

} 

function register(){ 

$connect = mysql_connect("host", "username", "password"); 
if(!$connect){ 
die(mysql_error()); 
} 

$select_db = mysql_select_db("database", $connect); 
if(!$select_db){ 
die(mysql_error()); 
} 

$username = $_REQUEST['username']; 
$password = $_REQUEST['password']; 
$pass_conf = $_REQUEST['password_conf']; 
$email = $_REQUEST['email']; 
$date = $_REQUEST['date']; 


if(empty($username)){ 
die("Please enter your username!<br>"); 
} 

if(empty($password)){ 
die("Please enter your password!<br>"); 
} 

if(empty($pass_conf)){ 
die("Please confirm your password!<br>"); 
} 

if(empty($email)){ 
die("Please enter your email!"); 
} 


$user_check = mysql_query("SELECT username FROM users WHERE username='$username'"); 
$do_user_check = mysql_num_rows($user_check); 


$email_check = mysql_query("SELECT email FROM users WHERE email='$email'"); 
$do_email_check = mysql_num_rows($email_check); 


if($do_user_check > 0){ 
die("Username is already in use!<br>"); 
} 

if($do_email_check > 0){ 
die("Email is already in use!"); 
} 


if($password != $pass_conf){ 
die("Passwords don't match!"); 
} 


$insert = mysql_query("INSERT INTO users (username, password, email) VALUES  ('$username', '$password', '$email')"); 
if(!$insert){ 
die("There's little problem: ".mysql_error()); 
} 

echo $username.", you are now registered. Thank you!<br><a href=login.php>Login</a> |  <a href=index.php>Index</a>"; 

} 

switch($act){ 

default; 
register_form(); 
break; 

case "register"; 
register(); 
break; 

} 

?> 

일단 페이지가 아무것도하지 않는다 등록 버튼을 누르면 필드는 삭제하고 데이터가 주어진 데이터베이스 또는 오류 내부에 추가되지 않습니다. 나는 그것을 제거 할 수 있도록 문제가 switch($act){ 일부가 될 수 있음을 문질러서 및 사용하여 페이지를 바꾼 require

require('connect.php'); 
connect.php가로 선회 function register_form(){echo 부분을 제거

<?php 
mysql_connect("localhost","host","password"); 
mysql_select_db("database"); 
?> 

입니다

HTML 코드 :

<form action='register' method='post'> 
Username: <input type='text' name='username' size='30'><br> 
Password: <input type='password' name='password' size='30'><br> 
Confirm your password: <input type='password' name='password_conf' size='30'><br> 
Email: <input type='text' name='email' size='30'><br> 
<input type='hidden' name='date' value='$date'> 
<input type='submit' name="register" value='Register'> 
</form> 

function register(){if($register){

등록 단추를 누르면 PHP 코드가 실행되지만이 편집도 작동하지 않는 것 같습니다. 문제는 무엇이 될 수 있습니까? 필요한 경우 내 도메인에이 코드를 다시 추가 할 수 있습니다.

로그인 페이지에 동일한 문제가 있으며 입력란을 비우기 옆에있는 버튼을 누르면 아무 일도 발생하지 않습니다.

+0

양식 작업은 register가 아닌 register.php가되어야합니다.

+0

로그인 시스템을 찾는 사람에게주는주의 사항 : 게시 된 코드에는 많은 문제점이 있습니다. 고민하지 마세요. – outis

답변

0

신경 쓰지 마라. 비디오 데모와 함께 다른 튜토리얼을 발견했다. 매력처럼 작동합니다. My Page 로그인/등록 시스템을 추가했습니다.

Tutorial 누구나 필요할 경우. 답변 해 주셔서 감사합니다. 감사 드리며 +1 할 것입니다.

+1

이 자습서에서는 더 이상 사용되지 않는 mysql 확장을 사용합니다. 요즘에는 대신 mysqli 또는 PDO를 사용해야합니다. 두 가지 모두 이전 확장 프로그램에 비해 장점이 있으며, 그 중 가장 적은 것이 준비된 명령문입니다. – outis

1

$ _REQUEST 데이터를 반향하고 올바르게 잡혀 있는지 확인 했습니까?

+0

그들은 전혀 움켜 잡지 않는 것처럼 보입니다 ... 그냥 시도했습니다 – Marian

+0

그러면 등록 PHP 파일 링크가 잘못되었습니다 .. 먼저 .. register.php를 만든 다음 URL을 확인하십시오 –

1
<?php 
    if (!isset($_POST)) 
     register_form(); 
    else 
     register(); 

위의 코드로 스위치 부품을 변경하십시오.

+0

작동하지 않습니다, 똑같은 일 일어난다. 나는'action = "register.php"'로 바꾸거나'{}'사이에 상태를 놓으려고했다. – Marian

+0

statements * 죄송합니다. – Marian