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

In POP UP Code ausgeben

Status
Für weitere Antworten geschlossen.

T!P-TOP

Mitglied
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</a>";


Will ich statt CODE diesen Code ausgeben lassen:

PHP:
<html>
  <head>
      <title>Einfaches Kontaktformular mit HTML und PHP</title>
  </head>
  <body style="font-family: Arial; font-size: 12px">
      <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: <input name= "betreff" size="20" /><br />
<br />
          Nachricht: <br />
          <textarea name="text" cols="40" rows="10"></textarea>
          <br /><br />
          <input name="submit" type="submit" value="Absenden"/>
      </form>
    
<?php
    $Empfaenger = "[email protected]";
    if($_REQUEST['submit']){
      if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
       || empty($_REQUEST['text']))
      {
        echo"Bitte f&uuml;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";      }
    }
    
?>
  </body>
</html>

Ist das irgendwie möglich?`

MfG
T!P-TOP
 
<?php
$str = "<html>
<head>
<title>Einfaches Kontaktformular mit HTML und PHP</title>
</head>
<body style="font-family: Arial; font-size: 12px">
<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: <input name= "betreff" size="20" /><br />
<br />
Nachricht: <br />
<textarea name="text" cols="40" rows="10"></textarea>
<br /><br />
<input name="submit" type="submit" value="Absenden"/>
</form>

<?php
$Empfaenger = "[email protected]";
if($_REQUEST['submit']){
if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
|| empty($_REQUEST['text']))
{
echo"Bitte f&uuml;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"; }
}

?>
</body>
</html>";

echo htmlentities($str);

echo htmlentities($str, ENT_QUOTES);
?>


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

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 = "[email protected]";
if($_REQUEST['submit']){
if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
|| empty($_REQUEST['text']))
{
echo"Bitte f&uuml;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"; }
}

?>
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
Code:
<htmltag>
->
Code:
&lt;htmltag&gt;
Beim zweiten mal
->
Code:
&amp;lt;htmltag&amp;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?
 
Habs mit suchen ersetzen versucht.

PHP:
<?php

echo'&lt; html&gt;
  &lt; head&gt;
      &lt; title&gt;Einfaches Kontaktformular mit HTML und PHP&lt; /title&gt;
  &lt; /head&gt;
  &lt; body&gt;
      &lt; form action=\"&lt; ?php echo $_SERVER['PHP_SELF']; ?&gt;\" method=\"post\"&gt;
          Name: &lt; input name=\"name\" size=\"40\"/&gt;&lt; br /&gt;
          E-Mail: &lt; input name=\"email\" size=\"40\"/&gt;&lt; br /&gt;
          Betreff: &lt; select name=\"betreff\"size=\"1\"&gt;
              &lt; option&gt;Hilfe&lt; /option&gt;
              &lt; option&gt;Kritik&lt; /option&gt;
              &lt; option&gt;Linktausch&lt; /option&gt;
              &lt; option&gt;Werbung&lt; /option&gt;
              &lt; option&gt;Sonstiges&lt; /option&gt;
          &lt; /select&gt;&lt; br /&gt;
          Nachricht: &lt; br /&gt;
          &lt; textarea name=\"text\" cols=\"50\" rows=\"10\"&gt;&lt; /textarea&gt;
          &lt; br /&gt;
          &lt; input name=\"submit\" type=\"submit\" value=\"absenden\"/&gt;
      &lt; /form&gt;
       
&lt; ?php
    $Empfaenger = \"[email protected]\";
    if($_REQUEST['submit']){
      if(empty($_REQUEST['name']) || empty($_REQUEST['email'])
       || empty($_REQUEST['text']))
      {
        echo\"Bitte f&uuml;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;      }
    }
    
?&gt;

  &lt; /body&gt;
&lt; /html&gt;'
?>

Fehlermeldung:

: 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 &lt; 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?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben