我的会话代码有什么问题

时间:2012-05-14 12:23:46

标签: php html session syntax

你能不能帮助我们,我正在学习会话的概念,这是为了帮助我在用户登录。我做了以下PHP代码,但我收到此错误:解析错误:语法错误,意外T_STRING,期待', ' 要么 ';'在第12行的C:\ wamp \ www \ w3 \ login.php中。

<?php
    session_start();
        echo "      <html>
                    <body>
                    <br/>
                    <table border = '0'  width = '100%' height = '100%'><tr>
                    <td width = '30%' height = '100%'>&nbsp;</td><td valign = 'top'>    
                    <a href='display.html'>Display</a>";
    if(!isset($_SESSION['loged'])){     
        echo "      <fieldset><legend>Log In</legend>
                    <center><table border = '0'>
                    <form action="log.php" method="post">
                    <tr><td>Username:</td><td><input type="text" name="username" /></td></tr>   
                    <tr><td>Password:</td><td><input type="password" name="pwd" /></td></tr>
                    <tr><td colspan = '2' align = 'center'><input type="submit" value="submit" /></td></tr>
                    </form>
                    </table></center>
                    </fieldset> ";
    }

    else{
        header(location:index.html);
        die();
    }
        echo "      </td><td width = '30%' height = '100%'>&nbsp;</td>  
                    </tr></table>       
    </body>
    </html>";
?>

5 个答案:

答案 0 :(得分:4)

您需要在字符串中转义"

需要

<form action=\"log.php\" method=\"post\">

或更好:

<form action='log.php' method='post'>

更好:

echo ' .... action="..." '

最好的:

 <?php php-code... ?>
 HTML-Code 
 <?php php-code... ?>

这当然是代码中所有行的必要条件。

编辑:

另外,你需要写:

header('location:index.html');

(ty @Paul)

如评论中所述,如果你不回应如此大的html片段,那就更好了。特别是当使用双引号时,php-parser正在做很多不必要的工作。

答案 1 :(得分:1)

使用单引号或转义此部分中的双引号:

<form action="log.php" method="post">
   <tr><td>Username:</td><td><input type="text" name="username" /></td></tr>   
   <tr><td>Password:</td><td><input type="password" name="pwd" /></td></tr>
   <tr><td colspan = '2' align = 'center'><input type="submit" value="submit" /></td></tr>
</form>

答案 2 :(得分:1)

echo "      <fieldset><legend>Log In</legend>
                    <center><table border = '0'>
                    <form action="log.php" method="post">
                    <tr><td>Username:</td><td><input type="text" name="username" /></td></tr>   
                    <tr><td>Password:</td><td><input type="password" name="pwd" /></td></tr>
                    <tr><td colspan = '2' align = 'center'><input type="submit" value="submit" /></td></tr>
                    </form>
                    </table></center>
                    </fieldset> ";

有报价问题。

尝试

echo "      <fieldset><legend>Log In</legend>
                        <center><table border = '0'>
                        <form action='log.php' method='post'>
                        <tr><td>Username:</td><td><input type='text' name='username' /></td></tr>   
                        <tr><td>Password:</td><td><input type='password' name='pwd' /></td></tr>
                        <tr><td colspan = '2' align = 'center'><input type='submit' value='submit' /></td></tr>
                        </form>
                        </table></center>
                        </fieldset> ";

答案 3 :(得分:1)

将其更改为

<form action='log.php' method='post'>

之后,您还会在以下几行中多次使用它 - 将双引号更改为单引号。

也改变了:

header("location: index.html");

答案 4 :(得分:0)

我认为你的第一个问题是逃避问题。当你做回声时,你必须为每个“角色”加上\