2016-05-16 8 views
1

私はHTMLログインフォームを持っています。ユーザーがログインすると、そのユーザーを別のページにリダイレクトし、いくつかのDOMを変更します。このリダイレクトはPHPユーザーとパスワードを確認するスクリプト。 私はこれを持っている:PHP - 同じページにリダイレクトしてDOMを変更する方法

<?php 
set_time_limit(0); 
header('content-type: text/html; charset=utf-8'); 
header("access-control-allow-origin: *"); 

include 'connect.php'; 

$pass= $_POST['pass']; 

$sql = "SELECT password FROM users WHERE password ='$pass'"; 
$result = mysql_query($sql); 
$row=mysql_fetch_array($result); 

if($row[0]!='') { 

    $query = mysql_query("SELECT user FROM users WHERE password ='$pass'"); 
    $user = mysql_fetch_array($query, MYSQL_ASSOC); 

    $user=$user["user"]; 



    echo "<script>window.location = 'http://localhost/public_html/as/index.php?pass=$pass';document.getElementById('log').innerHTML = 'LOGGED WITH: $user';$('#login-form').slideUp();document.getElementById('logout').style.display='';$('#log').unbind('click');</script>"; 


} else { 
    echo "<script>document.getElementById('text').value = ''; document.getElementById('text').placeholder = 'Type a valid key';</script>"; 

} 




?> 

これは、ログイン・フォームに対処する方法を学ぶために、そのセキュリティのことについて気にしないだけです。 私の問題はここにある:

echo "<script>window.location = 'http://localhost/public_html/as/index.php?pass=$pass';document.getElementById('log').innerHTML = 'LOGGED WITH: $user';$('#login-form').slideUp();document.getElementById('logout').style.display='';$('#log').unbind('click');</script>"; 

このコードはwindow.locationのページにリダイレクトしますが、他のDOMのHTMLページ内を変更しません。

どうすればこの問題を解決できますか? ありがとうございます!

+0

JavaScriptは実行されているページのDOMを変更することしかできません。別のページのDOMを変更する場合は、リダイレクトを行うか、セッションCookieを使用するときに、URLの関連データを渡します。 – Chris

+0

"これはちょうどログインフォームに対処する方法を学ぶことですので、セキュリティのことについて気にしないでください。しかし、あなたはセキュリティについて学ぶ必要があります!私のパスワードが ''OR 1 = 1;となった場合 - あなたは悪い時だ! – Dale

+0

私の質問は、ログイン後に同じページにリダイレクトするときにDOMを変更する方法ですか? – SLFl

答えて

1

あなたはこのリンクを使用できません。この問題の2つの解決策があります。

  1. 、ユーザーがターゲット・ページに及びでlogedされる定義セッション配列のあなたの変数が設定されているかどうかを確認、あなたがやりたいページではJavaScriptをエコーするために、PHPでの使用SESSION[]配列。

  2. クエリ文字列を使用して、ユーザーがターゲットページにログインし、ターゲットページにphpでログインしたことを伝えるために、javascriptコードをエコーし​​ます。

私はあなたの問題の解決策がより良いと思います。あなたの要求に応じて、それは私の申し出です。 :)

EDITED:あなたのphpファイルの使用の最初の行に

session_start(); 

ときに、このようなユーザー名とパスワードたパス、設定されたセッションの配列: $ _SESSION [ "userNameに"] = $ username; とPHPスクリプトの終わりは次のように使用します:

if(isset($_SESSION["userName"])) 
    echo "<script>....your code that you want run when user login...</script>"; 
+0

ありがとうございます@barzegariの提案ですが、事は: ホームページは[http://localhost/public_html/as/index.php]であり、ユーザーがログインすると[http:// localhost/public_html/as/index.php?pass = $ pass] javascriptコードは両方のページで同じですが、変更がナビゲーションバーにあります: 'LOGIN'が消え、usenameが表示されます。 このDOMの変更は瞬時に行われますが、新しいページが完全に読み込まれると、ホームページのように表示されます。/ – SLFl

+0

自分がページを自分自身にリダイレクトするとわかりますか?それは本当ですか? –

+0

はい、私は記録されたユーザーに応じてデータを表示するグラフを持っているので: – SLFl

関連する問題