2016-09-27 9 views
0

HTMLコードからPHP関数を呼び出すときに問題が発生しています。私のPHPコードは、主に私のJavaサーバーに接続し、Twitterアカウントに関する情報を要求しています。プロフィール画像のURLとTwitterのハンドルを取得するようリクエストしています。この情報はウェブサイトに表示されています。PHP関数の呼び出しが、リフレッシュされない限りロードされないようにします。

PHP:(私の.phpファイルの最上部に私が働いている)

<?php 
session_start(); 
if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) { 
    header('Location: ../account/login.php?loggedin=no'); 
} else { 

} 
class Functions { 
    public static function getName() { 
     if(!isset($_SESSION['twittername'])) { 
      include '../client.php'; 
      $_SESSION['twittername'] = Client::send("gettwittername:-1", null, -1); 
     } 
     return $_SESSION['twittername']; 
    } 

    public static function getPFP() { 
     if(!isset($_SESSION['twitterpic'])) { 
      include '../client.php'; 
      $_SESSION['twitterpic'] = Client::send("gettwitterpic", null, -1); 
     } 
     return $_SESSION['twitterpic']; 
    } 
} 
?> 

HTML:(上記のPHPコードと同じファイルで)

<div class="logcontainer"> 
    <div class="profilepic"> 
     <img src="<?php echo Functions::getPFP(); ?>" style="margin: 0px 10px 0px 0px;"> 
    </div> 
    <ul> 
     <li class="loggedin"><b><span style="color: #AFAFAF;">CURRENTLY LOGGED IN AS</span> 
     <br> 
     <span style="color: #5d9dfd; font-size: 14px;"><?php $name = Functions::getName(); echo "<a href='http://twitter.com/" . $name . "' target='_blank'>" . $name . "</a>"; ?></span> 
     </b> 
     </li> 
    </ul> 
</div> 

を実行していますこのコードは私のプロフィール画像をうまく表示します。サーバはまた、「gettwitterpic」コマンドを受信したことを記録する。それはすべて良いですが、関数が呼び出されることはないと思われる名前を取得するときには、数行がダウンします。サーバー上に何も記録されず、残りのページが読み込まれなくなります。私はページをリフレッシュするたびに、Twitterの名前を完全にうまく読み込みますが、初めてページを読み込むときにはページが読み込まれません。最初のページの読み込み時にも、これを常にうまく動作させる方法に関するアイデアはありますか?また、私はこのコードのいくつかを書く良い方法があると確信しています、私はWeb開発には新しいです。この機能を一般的にどのように改善できますか?

$_SESSION['twittername'] = Client::send("gettwittername:-1", null, -1);

を関数を呼び出す次回twitternameが明らかに取得されたと表示されているが、それはするのにかかる最初の時間:呼び出すときにタイムアウトを取得おそらく

答えて

3

どちらの機能にもclient.phpファイルが含まれています。これはおそらく問題です。最初のページロードで


機能getPFP()client.phpファイルが含まれ、その後、$_SESSION['twitterpic']が設定されていないことを確認します。

次に、機能getName()は、$_SESSION['twittername']も設定されていないことを確認して、client.phpファイルも含めて問題を解決します。 2ページ目のロードで


機能getPFP()$_SESSION['twitterpic']が設定されていることを確認し、client.phpファイルをインクルードしようとしません。

次に、機能getName()$_SESSION['twittername']が設定されておらず、client.phpファイルが含まれていることを確認しますが、今回は1度だけ含まれているため問題ありません。


ファイルが1回だけ含まれるようにロジックを変更する必要があります。

+0

あなたの助けをありがとう –

+0

また、あなたのコードでエラーが発生しているはずです。エラー報告はありますか? – Phiter

+0

このページにない、インデックスには "ini_set( 'display_errors'、1);"があります。それは私の現在のページに何か影響を及ぼしますか? –

0

をお読みいただきありがとうございました結果を得るために長い。

また、この行にgetwitternameの後に:-1を置く理由は何ですか?

+0

サーバーはTwitterアカウントの名前を確認でき、各サーバーにはTwitterアカウントが既に添付されています。 -1は、 "あなたの添付されたTwitterアカウントを使用する"と言っています –

関連する問題