2012-02-04 8 views
2

後、私はサブドメインを持っているリダイレクトPHPログイン

accounts.mysite.com私が欲しいもの

は、(その中にユーザーがログインが自分のページにそれらを指示し、その後後、そのサブドメインに1枚のログインパネルで、 「他のアカウント」ページの表示を停止します)。

したがって、ログインページであるaccounts.mysite.comにアクセスすると、ユーザーは特定の名前を使用してログインします。ログインが成功した後、アカウントページに誘導されますが、他のすべてのページはブロックされます。ここで

は、私がこれまで

<?php 
ob_start(); 
$host="localhost"; // Host name 
$username="******"; // Mysql username 
$password="*******"; // Mysql password 
$db_name="medpro_test"; // 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"); 

// Define $myusername and $mypassword 
$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){ 
// Register $myusername, $mypassword and redirect to file 
session_register("myusername"); 
session_register("mypassword"); 
header('Location: user.php?id=' . $_SESSION['user_id']); 
} 

else { 
$result = MYSQL_QUERY($sql) or die('Query failed: ' . mysql_error() . "<br />\n$sql"); 
echo "Wrong Username or Password"; 
} 

ob_end_flush(); 
?> 

任意の助けをいただければ幸いですので、私はnoobの午前持っているものです!これは、彼らが別のファイルを訪問しようと毎回user.phpするためにユーザーをリダイレクトします

<?php 
if (isset($_SESSION['user_id']) && $_SESSION['user_id']) { 
    header('Location: user.php?id=' . $_SESSION['user_id']); 
    exit; 
} 

+0

また、PHPフレームワークを使用してアプリケーション構造を手助けすることを検討しましたか? (これにはログイン/アカウントの種類も含まれます)。将来的にPHPフレームワークを使用することにした場合、一般的なPHPフレームワークのリストがあります:http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP – summea

+0

なぜ人々が 'mysql_ *'関数の使用法を学ぶのに気をつけているのか理解できません。 PDOの人々を学ぶ、それは良いです! –

答えて

0

のようなものが含まれているブロックすべきすべてのファイルの先頭にファイルをインクルードします。

編集:すべてのリクエストの冒頭にsession_start()を使用することを忘れないでください。

2

コードが悪く見えます。
session_register("myusername"); - この関数は、PHP 5.3.0以降では廃止されました。 データベース設定を別のファイルに移動します。リンクにユーザを移動させる

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

使用ヘッダ位置http://php.net/manual/en/function.header.php

+1

OPに公正を期すために、コードスニペットを最小限に抑えることが一般的です。私はむしろ別の設定でファイルの完全なセットを投稿し始めません。 –

2
  1. 現在のPHPブックを取り除き、少なくとも現世紀に出版された現代のものを見つける必要があります。
  2. 次に、セッションコードをmanual
  3. に書き換え、session_set_cookie_params()を使用してセッションドメインを設定します。