2017-07-14 5 views
0

私は基本的なログインフォームと登録フォームを書いて、個人の詳細を含むデータベースに保存しました。filenameという名前の別の行も作成しました入力されたユーザ名.php誰かがJohnを入力した場合、ファイル名はjohn.phpとなり、ログインするたびにその特定のファイルにしか行きませんが、ログインフォームでファイル名を特定の変数に保存し、私は、ヘッダと試みた名前$ファイル名に格納されたファイルにリダイレクトすることができるように(「位置: 『$:私は、ヘッダ(』場所」)を使用login.phpのコードでPHPの変数に名前が格納されているファイルを開く方法

<?php 
include('connection.php'); 
if(isset($_POST['login'])) 
{ 
$username = $_POST['username']; 
$password = $_POST['password']; 
$filename = $username.".php"; 
$errflag = false; 
if($username == '' and $password == '') { 
echo "you must enter username and password"; 
    $errflag = true; 
} 
if ($errflag == false) { 
    SignIn($username,$password); 
} 
} 
function SignIn($username,$password){ 
global $connection; 
$search = $connection->prepare("SELECT * FROM users where username = 
:username AND password = :password"); 
$search->bindParam(':username',$username); 
$search->bindParam(':password',$password); 
$search->execute(); 
$count = $search->rowCount(); 
if($count> 0) 
{ 

    $_SESSION['username'] = $_POST['username']; 
    header("Location : $filename"); 


} 
else{ 
    echo "wrong email or password"; 
} 
} 
?> 

でログインファイル名);また、ヘッダー( "場所:$ファイル名")。しかし、それらのリターンの両方のエラー私は、変数に格納されているファイル名にリダイレクトできるように、どのような方法があるが、あなたに感謝

+0

'$ filename'はあなたの関数のスコープでは定義されていません。 – robjingram

+0

それを渡すようにしてくださいそれは答えです私はそれが関数でグローバルな宣言を忘れることによって間違いを犯しました –

答えて

0

小さなミスが1つあります。

こちらのコードをご覧ください。

$filename = $username.".php"; // Write it here in the signIn function 
$_SESSION['username'] = $_POST['username']; 
header("Location : $filename"); 

または、機能のパラメータとして$filenameを渡すだけです。また

SignIn($username,$password, $filename);

、関数定義

function SignIn($username,$password, $filename){ 
    // Code goes here 
} 

変更コードの下を持つヘッダの場所に$filenameパラメータを追加します。

header("Location : ".$filename); 

さらに詳しい情報が必要な場合はお知らせください。

-1

あなたの変数$ filenameは文字列ですので、あなたのヘッダーは次のようになります:

header("Location:"John.php"") 

これは、ユーザー名がjohnの場合、ヘッダーが機能しない理由です。また、ファイルを不明なファイルにリダイレクトしようとしています。つまり、新しいユーザーがJasonなどの名前を入力した場合、まだ作成していないため、サーバーは想定されたJason.phpファイルにリダイレクトできません。フロントページファイルを作成し、投稿された情報を使用して適切な詳細を表示する必要があります。次回は、ドットとカンマを使用してください。

関連する問題