2012-03-23 16 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; 

} 

?> 

は一度、ページが何もしない、登録ボタンを押したフィールドが消去され、データは特定のデータベースまたはエラーの内側に追加されません。 私はそれを削除し、connect.phpは

にそれを回す function register_form(){echo一部を削除
<?php 
mysql_connect("localhost","host","password"); 
mysql_select_db("database"); 
?> 

あるrequire

require('connect.php'); 

を使用してページを変更して、問題がswitch($act){一部である可能性がありますことを取り払わ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.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

ステートメント*申し訳ありません – Marian

関連する問題