2013-06-11 83 views
0

我完全不熟悉PHP。所以這個代碼可能完全沒有意義。但是,我想要求幫助。如果有人能告訴我什麼是錯的,或者只是寫出正確的代碼。這段代碼有什麼問題?我如何糾正它?

基本上我嘗試做的代碼是檢查用戶是否登錄,如果沒有,然後顯示他登錄和註冊鏈接。

如果他已登錄,然後向他顯示他的用戶名。

這裏是PHP代碼:

<?php 

    require("common.php"); 

    if(empty($_SESSION['user'])) 
    { 
     echo("<a href="login.html"><b>Login</b></a>"); 
     echo("<a>or<a>"); 
     echo("<a href="register.html"><b>Register</b></a>"); 
    } 

    else 
    { 
     echo 'Username: ' . $current_user->user_login . "\n"; 
    } 
?> 

代碼從HTML:(代碼,我用它來包括這個代碼不知道它的也...)

<header action="php/check.php" method="post"> 

感謝答案仍然不工作壽:( 這裏是當前的代碼,我編輯了你們如何提供建議。

<?php 
    session_start() 

    require("common.php"); 

    if(empty($_SESSION['user'])) 
    { 
     echo '<a href="login.html"><b>Login</b></a>'; 
     echo '<a>or<a>'; 
     echo '<a href="register.html"><b>Register</b></a>'; 
    } 

    else 
    { 
     echo 'Username: ' . $current_user->username . "\n"; 
    } 
?> 
+3

你的'session_start()'在哪裏? – Blender

+0

所以你的問題是什麼? – waldol1

+2

echo不需要括號 – Orangepill

回答

2

您確定會話正在自動啓動嗎? 否則您需要添加:

編輯:也刪除周圍回聲的parentethis,它內置的語言,它不是一個函數。並且避免引號。

<?php 
    session_start() 

    require("common.php"); 

    if(empty($_SESSION['user'])) 
    { 
     echo "<a href=\"login.html\"><b>Login</b></a>"; 
     echo "<a>or<a>"; 
     echo "<a href=\"register.html\"><b>Register</b></a>"; 
    } 

    else 
    { 
     echo 'Username: ' . $current_user->user_login . "\n"; 
    } 
?> 

您還可以添加一個php.ini並使用會話auto_start。

http://www.php.net/manual/en/session.configuration.php#ini.session.auto-start

+1

回聲部分會拋出一個語法錯誤,介意你 –

+0

哦,是啊,沒有足夠的重視......編輯。 – Maresh

0

試試這個:

if(empty($_SESSION['user'])) 
{ 
    echo '<a href="login.html"><b>Login</b></a>'; 
    echo ' or '; 
    echo '<a href="register.html"><b>Register</b></a>'; 
} 
+0

感謝大家的支持。仍不能正常使用壽:( 目前看起來像這樣 <?PHP \t在session_start() \t要求(「通用。PHP「); 如果(空($ _ SESSION [ '用戶'])) { \t \t回波 'Login '; \t \t回聲' '; \t \t回波' Register'; \t} \t \t其他 \t { \t \t回聲 '用戶名:' $ current_user->用戶名 「\ n」; \t。 } ?> – user2475515

+0

但是你是否在設置$ _SESSION時調用session_start()? –

+0

是的。 Common.php在其結尾處有session_start()。 我也嘗試過用手寫書寫session_start()。 – user2475515

0

首先,你需要逃避所有的逃生語句的雙引號,因爲這:

echo "<a href=\"login.html\"><b>Login</b></a>"; 
echo "<a>or<a>"; 
echo "<a href=\"register.html\"><b>Register</b></a>"; 

你不需要括號爲echo

其次,爲了使用$_SESSION變量,您需要先使用函數session_start()開始會話。

+0

我做到了。還是行不通。我想知道我是否需要一些PHP文件的HTML。或PHP到HTML? 所以目前我的HTML文件有: <標題行動=「PHP/check.php」方法=「郵報」> 所以我試着去打印PHP文件答案頭...... 此時它贏得不要在任何地方打印。 – user2475515

+0

你是否正確地給出文件路徑? 'action =「php/check.php」'是相對於當前位置的。在它之前使用'/'。它像'action =「/ php/check.php」'一樣。如果它不起作用,請看看這個來獲取根的位置:http://stackoverflow.com/questions/17036192/when-new-page-is-created-the-css-is-not-taken-進入帳戶/ 17036267#17036267 – Kevin

+1

@ user2475515我從來沒見過'

''之前。 '
'yes,but * header *? –