2011-06-07 9 views
2

JavaScriptを使用して簡単なログインを行いましたが、PHPセッションでユーザー名を記録します。これは簡単なWebチャットですので、チャットページにユーザー名を強制的に入力して、その後、私はその情報をPHPセッションに保存し、$ _SESSION ['UserName']が空であれば何らかの理由でページが再ロードされ、スクリプトが再び実行されるのを止めない場合は、私のログイン<body onload..>でJSとコードは次のようになります。私はちょうど今学んでいるので、私は私がLogin()関数を呼び出していないよということはほぼ確信しているように私は、いくつかの初心者くさいミスを持ってguesPHPファイルでJavaScriptを実行する

 
<body onload = "showUser(), showChat(), <?php if ($_SESSION['UserName']==""){ 
{ 
    Login(); 
}?>"> 

右(JS関数)ですが、それが私の言いたいことです.Co誰かが私に説明してくれます。チェックを適切に行い、私のPHPコードにJS関数を追加する方法は?

PSそして、私はこれが本当に問題ならば知っているが、私はPHPのコードを削除した場合、このliek残していない:

<body onload = "showUser(), showChat(),Login()"> 

私のスクリプトが正常に実行され、私が示されるべきすべてを取得する際のページ私はPHPスクリプトを追加し、ページをロードしようとすると、私は空白のページを取得しようとしています。私は本当にこれも理由は何ですか?

+0

http://en.wikipedia.org/wiki/Unobtrusive_Javascript - お読みください。 – ThiefMaster

答えて

0

あなたは、単にとしてこれを呼び出すことができます。

<?php 
    if($_SESSION['UserName'] == ""){ 
?> 
<body onload="showUser(), showChat()"> 
<?php 
    } 
    else 
    { 
?> 
<body onload="showUser(), showChat(), Login();"> 
<?php 
    } 
?> 
+0

構文エラー、構文エラー、予期しない '<' C:\ Program Files \ webPHP \ xampp \ htdocs \ MyChat \ chat1.phpの行75 – Leron

+0

構文エラーを確認してください今すぐコードを確認してください – praneeth

+0

Opsありがとうございました – Leron

2

PHPからテキストLogin();をエコーする必要があります - PHPはJavaScriptを実行しませんが、どのJavaScript関数が呼び出されるかを制御するために使用できます。

<body onload="showUser(), showChat(), <?php 
    if(isset(!$_SESSION['UserName']) || $_SESSION['UserName'] == ""){ 
     echo 'Login();'; 
    }?>"> 

PHPを使用して、2つの異なるボディタグを作成しています.1つはログインユーザー用、もう1つは他のものです。

サイドノート:それは配列項目がアクセスしようとする前に存在していることを確認することをお勧めです:それは空の文字列以外に設定されている場合isset($_SESSION['UserName']) || $_SESSION['UserName']チェックが最初$_SESSION['UserName']が設定されている場合は、チェックします。

+0

私は別の.PHPファイルで推測したDBにすべての情報を入れ、ユーザーがテキストを提供しない場合は、$ _SESSION [' UserName '] – Leron

+0

この場合、issetをチェックすると、ログインしているユーザーが条件内になります。つかいます !機能を元に戻す前に。 – Jagadeesan

+0

@Jagadeesan Thangarajありがとう:) –

4

phpからjs関数を呼び出すことはできません。代わりに、js関数をPHPの文字列として出力しなければならないので、htmlに沿ってjsとして実行されます。

<body onload = "showUser(); showChat(); <?php echo (($_SESSION['UserName']=='')?'Login();':''); ?>"> 



あなたは致命的なエラーの空白のページを取得:

<body onload = "showUser(); showChat(); <?php if ($_SESSION['UserName']==""){ echo 'Login();'; }?>"> 



は、効率的なPHPコードを記述すること。これはPHPで呼び出されたjavascript関数(ERROR:未定義関数login())のために発生します。

関連する問題