In POP UP Code ausgeben

Möchte in einem JS Pop Up Code (also Tags - sowol html als auch php) ausgeben lassen.

In diesem Echo befehl:

echo „<a id="Verweis" href="javascript:Test()">CODE“;

Will ich statt CODE diesen Code ausgeben lassen:

[PHP]

Einfaches Kontaktformular mit HTML und PHP Name:
E-Mail:
Betreff:

Nachricht:


<?php $Empfaenger = "nicolas4101994@gmx.at"; if($_REQUEST['submit']){ if(empty($_REQUEST['name']) || empty($_REQUEST['email']) || empty($_REQUEST['text'])) { echo"Bitte füllen Sie alle Felder aus!"; } else{ $Mailnachricht="Sie haben eine Anfrage über ihr Kontaktformular erhalten:\n\n"; while(list($Formularfeld, $Wert)=each($_REQUEST)) { if($Formularfeld!="submit") { $Mailnachricht .= $Formularfeld.": ".$Wert."\n"; } } $Mailnachricht .= "\nDatum/Zeit: "; $Mailnachricht .= date("d.m.Y H:i:s"); $Mailbetreff = "Kontakt: "; $Mailbetreff .= $_REQUEST['Betreff']; mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: " .$_REQUEST['email']); echo "Sie haben erfolgreich die E-Mail versendet. \n"; } } ?> [/PHP]

Ist das irgendwie möglich?`

MfG
T!P-TOP

Ersetze CODE durch den Code und maskiere die größer als- und kleiner als-Zeichen.

P.S. Es gibt eine PHP-Funktion, welche diese Zeichen automatisch maskiert:
PHP: htmlspecialchars - Manual

<?php $str = " Einfaches Kontaktformular mit HTML und PHP
      Name: <input name="name" size="40" /><br  />
      E-Mail: <input name="email" size="40" /><br  />
      Betreff: <input name= "betreff" size="20" /><br />

Nachricht:


<?php $Empfaenger = "[EMAIL="nicolas4101994@gmx.at"]nicolas4101994@gmx.at[/EMAIL]"; if($_REQUEST['submit']){ if(empty($_REQUEST['name']) || empty($_REQUEST['email']) || empty($_REQUEST['text'])) { echo"Bitte füllen Sie alle Felder aus!"; } else{ $Mailnachricht="Sie haben eine Anfrage über ihr Kontaktformular erhalten:\n\n"; while(list($Formularfeld, $Wert)=each($_REQUEST)) { if($Formularfeld!="submit") { $Mailnachricht .= $Formularfeld.": ".$Wert."\n"; } } $Mailnachricht .= "\nDatum/Zeit: "; $Mailnachricht .= date("d.m.Y H:i:s"); $Mailbetreff = "Kontakt: "; $Mailbetreff .= $_REQUEST['Betreff']; mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: " .$_REQUEST['email']); echo "Sie haben erfolgreich die E-Mail versendet. \n"; } } ?> ";

echo htmlentities($str);

echo htmlentities($str, ENT_QUOTES);
?>

Das funktioniert jedenfalls nicht, oder hab ich da jetzt alles falsch gemacht :confused: ?

Oder soll ichs mit strip tags versuchen und einfach alle tags zulassen?

Wie dir auch schon in einem anderen Thread gesagt wurde, musst du doppelte Anführungszecihen in Strings mit doppelten Anführungszecihen maskieren, mit dem Backslash. Ebenso bei einfachen Anführungszeichen in String mit einfachen Anführungszeichen.

Soll denn der PHP-Code [php]<?php
$Empfaenger = „nicolas4101994@gmx.at“;
if($_REQUEST[‚submit‘]){
if(empty($_REQUEST[‚name‘]) || empty($_REQUEST[‚email‘])
|| empty($_REQUEST[‚text‘]))
{
echo"Bitte füllen Sie alle Felder aus!„;
}
else{
$Mailnachricht=„Sie haben eine Anfrage über ihr
Kontaktformular erhalten:\n\n“;
while(list($Formularfeld, $Wert)=each($_REQUEST))
{
if($Formularfeld!=„submit“)
{
$Mailnachricht .= $Formularfeld.“: „.$Wert.“\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date(„d.m.Y H:i:s“);
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST[‚Betreff‘];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: "
.$_REQUEST[‚email‘]);
echo „Sie haben erfolgreich die E-Mail versendet. \n“; }
}

?>[/php]ausgeführt werden oder angezeigt werden?

Bitte nutze in Zukunft Code-Tags, es ist unglaublich nervig ohne sie Scripte zu lesen.

Nutze nicht zweimal die Funktion htmlentities.
Beim ersten Einsatz wird aus <htmltag>
<htmltag>
Beim zweiten mal
&lt;htmltag&gt;
und würde diese Ausgabe bewirken:

Der PHP Code soll lediglich angezeigt werden, nicht ausgeführt.
Das ganze manuell zu maskieren ist richtig viel arbeit - also gibt es eine möglichkeit in php den kompletten code zu maskieren?

Ja - indem du den Code nur einmal maskierst :wink:
Ansonsten haben gewöhnliche Texteditoren eine Suchen&Ersetzen-Funktion eingebaut.

Habs mit suchen ersetzen versucht.

[PHP]

<?php echo'< html> < head> < title>Einfaches Kontaktformular mit HTML und PHP< /title> < /head> < body> < form action=\"< ?php echo $_SERVER['PHP_SELF']; ?>\" method=\"post\">
      Name: < input name=\"name\" size=\"40\"/>< br />
      E-Mail: < input name=\"email\" size=\"40\"/>< br />
      Betreff: < select name=\"betreff\"size=\"1\">
          < option>Hilfe< /option>
          < option>Kritik< /option>
          < option>Linktausch< /option>
          < option>Werbung< /option>
          < option>Sonstiges< /option>
      < /select>< br />
      Nachricht: < br />
      < textarea name=\"text\" cols=\"50\" rows=\"10\">< /textarea>
      < br />
      < input name=\"submit\" type=\"submit\" value=\"absenden\"/>
  < /form>

< ?php
$Empfaenger = "nicolas4101994@gmx.at";
if($_REQUEST[‚submit‘]){
if(empty($_REQUEST[‚name‘]) || empty($_REQUEST[‚email‘])
|| empty($_REQUEST[‚text‘]))
{
echo"Bitte füllen Sie alle Felder aus!";
}
else{
$Mailnachricht="Sie haben eine Anfrage über ihr
Kontaktformular erhalten:\n\n";
while(list($Formularfeld, $Wert)=each($_REQUEST))
{
if($Formularfeld!="submit")
{
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST[‚Betreff‘];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: "
.$_REQUEST[‚email‘]);
echo "Sie haben folgende E-Mail an den den Administrator versant: \n".$Mailnachricht; }
}

?>

< /body>
< /html>’
?>
[/PHP]

Fehlermeldung:

[B]

Parse error[/B]: syntax error, unexpected T_STRING, expecting ‚,‘ or ‚;‘ in D:\inetpub\vhosts\3w4you.net\subdomains\banner\httpdocs\kontaktausgeben.php on line 7

Die < hab ich durch < ersetzt, die > durch &rt;. Die " hab ich durch " ersetzt.

Warum hast du jetzt den String in einfache Anführungszeichen gesetzt und die doppelten maskiert?

Wenn der String in einfachen Anführungszeichen ist, müssen nur die einfachen Anführungszeichen maskiert werden.
Wenn der String in doppelten Anführungszeichen ist, müssen nur die doppelten Anführungszeichen maskiert werden.

Ich verstehe nicht, was daran so schwer ist?