• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

html tags in echo

html001

Neues Mitglied
hallo

ich bin noch relativ neu in php
und übe mich gerade an einem login
hier mein code(auszug)
Code:
<form action="seite2.html" method="get">
<textarea name="passwort">
</textarea>
</form>
Seite2:
Code:
<html>
<?php
$passwort=$_["passwort"]
if($passwort=="irgendwas"){
echo"<html>
<body>Text</body></html>";}
else{
echo "kein zugriff"}
?>
</html>

allerdings kommt die fehlermeldung das etwas on line 5
nicht stimmt und da steht <html>
könnt ihr mir sagen was da nicht stimmt?

vielen dank schon mal im voraus html001
 
Hallo,
das gibt es nicht
$passwort=$_["passwort"]

$_GET["passwort"] oder $_POST["passwort"]
kommt drauf wo die variable her kommt. Link ist GET und POST Formular (in der regel).

Cheffchen
 
also ich bin ´mir nicht sicher aber ich glaube html codes in php müssen mit einem strich gekennzeichnet werden also so : '
oder das kann auch sein das man den text also das "text" in html in php mit einer ' machen muss ... kannst ja mal testen :=)
 
Das ist nicht richtig. Single quotes (also ' ) haben nur einen einzigen Unterschied zu double quotes (also " ): Der Code dazwischen wird nicht interpretiert. Das heißt es werden enthaltene Variablen nicht übersetzt, sondern einfach wie geschrieben ausgegeben.
 
Ich würde gänzlich vermeiden, HTML mit echo auszugeben, sondern PHP als das benutzen, als was es gedacht war:

PHP:
<?php
$passwort = $_POST['passwort'];
?>
<!DOCTYPE html>

<html>

<!-- head -->

<body>
<?php if ('irgendwas' === $passwort): ?>
    <p>Text</p>
<?php else: ?>
    <p>kein zugriff</p>
<?php endif; ?>

</body>

</html>
Das hat einige Vorteile: Syntax-Überprüfung, Autovervollständigung und besseres Syntaxhighlighting.

Die einfachen Anführunszeichen (') sollte man den doppelten Anführungszeichen (") vorziehen, da die Interpolation (siehe Körnerbrötchen) auch Rechenzeit benötigt. Allerdings gibt es viele Beipiele wo die Interpolation besser lesbar ist:
PHP:
echo "Hallo $benutzername";
statt
PHP:
echo 'Hallo ' . $benutzername;
wobei
PHP:
echo 'Hallo ', $benutzername;
noch besser ist.

Wenn man mal größere HTML-Blöcke als String braucht, dann ist man mit HEREDOC bzw. NEWDOC besser bedient:
PHP:
$html = <<<'HTML'
<p>
      <span>Test der ersetzt werden soll</span>
</p>
HTML;
 
Zurück
Oben