2016-07-26 21 views
-1

2つの異なるページにつながるログインポータルを作成しようとしていますが、ログインしているユーザーに応じて接続が行われる必要があります。限り、それはデータベース内にある、それはコードに書かれた最後の場所につながるとして、私が間違って何ができるか分からない、入力された:2つの異なるページに2人の異なるユーザーにつながる1回のログイン

<?php 
// connection to host and database 
$host="localhost"; 
$username="dbusername"; 
$password="dbpass"; 
$db_name="dbname"; 
$tbl_name="members"; 

// connection 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

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

//escape strings and stripslashes 
$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); 

//to count tables 
$count=mysql_num_rows($result); 

// **no matter the user it logs in, they will land in page2.php** 
if($count==1){ 
    ($myusername == 'user1'){ 
     header('location:page1.php'); 
} 
elseif($myusername == 'user2'){ 
    header('location:page2.php'); 
} 
else { 
    echo "wrong username or password"; 
} 

に行くもう一つは、私はどちらかに安全に接続できないということですpage1.phpまたはpage2.phpからsession_start();までは、ページを入力するためにログインする必要はないので、リンクを知る必要があります。これは、htmlの開始前にpage1.phpの先頭に書いています。

<?php 
session_start(); 
if(!$myusername == 'user1'){ 
    header("location:main_login.php"); 
} 
?> 

フィードバックは高く評価されます。ありがとう。

+0

if($ count == 1)の後にエラーがあります。 – Dave

+0

あなたが書いた条件($ myusername == 'user1')をまず修正してください..セッションが正しく入力された後にページにアクセスするために.. – sAcH

答えて

0

我々はコードの良いインデント奨励理由:page1.phpで

if($count==1) 
{ 
if ($myusername == 'user1') // you forgot an if here 
{ 
    header('location:page1.php'); 
} 
else if ($myusername == 'user2') 
{ 
    header('location:page2.php'); 
} 
else 
{ 
    echo "wrong username or password"; 
} 
}//another closing bracket here 
0

を、どのように$myusername変数を初期化しますか?

まず、基本的なログインの例を試してください。それはあなたの次のようですthisしかし、私は信じて

a。その例は悪いです。

b。あなたは、その背後にあるロジックを理解することなく、コードを編集します。

w3schoolまたはmanpageのセッション例をお読みください。

ログインページ

if (isset($_REQUEST["username"])) { 
    /* 
    usename & password verification here 
    you need to set $_SESSION["username"] in this code 
    */ 

    if ($_SESSION["username"] == "user1") { 
    header("Location: page1.php"); 
    } else if $_SESSION["username"] == "user2") { 
    header("Location: page2.php"); 
    } 
} else { 
    /* login form here */ 
} 

page1.php

if (!isset($_SESSION["username"])) { 
    header("Location: login.php"); 
} else { 
    /* content of page 1 here */ 
} 

page2.php

if (!isset($_SESSION["username"])) { 
    header("Location: login.php"); 
} else { 
    /* content of page 2 here */ 
} 
+0

を追加するのを忘れました。 'if(!_ $ myusernameあなたがpage1.phpのリンクを持っていれば、必要なログインなしでどこからでもアクセスすることができます。 –

0

解像度をカウントする必要はありませんあなたはスクリプトをリダイレクトする必要があるので、本当にうまくいきます。したがって、「ユーザー名」に応じて、特定のページ、またはエラーページにリダイレクトします。

switch ($myusername) { 

    case 'user1': 
     $redirectPage = 'page1.php'; 
     break; 

    case 'user2': 
     $redirectPage = 'page2.php'; 
     break; 

    default: 
     $redirectPage = 'error.php'; 
} 

header("Location: $redirectPage"); 
exit; 
+0

偉大な、これは各ユーザ名にリダイレクトされます。あなたがそのユーザーを知っていれば、パスワード以外のページは無関係になります。ユーザーがそれぞれのパスワードに一致させる方法で 'switch 'できますか? –

+0

そして、それぞれの'ページ 'は現在のユーザーがその特定のページ - またはリダイレクトします。 – MaggsWeb

関連する問題