Bitte um hilfe! PHP

  • PHP

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Bitte um hilfe! PHP

    Hay Leute,

    das ist mein Code:

    PHP-Quellcode

    1. <?php
    2. echo("<p>text</p>");
    3. ?>

    Das funktioniert natürlich...

    aber sowas:

    PHP-Quellcode

    1. <?php
    2. echo('<form action="login.php" method="post"><p class="text1">Anmelden:</p><p class="text2">Benutzername:</p><input type="text" size="24" maxlength="50" name="username"><p class="text2">Passwort:</p><input type="password" size="24" maxlength="50"name="password"><br/><br/><input type="submit" value="Login" class="login"></form>');
    3. ?>

    klappt nicht...bzw. als Ergebnis kommt das:

    Quellcode

    1. '); ?>

    Bis zu dem Teil klappt alles, ich erkenne das Problem nicht.

    Kann mir jemand helfen?
    Warum machst du sowas mit echo?

    1)
    Direkt hinschreiben:

    PHP-Quellcode

    1. <?php
    2. $foo = 123;
    3. ?>
    4. <form action="login.php" method="post"><p class="text1">Anmelden:</p><p class="text2">Benutzername:</p><input type="text" size="24" maxlength="50" name="username"><p class="text2">Passwort:</p><input type="password" size="24" maxlength="50"name="password"><br/><br/><input type="submit" value="Login" class="login"></form>
    5. <?php
    6. //..
    7. ?>


    -ODER-

    2)
    Heredoc Syntax

    PHP-Quellcode

    1. $str = <<<EOD
    2. Example of string
    3. spanning multiple lines
    4. using heredoc syntax.
    5. EOD;
    6. echo $str;
    /nicht getestet
    1. echo ist keine Funktion, benötigt also keine Klammern.
    2. Wenn du einen String mit echo ausgeben willst in dem eine Bedingung steht, gibts dafür die von Manawyrm genannte methode die etwas unübersichtlich aussieht oder die bessere Shorthand IF-Bedingung

    PHP-Quellcode

    1. echo "Hallo mein Name ist ".(($name == "Bob") ? "Dodo" : "Robert")." und das Wetter ist schön!";


    devmag.net/php-tricks/239-shor…ional-if-anweisungen.html
    Ich hab das jetzt mal so als test gemacht:

    PHP-Quellcode

    1. <? if(isset($foo)){ ?>
    2. hier ganz normaler HTML-Code 1 wenn $foo definiert
    3. <? }else{ ?>
    4. hier ganz normaler HTML-Code 2 wenn $foo nicht definiert
    5. <? } ?>


    So egal ob $foo gesetzt ist oder nicht, es werden beide Texte ausgegeben!
    $foo wurde vorher nicht deklariert oder gefüllt mit was auch immer...

    Aber das Problem ist ja, das beide Texte ausgegeben werden, obwohl rein theoretisch doch nur einer ausgegeben werden könnte oder?


    So das ist jetzt mein Code:

    PHP-Quellcode

    1. <?php
    2. if (!isset($_SESSION["user_nickname"])) { ?>
    3. <form action="login.php" method="post">
    4. <p class="text1">Anmelden:</p>
    5. <p class="text2">Benutzername:</p>
    6. <input type="text" size="24" maxlength="50" name="username">
    7. <p class="text2">Passwort:</p>
    8. <input type="password" size="24" maxlength="50"name="password">
    9. <br/><br/>
    10. <input type="submit" value="Login" class="login">
    11. </form>
    12. <?php
    13. } elseif(isset($_SESSION["user_nickname"])){
    14. echo $_SESSION["user_nickname"];
    15. } ?>


    Wie schon gesagt beides wird ausgegeben $_SESSION["user_nickname"] wurde vorher deklariert.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „GMTechnologie“ ()

    GMTechnologie schrieb:

    <? if(isset($foo)){ ?>
    hier ganz normaler HTML-Code 1 wenn $foo definiert
    <? }else{ ?>
    hier ganz normaler HTML-Code 2 wenn $foo nicht definiert
    <? } ?>


    Für IF-Abfragen im Markup habe ich das bisher so gemacht:

    PHP-Quellcode

    1. <?php if(isset($foo)): ?>
    2. <p>hier ganz normaler HTML-Code 1 wenn $foo definiert</p>
    3. <?php else: ?>
    4. <p>hier ganz normaler HTML-Code 2 wenn $foo nicht definiert</p>
    5. <?php endif; ?>


    Man beachte den doppelpunkt hinter if und else.
    Siehe PHP.Net

    MfG :)