2012-03-03 14 views
0

PHPで生成された簡単で汚いシンプルなメニューを作成しようとしています。関数logScreen()はユーザーがログインしているかどうかを判断し、ユーザーがログインするように求めるプロンプトを生成します。PHP関数からの出力が​​タグに入りません

しかし、これからの出力(ユーザーが情報を入力できるように生成された入力タグ)は、配置されているtdタグの内部ではなく、テーブルの外部で生成されます。

誰かが私が配置したテーブルにこのコマンドの出力を得るための提案がありますか?もし誰かが助けてくれたら、私はそれを感謝します。おかげ

<html> 
<head></head> 
<body> 
<?php 
include ('functions.php'); 

function loggScreen() 
{ 
    if(!isset($_SESSION['user'])) 
{ 
    echo "<td>"; 
    echo "User Name: <input value='Username'>"; 
    echo "Password : <input value='Password'>"; 
    echo "<input type='button' value='login'>"; 
    echo "</td>"; 
} 
} 
echo "<table border=1 style='width:100%;'>"; 
echo "<tr><td style='width:80%;'>Welcome to the website</td>".loggScreen()."</tr>"; 
echo "</table>"; 

?> 
</body> 
</html> 
+0

そのコードの出力は、実際に表示される場所たぶん私は言及する必要があります。期待されるtdタグに入るのではなく、テーブルの上に表示されます。 – tylerauerbeck

答えて

3

あなたは、出力バッファリングを使用している場合を除きは、できるだけ早くそれが呼ばれていますとなりますoutputstdoutにエコー。代わりにあなたがreturn文字列にしたいあなたのロギング機能でecho ING、の:

function loggScreen() 
{ 
    $str = ''; 

    if(!isset($_SESSION['user'])) 
    { 
     $str .= "<td>"; 
     $str .= "User Name: <input value='Username'>"; 
     $str .= "Password : <input value='Password'>"; 
     $str .= "<input type='button' value='login'>"; 
     $str .= "</td>"; 
    } 
    return $str; 
} 
関連する問題