Hallo,

Ik ben vandaag begonnen met het maken van een login-systeem met PHP en MySQL, maar ik heb nu al een error:
Parse error: syntax error, unexpected 'login_parse' (T_STRING), expecting ',' or ';' in C:\path\to\file\index.php on line 14


Dit is mijn gehele code:
<?php session_start(); ?>
<html xmls="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Login</title>
    </head>
    <body>
        <div id="wrapper">
            <h2>Login</h2>
            <p>PHP Test</p>

            <?php
                if(!isset($_SESSION['uid'])){
                    echo "<form action="login_parse.php" method="post">
                    Username: <input type="text" name="username" />&nbsp;
                    Password: <input type="password" name="password" />&nbsp;
                    <input type="submit" name="submit" value="Log In" />";
                }else{
                    echo "<p>You are logged in as ".$_SESSION['username']." &bull; <a href="logout_parse.php">Logout</a>";
                }
            ?>

        </div>
    </body>
</html>


Ik heb al naar oplossingen gezocht op dit forum, maar niets blijkt te werken...

Alvast bedankt voor de hulp,
- Ruben

Heel erg bedankt voor je hulp. Dit verklaart vele errors. Alles werkt nu perfect.

-Ruben
Escapen kan ook, echter is het minder praktisch:


<?php
echo "Ik zeg: \"Hallo PHPhulp\".";
?>
Je kunt op elk moment een PHP-blok starten en opschorten. Als je dus (veel) statische HTML wilt weergeven kun je net zo goed uit het PHP-blok stappen. Dat maakt alles meestal een stuk beter leesbaar.

Je kunt de "inspring" in HTML gelijk schakelen met die van PHP zodat je direct kunt zien welke HTML wordt weergegeven bij welke conditie(s) in PHP. HTML geeft over het algemeen weinig om al die extra spaties en/of tabs.

Een bijkomend voordeel van dit alles is ook dat je heel snel kunt zien wat "dynamisch" is en wat "statisch".

Toegepast op bovenstaande code:
<?php
if (!isset($_SESSION['uid'])) {
    ?><form action="login_parse.php" method="post">
    Username: <input type="text" name="username" />&nbsp;
    Password: <input type="password" name="password" />&nbsp;
    <input type="submit" name="submit" value="Log In" /><?php
} else {
    ?><p>You are logged in as <?php echo $_SESSION['username']; ?> &bull; <a href="logout_parse.php">Logout</a><?php
}
?>
ik heb dan de voorkeur voor de wat minder vaak gebruikte (en misschien wel ouderwetsere) variant met if(): else: endif


 <?php if (!isset($_SESSION['uid'])) : ?>
    <form action="login_parse.php" method="post">
    Username: <input type="text" name="username" />&nbsp;
    Password: <input type="password" name="password" />&nbsp;
    <input type="submit" name="submit" value="Log In" />
<?php else: ?>
    <p>You are logged in as <?= $_SESSION['username']; ?> &bull; <a href="logout_parse.php">Logout</a>
<?php endif; ?> 


ik vind dat (in dergelijke template files) fijner omdat bij elke afsluiting direct te zien is dat het om het einde van een if() dan wel een forech etc. gaat.

Reageren