1385marcel: Links kenntlich machen

Hallo liebe Leute,
ich habe folgendes Problem...

Ich baue mein Gästebuch gerade von HTML/PHP auf HTML/PHP/SQL um.
Jetzt möchte ich das die URL's in den Userbeiträgen als Link sichtbar sind und auch entsprechend auf das Ziel verweisen.

Derzeit läuft es wie folgt:
1. der User schreibt seinen Text mit Link in ein Formular
2. der Formularinhalt wird dann in die SQL Datenbank umgeleitet
3. Das Gästebuch liest den Inhalt der SQL-DB u. gibt ihn auf der Site aus
4. PROBLEM ein Link wird als ganz normaler Text wiedergegeben u. nicht automatisch als Link erkannt

Ich suche und suche und bin verunsicherter als zu Beginn.
(hab mich schon bei htmlentities eingelesen doch weiß ich nicht so recht wie ich das einbauen soll)

!!! Mir würde für die URL-Erkennung (wenn ihr mir nicht bei einer automatischen Erkennung aus dem Text helfen könnt)auch die Variante hier im Forum ausreichen (der Link Button)

Mein Quellcode:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Feuerwehrverein Falken - Internes</title>
           <link rel="stylesheet" href="../Hintergrundstyle-01.css" type="text/css">
           <style> A {text-decoration: none;} A:Hover {text-decoration: underline;} </style>
           <meta name="robots" content="noindex">
           <meta name="robots" content="nofollow">
           <meta name="robots" content="noindex, nofollow">

<script type="text/javascript">
function FensterOeffnen (Adresse) {
  MeinFenster = window.open(Adresse, "Zweitfenster", "height=200,width=470,left=100,top=200,scrollbars=yes");
  MeinFenster.focus();
}
</script>

</head>  
<body link="#800000" vlink="#800000" alink="#800000">  
<div id="gesamt\_kurz" align="left">  


  <div id="ueberschrift\_members\_area">  

Unser Gästebuch
  </div>

   <div id="content\_members\_area">  

<div id="members_form" align="left">

<br><br>
<h3><a name="neuereintrag">Neuer Eintrag:</a></h3>
<form action="eintrag-einfuegen.php" method="post">
<table border="0">
 <tr>

<td><input name="Name" maxlength="50" type="text" value="Name:"></td>
 </tr>
 <tr>

<td><input maxlength="40" name="Titel" type="text" value="Titel:"></td>
 </tr>
 <tr>

<td><textarea id="textarea_members" cols="70" name="Eintrag" rows="5">Beitrag</textarea></td>
 </tr>
 <tr>
  <td align="center" colspan="2">
  <input name="Send" type="submit" value="Eintragen">
  <input name="Reset" type="reset" value="Löschen">
  </td>
 </tr>
</table>
</form>
</div>
<br>

<?php
$DatabasePointer = mysql_connect("localhost", "tabelle", "username");
mysql_select_db("datenbank", $DatabasePointer);
$ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer);
?>

<?php
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
{
   $Gaestebuch = mysql_fetch_object($ResultPointer);
?>

<tr>
  <td>
   <font color="#800000"><b><hr id="strich">
    <?php echo$Gaestebuch->Name; ?></b>
   </font> am <b><?php echo substr($Gaestebuch->Erstellt, 8, 2); ?>.
   <?php echo substr($Gaestebuch->Erstellt, 5, 2); ?>.
   <?php echo substr($Gaestebuch->Erstellt, 0, 4); ?>
   <?php echo substr($Gaestebuch->Erstellt, 10); ?></b>
  </td>
 </tr>
 <tr>
  <td>
   <br>
   <b>
    <?php echo$Gaestebuch->Titel; ?>
   </b>
  </td>:
 </tr>
 <tr>
  <div id="gb_background_eintrag">
   <td>
    <?php
      echo nl2br($Gaestebuch->Eintrag);
    ?>
   </td>
    <div id="gb_delete_link">
     <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href); return false">Eintrag löschen</a>
    </div>
  </div>
 </tr>

<tr>
  <td></td>
 </tr>

<?php
}
?>

</div title="schließt content_members_area">
</div title="schließt gesamt_kurz">

</body>
</html>

  1. function linker($link)  
     {  
    $link = htmlspecialchars($link, ENT_QUOTES, "UTF-8");  
     $link = str_replace("http://www.","www.",$link);  
     $link = str_replace("http://www.","www.",$link);  
     $link = str_replace("http//www.","www.",$link);  
     $link = str_replace("www.","http://www.",$link);  
     $link = preg_replace(  
    "/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a href=\'http://$1\' target=\'_blank\'>$1</a>", $link);  
      
     $link = preg_replace(  
    "/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.  
    ([a-zA-Z]{2,3}|[0-9]{1,3})(\]?))/i","<a href=\'mailto:$1\'>$1</a>",$link);  
      
     $link = str_replace(" target=\'_blank\'>http://www."," target=\'_blank\'>www.",$link);  
      
    $link = str_replace("http://http://www.","http://www.",$link);  
      
    $link = nl2br($link);  
    $linkx = $link;  
     return $linkx;  
     }  
    
    

    die funktion macht dir aus www.google.de und http://www.google.de -> <a href="htttp://www.google.de">www.google.de</a>

    1. die input variable "$link" kann dabei natürlich ein langer text sein. Die funktion sucht die links heraus und wandelt sie um. Email adressen übrigens ebenso... vielleicht musst du sie dir noch etwas anpassen (Charset, falls du nicht UTF-8 verwendest usw.)

      1. die input variable "$link" kann dabei natürlich ein langer text sein. Die funktion sucht die links heraus und wandelt sie um. Email adressen übrigens ebenso... vielleicht musst du sie dir noch etwas anpassen (Charset, falls du nicht UTF-8 verwendest usw.)

        -----------------------------------------------------------------------

        Hallo nocheinmal

        Danke dir erstmal für den Quellcode. Ich bin dahingehend wahrscheinlich noch zu sehr "Anfänger".

        Ich verstehe zwar was der Code tut (sucht u. ersetzt Zeichenfolgen um zum Schluß <a href...>...</a> rauszubekommen), jedoch noch nicht wie ich ihn in meinen einbaue, damit er funktioniert.

        Ich bitte dich nocheinmal um Hilfe (bezogen auf meinen Quellcode evtl mit dem einen o. anderen Kommentar ... so lerne ich gleich noch was).

        Ich danke dir im Voraus
        gruß Marcel

        1. am anfang wendet die funktion htmlspecialchars an. Damit werden ö und ä usw. in html characktere umgewandelt. ist nicht wirklich wichtig für die funktion. input für htmlspecialchars ist in diesem fall UTF-8 Code. Wenn du probleme hast mit der Darstellung von sonderzeichen kannst du die zeile auch probehalber rausnehmen, oder schauen ob du da etwas ändern musst

          die funktion sucht und ersetzt erstmal im text http://www. mit www. (damit das im text nicht auftaucht.
          das macht sie 2 mal, weil es bei mir mit einem mal zu fehlern gekommen ist (das http:// ist noch da geblieben... aber eventuel wurde bei mir schon beim inputt ein fehler gemacht das das auch zwei mal da war und es daher zwei mal weg gemacht werden musste... ich bin selbst noch ein anfänger)

          Als nächstes ersetzt die funktion auch noch http// fals die : weg gelassen wurden im Link.

          Dann kommen zwei ersetzungen mit regular expressions. Das ist ne tolle sache, aber ein Thema für sich. Bei komplexen ersetzungen kann man dmait eine menge anstellen. einfach mal googlen.
          Die erste RegEx ersetzt alles was das schema eines Links hat. Und macht daraus ein Link mit html atribut.
          Der zweite ersezt alles was wie eine emailadresse aufgebaut ist und macht eine anklickbare email adresse (achtung, spam bots suchen gerne links in HTML seiten... wenn du deine user schützen willst die emails suchen und durch *** oder so etwas ersetzen... allerdings, wer so blöd ist und seine email öffentlich macht... ;)  )

          am ende wendet die funktion noch ein nl2br an. das hast du ja selbst schon verwendet.

          Die funktion selbst schreibt du einfach so wie sie ist oben in php code in deine seite.
          Dann ist die funktion für diese seite definiert und du kannst sie an späterer stelle belibig anwenden.

          Zb. in deinem fall denke ich bei

          <?php
                echo nl2br($Gaestebuch->Eintrag);
              ?>

          da kannst du dann anstelle der funktion nl2br() die funktion linker() anwenden. (nl2br ist ja schon in linker() enthalten.)

          das sähe dann so aus:
          <?php
                echo linker($Gaestebuch->Eintrag);
              ?>

          oder du löscht nl2br aus der funktion linker raus und läst sie bei der php ausgabe stehen:
          <?php
                echo nl2br(linker($Gaestebuch->Eintrag));
              ?>

          1. Entschuldige, das war gerade ich in deinem Gästebuch (aber du hast es ja zum glück schnell gefixt.)

            Du musst auf jedenfall überall wo usereingaben gemacht werden können htmlspecialchars() anwenden (das ist ja auch in meiner funktion am anfang).
            Das wandelt dir nähmlich u.a. "</div>" in "&gt;" um und verhindert so also, das dir jemand html code einschleust... also auch dort wo man den namen eingibt usw. diese funktion anwenden.
            Ob du das vor der Ausgabe machst oder vor dem speichern in die Datenbank ist mir egal, ich mache es meistens davor. Auch wenn ich schon oft gehört habe man soll es erst vor der ausgabe machen (grund: wenn jemand zb. Bäume sucht und in der Datenbnak aber "B&Auml;ume" steht findet er natürlich nichts...)

            1. htmlspecialchars() ... vor der ausgabe machen (grund: wenn jemand zb. Bäume sucht und in der Datenbnak aber "B&Auml;ume" steht findet er natürlich nichts...)

              wenn ich mich recht erinnere kümmert sich nur htmlentities() auch um Umlaute (die sind ja auch keine "speziellen HTML-Zeichen")

              1. htmlspecialchars() ... vor der ausgabe machen (grund: wenn jemand zb. Bäume sucht und in der Datenbnak aber "B&Auml;ume" steht findet er natürlich nichts...)

                wenn ich mich recht erinnere kümmert sich nur htmlentities() auch um Umlaute (die sind ja auch keine "speziellen HTML-Zeichen")

                ---------------------------------------------------------------------------
                Hey Leute,

                dankeschön für eure Unterstützung. Das mit der linkerfunktion läuft prima.
                Es gibt aber noch ein paar kleine Problemchen.

                1.) Wenn ich z.B. www.google.de eintrage wird dies als Link dargestellt u. kann angeklickt werden --> Super so solls sein

                2.) Klicke ich den link www.google.de jedoch an, dann geht er auf die Seite
                http://feuerwehrverein-falken.de/'http://www.google.de/'

                http://feuerwehrverein-falken.de ist meine Website (damit erreicht der User normalerweise die Eingangsseite der Website)

                Mit der URL findet er google.de natürlich nicht. Wie kann ich das beheben,
                so das er nur auf www.google.de
                und nicht
                auf http://feuerwehrverein-falken.de/'http://www.google.de/'?
                verlinkt???

                --------------------------------------------------------------

                PS ich wurschtel mich grad durch htmlentities ... is gar nicht so leichte Kost wenn man kein Profi ist ... aber es ist ja noch kein Meister vom Himmel gefallen.

                Gruß
                Marcel

                1. Hallo,

                  wenn ich mich recht erinnere kümmert sich nur htmlentities() auch um Umlaute (die sind ja auch keine "speziellen HTML-Zeichen")

                  ... und eben deshalb sollte man htmlentities() meiden.

                  2.) Klicke ich den link www.google.de jedoch an, dann geht er auf die Seite
                  http://feuerwehrverein-falken.de/'http://www.google.de/'

                  Zeig mal einen Quellcodeausschnitt (Browser-Quellcode!), der dabei entsteht, und nochmal das Script im Zusammenhang. Sieht aus, als hättest du da irgendwo noch Anführungszeichen eingebaut.

                  PS ich wurschtel mich grad durch htmlentities ...

                  Vergiss am besten wieder, dass es htmlentities() gibt. In gefühlten 99% aller Fälle ist htmlspecialchars() genau das, was man braucht. Damit maskiert man die Kleiner/Größer-Zeichen, das Und-Zeichen und Anführungszeichen. Mehr braucht's nicht.

                  aber es ist ja noch kein Meister vom Himmel gefallen.

                  "Mami, Mamiii, Thomas ist auf der Treppe gestürzt!"
                  "Du liebe Güte, hat er was gebrochen?"
                  "Ja, sieht aus wie ein Brötchen und etwas Kakao."  ;-)

                  Schöne Eiertage,
                   Martin

                  --
                  F: Wer waren die ersten modernen Politiker?
                  A: Die Heiligen drei Könige. Sie legten die Arbeit nieder, zogen teure Klamotten an und gingen auf Reisen.
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  1. Nun denn der Quellcode:

                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                           "http://www.w3.org/TR/html4/loose.dtd">
                    <html>
                    <head>
                      <title>Feuerwehrverein Falken - Internes</title>
                               <link rel="stylesheet" href="../Hintergrundstyle-01.css" type="text/css">
                               <!-- <script type="text/javascript" src="http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"></script> -->
                               <style> A {text-decoration: none;} A:Hover {text-decoration: underline;} </style>
                    <meta name="robots" content="noindex">
                    <meta name="robots" content="nofollow">
                    <meta name="robots" content="noindex, nofollow">

                    <script type="text/javascript">
                    function FensterOeffnen (Adresse) {
                      MeinFenster = window.open(Adresse, "Zweitfenster", "height=200,width=470,left=100,top=200,scrollbars=yes");
                      MeinFenster.focus();
                    }
                    </script>

                    </head>  
                    <body link="#800000" vlink="#800000" alink="#800000">  
                    

                    <a name="Seitenanfang"> </a>
                    <div id="gesamt_kurz" align="left">

                      <div id="ueberschrift\_members\_area">  
                    

                    Unser Gästebuch
                      </div>

                       <div id="content\_members\_area">  
                    

                    <div id="members_form" align="left">

                    <form action="eintrag-einfuegen.php" method="post">
                    <table border="0">
                     <tr>

                    <td><input name="Name" maxlength="50" type="text" value="Name:"></td>
                     </tr>
                     <tr>

                    <td><input maxlength="40" name="Titel" type="text" value="Titel:"></td>
                     </tr>
                     <tr>

                    <td><textarea id="textarea_members" cols="70" name="Eintrag" rows="5">Beitrag</textarea></td>
                     </tr>
                     <tr>
                      <td align="center" colspan="2">
                      <input name="Send" type="submit" value="Eintragen">
                      <input name="Reset" type="reset" value="Löschen">
                      </td>
                     </tr>
                    </table>
                    </form>
                    </div>

                    <?php
                    $DatabasePointer = mysql_connect("localhost", "", "");
                    mysql_select_db("", $DatabasePointer);
                    $ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer);

                    function linker($link)
                     {
                    $link = htmlspecialchars($link, ENT_QUOTES, "UTF-8");
                     $link = str_replace("http://www.","www.",$link);
                     $link = str_replace("http://www.","www.",$link);
                     $link = str_replace("http//www.","www.",$link);
                     $link = str_replace("www.","http://www.",$link);
                     $link = preg_replace(
                    "/([\w]+://[\w-?&;#~=./@]+[\w/])/i","<a href='http://$1' target='_blank'>$1</a>", $link);

                    $link = preg_replace(
                    "/([\w-?&;#~=./]+@([?)[a-zA-Z0-9-.]+.
                    ([a-zA-Z]{2,3}|[0-9]{1,3})(]?))/i","<a href='mailto:$1'>$1</a>",$link);

                    $link = str_replace(" target='_blank'>http://www."," target='_blank'>www.",$link);

                    $link = str_replace("http://http://www.","http://www.",$link);

                    $link = nl2br($link);
                    $linkx = $link;
                     return $linkx;
                     }
                    ?>

                    <?php
                     for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
                    {
                        $Gaestebuch = mysql_fetch_object($ResultPointer);
                     ?>

                    <tr>
                      <td>
                        <font color="#800000"><b><hr id="strich">
                         <?php echo$Gaestebuch->Name; ?></b>
                        </font> am <b><?php echo substr($Gaestebuch->Erstellt, 8, 2); ?>.
                        <?php echo substr($Gaestebuch->Erstellt, 5, 2); ?>.
                        <?php echo substr($Gaestebuch->Erstellt, 0, 4); ?>
                        <?php echo substr($Gaestebuch->Erstellt, 10); ?></b>
                       </td>
                      </tr>
                     <tr>
                       <td>
                        <br>
                        <b>
                         <?php echo$Gaestebuch->Titel; ?>
                        </b>
                       </td>
                      </tr>
                      <tr>
                       <div id="gb_background_eintrag">
                        <td>
                         <?php
                          echo linker($Gaestebuch->Eintrag);
                         ?>
                        </td>
                         <div id="gb_delete_link">
                          <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                            return false">Eintrag löschen</a>
                         </div>
                        </div>
                      </tr>
                    <tr>
                     <td></td>
                    </tr>

                    <?php
                    }
                    ?>

                    </div title="schließt content_members_area">
                    </div title="schließt gesamt_kurz">

                    <div id="mitte_gb_area">
                    </div>

                    <div id="fusszeile">
                     <div id="link" align="center">
                      <a href="#Seitenanfang"> <b> zum Seitenanfang -> </b> </a>
                      </div>
                    </div>

                    </body>
                    </html>
                    ----------------------------------------------------------------------

                    Ok dann werd ich mich jetzt mal über htmlspecialchars() belesen. Danke für den Zeig in die richtigere Richtung.

                    Gruß Marcel

                    1. Hallo,

                      Nun denn der Quellcode:
                      [...]
                      <?php
                      $DatabasePointer = mysql_connect("localhost", "", "");
                      mysql_select_db("", $DatabasePointer);

                      nein, das ist eben *nicht* der erzeugte browserseitige HTML-Quellcode - das ist der serverseitige PHP-Code. Ich hatte ganz bewusst nach dem Code gefragt, der beim Browser ankommt, um das *Ergebnis* zu sehen und dann im zweiten Schritt schon zu wissen, worauf ich im PHP-Code achten muss.

                      Ciao,
                       Martin

                      --
                      Eifersucht ist so alt wie die Menschheit: Als Adam einmal spät heimkam, zählte Eva sofort seine Rippen.
                      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                      1. Hallo,

                        Nun denn der Quellcode:
                        [...]
                        <?php
                        $DatabasePointer = mysql_connect("localhost", "", "");
                        mysql_select_db("", $DatabasePointer);

                        nein, das ist eben *nicht* der erzeugte browserseitige HTML-Quellcode - das ist der serverseitige PHP-Code. Ich hatte ganz bewusst nach dem Code gefragt, der beim Browser ankommt, um das *Ergebnis* zu sehen und dann im zweiten Schritt schon zu wissen, worauf ich im PHP-Code achten muss.

                        Ciao,
                        Martin

                        ----------------------------------------------------------------
                        Hallo Martin,

                        evtl. ist das ja jetzt eine blöde Frage aber wie gesagt ich bin dahingehend noch am lernen... wie lasse ich mir denn den "Code anzeigen, der beim Browser ankommt"?
                        Muß ich da irgendetwas in eine Datei umleiten?
                        Wie meinst du das?

                        Gruß Marcel

                        1. Hi,

                          evtl. ist das ja jetzt eine blöde Frage

                          es gibt keine bl... - doch, es gibt auch blöde Fragen. Das ist aber keine, auch wenn ich meine, die Antwort sei selbstverständlich.

                          wie lasse ich mir denn den "Code anzeigen, der beim Browser ankommt"?

                          Über die Quellcode-Ansicht des Browsers, die leider in jedem Browser ein wenig anders zu erreichen ist. Schau dich mal in den Menüs um - "Ansicht" ist vielversprechend, manche Browser bieten den Befehl auch schon im Kontextmenü.

                          Ciao,
                           Martin

                          --
                          Treffen sich zwei Holzwürmer im Käse: "Na, auch Probleme mit den Zähnen?"
                          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                          1. Hi,

                            evtl. ist das ja jetzt eine blöde Frage

                            es gibt keine bl... - doch, es gibt auch blöde Fragen. Das ist aber keine, auch wenn ich meine, die Antwort sei selbstverständlich.

                            wie lasse ich mir denn den "Code anzeigen, der beim Browser ankommt"?

                            Über die Quellcode-Ansicht des Browsers, die leider in jedem Browser ein wenig anders zu erreichen ist. Schau dich mal in den Menüs um - "Ansicht" ist vielversprechend, manche Browser bieten den Befehl auch schon im Kontextmenü.

                            Ciao,
                            Martin

                            -------------------------------------------------------------------------
                            Hi Martin,

                            jetzt hab ich wieder was dazugelernt. War ganz einfach beim IE.
                            Danke für den Hinweis.

                            Ich will nicht vormucken aber ich glaube ein interessanter Part im Code
                            ist wohl:

                            <a href='http://www.bild.de' target='_blank'>www.bild.de</a> #

                            So sieht der also aus nachdem er durch den "linker" gelotst wurde...

                            Der komplette Code der Site:
                            ----------------------------

                            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                                   "http://www.w3.org/TR/html4/loose.dtd">
                            <html>
                            <head>
                              <title>Feuerwehrverein Falken - Internes</title>
                                       <link rel="stylesheet" href="../Hintergrundstyle-01.css" type="text/css">
                                       <!-- <script type="text/javascript" src="http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"></script> -->
                                       <style> A {text-decoration: none;} A:Hover {text-decoration: underline;} </style>
                            <meta name="robots" content="noindex">
                            <meta name="robots" content="nofollow">
                            <meta name="robots" content="noindex, nofollow">

                            <script type="text/javascript">
                            function FensterOeffnen (Adresse) {
                              MeinFenster = window.open(Adresse, "Zweitfenster", "height=200,width=470,left=100,top=200,scrollbars=yes");
                              MeinFenster.focus();
                            }
                            </script>

                            </head>  
                            <body link="#800000" vlink="#800000" alink="#800000">  
                            

                            <a name="Seitenanfang"> </a>
                            <div id="gesamt_kurz" align="left">

                             <div id="banner">  
                             </div>  
                            
                                <div id="nav\_links">  
                                 <div id="links">  
                                  <ul>  
                                   <li>  
                            	<a href ="../Verteiler.html">Zur Startseite</a>  
                                   </li>  
                                  </ul>  
                                 </div>  
                                </div>  
                            
                              <div id="ueberschrift\_members\_area">  
                            

                            Unser Gästebuch
                              </div>

                               <div id="content\_members\_area">  
                            

                            <p>
                                 Hat Ihnen unser Internetauftritt gefallen?
                                <br>
                                 Waren die von uns präsentierten Informationen
                                 für Sie anschaulich dargestellt und von Interesse?
                                <br>
                                An welchen Stellen sollten wir noch nachbessern?
                                <br>
                                Wir würden uns sehr darüber freuen wenn Sie uns an
                                Ihrer Meinung teilhaben ließen.
                               </p><br>

                            <div id="members_form" align="left">

                            <form action="eintrag-einfuegen.php" method="post">
                            <table border="0">
                             <tr>

                            <td><input name="Name" maxlength="50" type="text" value="Name:"></td>
                             </tr>
                             <tr>

                            <td><input maxlength="40" name="Titel" type="text" value="Titel:"></td>
                             </tr>
                             <tr>

                            <td><textarea id="textarea_members" cols="70" name="Eintrag" rows="5">Beitrag</textarea></td>
                             </tr>
                             <tr>
                              <td align="center" colspan="2">
                              <input name="Send" type="submit" value="Eintragen">
                              <input name="Reset" type="reset" value="Löschen">
                              </td>
                             </tr>
                            </table>
                            </form>
                            </div>

                            <tr>
                              <td>
                                <font color="#800000"><b><hr id="strich">
                                 der Linker</b>
                                </font> am <b>06.
                                04.
                                2012     09:14:42</b>
                               </td>
                              </tr>
                             <tr>
                               <td>
                                <br>
                                <b>
                                 wieder ein Link    </b>
                               </td>
                              </tr>
                              <tr>
                               <div id="gb_background_eintrag">
                                <td>
                                 <a href='http://www.bild.de' target='_blank'>www.bild.de</a>    </td>
                                 <div id="gb_delete_link">
                                  <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                    return false">Eintrag löschen</a>
                                 </div>
                                </div>
                              </tr>

                            <tr>
                             <td></td>
                            </tr>

                            <tr>
                              <td>
                                <font color="#800000"><b><hr id="strich">
                                 Webadministrator</b>
                                </font> am <b>03.
                                04.
                                2012     21:05:24</b>
                               </td>
                              </tr>
                             <tr>
                               <td>
                                <br>
                                <b>
                                 Blaulichtfahrzeuge    </b>
                               </td>
                              </tr>
                              <tr>
                               <div id="gb_background_eintrag">
                                <td>
                                 Auf der Website blaulichtfahrzeuge.net sind wir auch zu sehen unter: <a href='http://www.blaulichtfahrzeuge.net/v2/displayimage.php?album=10660&amp;pid=14920' target='_blank'>www.blaulichtfahrzeuge.net/v2/displayimage.php?album=10660&amp;pid=14920</a>    </td>
                                 <div id="gb_delete_link">
                                  <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                    return false">Eintrag löschen</a>
                                 </div>
                                </div>
                              </tr>

                            <tr>
                             <td></td>
                            </tr>

                            <tr>
                              <td>
                                <font color="#800000"><b><hr id="strich">
                                 Basti</b>
                                </font> am <b>02.
                                04.
                                2012     22:49:08</b>
                               </td>
                              </tr>
                             <tr>
                               <td>
                                <br>
                                <b>
                                 Gut gemacht    </b>
                               </td>
                              </tr>
                              <tr>
                               <div id="gb_background_eintrag">
                                <td>
                                 Top    </td>
                                 <div id="gb_delete_link">
                                  <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                    return false">Eintrag löschen</a>
                                 </div>
                                </div>
                              </tr>

                            <tr>
                             <td></td>
                            </tr>

                            <tr>
                              <td>
                                <font color="#800000"><b><hr id="strich">
                                 Mario Legies</b>
                                </font> am <b>30.
                                03.
                                2012     23:05:59</b>
                               </td>
                              </tr>
                             <tr>
                               <td>
                                <br>
                                <b>
                                 Gruß aus Gersdorf    </b>
                               </td>
                              </tr>
                              <tr>
                               <div id="gb_background_eintrag">
                                <td>
                                 Nach dem mich heute Abend ein Schreiben von Euch erreichte, musste ich natürlich sofort nach Eurer Seite sehen. Die Aufmachung find ich sehr anschaulich und ist mal was anders als die üblichen Feuerwehrseiten. Ich werde dies weiter empfehlen. Weiterhin gutes Gelingen.<br />
                            Mit kameradschaftlichen Güßen aus Gersdorf    </td>
                                 <div id="gb_delete_link">
                                  <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                    return false">Eintrag löschen</a>
                                 </div>
                                </div>
                              </tr>

                            <tr>
                             <td></td>
                            </tr>

                            <tr>
                              <td>
                                <font color="#800000"><b><hr id="strich">
                                 René Roscher</b>
                                </font> am <b>29.
                                02.
                                2012     20:54:00</b>
                               </td>
                              </tr>
                             <tr>
                               <td>
                                <br>
                                <b>
                                 Ein Lob    </b>
                               </td>
                              </tr>
                              <tr>
                               <div id="gb_background_eintrag">
                                <td>
                                 Schön gestaltete Seite mit vielen Informationen und Angeboten des Verein. Und ich war der 112. Besucher, welche Ehre!     </td>
                                 <div id="gb_delete_link">
                                  <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                    return false">Eintrag löschen</a>
                                 </div>
                                </div>
                              </tr>

                            <tr>
                             <td></td>
                            </tr>

                            <tr>
                              <td>
                                <font color="#800000"><b><hr id="strich">
                                 Roscher Daniel</b>
                                </font> am <b>16.
                                02.
                                2012     01:37:23</b>
                               </td>
                              </tr>
                             <tr>
                               <td>
                                <br>
                                <b>
                                 Seite    </b>
                               </td>
                              </tr>
                              <tr>
                               <div id="gb_background_eintrag">
                                <td>
                                 Super Seite - Prima!    </td>
                                 <div id="gb_delete_link">
                                  <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                    return false">Eintrag löschen</a>
                                 </div>
                                </div>
                              </tr>

                            <tr>
                             <td></td>
                            </tr>

                            </div title="schließt content_members_area">
                            </div title="schließt gesamt_kurz">

                            <div id="mitte_gb_area">
                            </div>

                            <div id="fusszeile">
                             <div id="link" align="center">
                              <a href="#Seitenanfang"> <b> zum Seitenanfang -> </b> </a>
                              </div>
                            </div>

                            </body>
                            </html>

                            1. Hallo,

                              Hi,
                              [...]
                              Ciao,
                              Martin

                              wenn du dir jetzt auch noch diese ärgerlichen Vollzitate abgewöhnst, sind wir wieder ein Stück weiter. ;-)

                              Ich will nicht vormucken aber ich glaube ein interessanter Part im Code ist wohl:

                              <a href='http://www.bild.de' target='_blank'>www.bild.de</a>

                              Das ist tatsächlich interessant - und falsch. Wenn die Backslashes, mit denen Anführungszeichen in PHP maskiert werden, plötzlich noch im HTML-Code auftauchen, ist etwas faul. Und es führt exakt zu dem Verhalten, das dich stört: Der Inhalt des href-Attributs beginnt mit einem einfachen Anführungszeichen, wird also relativ zur Basis-URL des Dokuments betrachtet.

                              <link rel="stylesheet" href="../Hintergrundstyle-01.css" type="text/css">

                              Tipp: Vermeide Großbuchstaben in URLs. Das ist eine häufige Fehlerquelle, weil die meisten Webserver unter Linux laufen und dieses System exakt zwischen Groß- und Kleinschreibung unterscheidet. Das heißt, eine Datei, die als "image038.JPG" auf dem Server liegt, wird unter "image038.jpg" nicht gefunden.

                              <body link="#800000" vlink="#800000" alink="#800000">

                              Meide veraltete HTML-Attribute zur Gestaltung; konzentriere von Anfang an alles, was Gestaltung ist, auf CSS.

                              <a name="Seitenanfang"> </a>

                              Wozu das? Erstens ist ein a-Element mit name als Verweisziel ein Relikt aus dem letzten Jahrtausend (normalerweise nimmt man ein ID-Attribut eines beliebigen Elements als Verweisziel), zweitens ist der Seitenanfang immer mit dem namenlosen Anker "#" erreichbar.

                              </div>

                              <tr>

                              Das ist kein korrektes HTML. Das table-Element hast du schon geschlossen, da kann nicht plötzlich wieder ein verwaistes tr auftauchen.

                              <td>
                                   <a href='http://www.bild.de' target='_blank'>www.bild.de</a>
                                  </td>

                              Ah, da ist er ja.

                              <div id="gb_delete_link">
                                    <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                      return false">Eintrag löschen</a>
                                   </div>
                                  </div>
                                </tr>

                              Auch das ist ungültiges HTML: Ein div-Element kann nie direktes Kindelement von tr sein.

                              <tr>
                                 <div id="gb_background_eintrag">
                                  <td>

                              Ach, so sieht der fehlerhafte Anfang dazu aus. Hatte ich weiter oben übersehen. Und noch ein Fehler: Eine ID muss dokumentweit einzigartig sein und darf nicht mehrmals vergeben werden.

                              </div title="schließt content_members_area">
                              </div title="schließt gesamt_kurz">

                              Das ist in HTML auch nicht erlaubt: Attribute im schließenden Tag.

                              Also fassen wir zusammen: Du hast ungültiges (fehlerhaftes) HTML, aber das hat nichts mit den falsch erzeugten Links zu tun. Aber bist du ganz sicher, dass du die Strings in den preg_replace()-Aufrufen mit doppelten und nicht mit einfachen Anführungszeichen geschrieben hast?

                              $link = preg_replace(
                              "/([\w]+://[\w-?&;#~=./@]+[\w/])/i","<a href='http://$1' target='_blank'>$1</a>", $link);

                              $link = preg_replace(
                              "/([\w-?&;#~=./]+@([?)[a-zA-Z0-9-.]+.
                              ([a-zA-Z]{2,3}|[0-9]{1,3})(]?))/i","<a href='mailto:$1'>$1</a>",$link);

                              Abgesehen davon sind die Backslashes in den Replace-Strings sowieso völlig unnötig, und im Suchmuster werden sie nur "zufällig" korrekt interpretiert, weil PHP sie nicht missverstehen *kann*. Ich würde allerdings beide Strings -also sowohl Suchmuster als auch Ersetzung- in einfache Anführungszeichen setzen, damit nicht irgendwelche PHP-Escapes dazwischenfunken. Und dann innerhalb des Ersetzungs-Strings doppelte Anführungszeichen (ohne Maskierung).

                              Und noch eine Sache zum Schluss: Ich weiß, es war nur als Beispiel gedacht. Die BILD-Zeitung findet es aber vermutlich nicht lustig, wenn du deren Domain als Beispiel verwendest. Dafür gibt es extra die abstrakten Beispiel-Domains example.org, example.net, example.com oder *.example.

                              Ciao,
                               Martin

                              --
                              F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
                              A: Mein Arzt hat mir Valium verschrieben.
                              F: Und das hilft?
                              A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.
                              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                              1. Hey Selfhtml Gemeinde speziell Martin

                                Ich habe infolge berechtigter Kritik nun, noch nicht alles aber doch allerhand, korrigiert.
                                (

                                • Slashes weg --> Links verweisen nun auf die richtige Adresse
                                • Großbuchstaben in URLs weg
                                • HTML-Attribute sind nun im CSS-File
                                • Anker u. Verweis auf Position der Site
                                • Korrekur der <Table>
                                • Korrektur der DIV's in der <Table>
                                • Attribute aus dem </DIV> Tag entfernt

                                und sogar die Testmailadresse wurde angepaßt ;-)
                                )

                                Nichtsdestotrotz ersuche ich weiterhin um Hilfe bei folgenden Problemen:

                                1.) Probehalber habe ich eine Mailadresse eingegeben (Im Gästebuchtext).
                                Wie bekomme ich es hin, das auch die hervorgehoben wird?

                                2.) Ich möchte die Eingabe von HTML in das gästebuch unterbinden. Dies versuche ich mit "htmlspecialchars".

                                Die Funktion sorgt doch (meine ich zumindest )dafür, daß Zeichen, welche von HTML interpretiert werden könnten, einfach nur als Textzeichen ausgegeben werden.
                                Doch verlangt sie doch auch den zu Prüfenden text als Variable (z.B. $Text)
                                wie bekomme ich es denn hin das mein Text durch eine Variable beschrieben wird um ihn dann der Funktion begreifbar zu machen?

                                Ich komme damit irgendwie nicht so recht klar. Evtl hat noch jemand eine Idee in welcher Weise die Funktion im GB verbaut werden kann.

                                Gruß Harcel

                                Hier nocheinmal meine aktuelle Version des GB
                                ----------Quellcode-----------------------------------------------

                                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                                       "http://www.w3.org/TR/html4/loose.dtd">
                                <html>
                                <head>
                                  <title>Feuerwehrverein Falken - Internes</title>
                                           <link rel="stylesheet" href="../hintergrundstyle-01.css" type="text/css">
                                           <!-- <script type="text/javascript" src="http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"></script> -->
                                           <style> A {text-decoration: none;} A:Hover {text-decoration: underline;} </style>
                                           <meta name="robots" content="noindex">
                                           <meta name="robots" content="nofollow">
                                           <meta name="robots" content="noindex, nofollow">
                                           <script type="text/javascript"> function FensterOeffnen (Adresse) {
                                            MeinFenster = window.open(Adresse, "Zweitfenster", "height=200,width=470,left=100,top=200,scrollbars=yes");
                                            MeinFenster.focus();}
                                           </script>
                                        </head>
                                <body>

                                <div id="gesamt\_kurz" align="left">  
                                
                                 <div id="banner">  
                                 </div>  
                                
                                    <div id="nav\_links">  
                                     <div id="links">  
                                      <ul>  
                                       <li>  
                                	<a href ="../Verteiler.html">Zur Startseite</a>  
                                       </li>  
                                      </ul>  
                                     </div>  
                                    </div>  
                                
                                  <div id="ueberschrift\_members\_area">  
                                

                                Unser Gästebuch
                                  </div>

                                <div id="content_members_area">
                                    <p>
                                     Hat Ihnen unser Internetauftritt gefallen?
                                    <br>
                                     Waren die von uns präsentierten Informationen
                                     für Sie anschaulich dargestellt und von Interesse?
                                    <br>
                                    An welchen Stellen sollten wir noch nachbessern?
                                    <br>
                                    Wir würden uns sehr darüber freuen wenn Sie uns an
                                    Ihrer Meinung teilhaben ließen.
                                   </p><br>

                                <div id="members_form" align="left">
                                 <form action="eintrag-einfuegen.php" method="post">
                                  <table border="0">
                                   <tr>
                                    <td><input name="Name" maxlength="50" type="text" value="Name:"></td>
                                   </tr>
                                   <tr>
                                    <td><input maxlength="40" name="Titel" type="text" value="Titel:"></td>
                                   </tr>
                                   <tr>
                                    <td><textarea id="textarea_members" cols="70" name="Eintrag" rows="5">Beitrag</textarea></td>
                                   </tr>
                                   <tr>
                                    <td align="center" colspan="2">
                                     <input name="Send" type="submit" value="Eintragen">
                                     <input name="Reset" type="reset" value="Löschen">
                                    </td>
                                   </tr>
                                  </table>
                                 </form>
                                </div><!-- schließt das Formular members_form-->

                                <?php // Stellt eine Verbindung mit der SQL Datenbank her
                                $DatabasePointer = mysql_connect("", "", "");
                                mysql_select_db("", $DatabasePointer);
                                $ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer);

                                // hebt Links hervor
                                function linker($link)
                                 {
                                $link = htmlspecialchars($link, ENT_QUOTES, "UTF-8");
                                 $link = str_replace("http://www.","www.",$link);
                                 $link = str_replace("http://www.","www.",$link);
                                 $link = str_replace("http//www.","www.",$link);
                                 $link = str_replace("www.","http://www.",$link);
                                 $link = preg_replace(
                                "/([\w]+://[\w-?&;#~=./@]+[\w/])/i","<a href='http://$1' target='_blank'>$1</a>", $link);

                                $link = preg_replace(
                                "/([\w-?&;#~=./]+@([?)[a-zA-Z0-9-.]+.
                                ([a-zA-Z]{2,3}|[0-9]{1,3})(]?))/i","<a href='mailto:$1'>$1</a>",$link);

                                $link = str_replace(" target='_blank'>http://www."," target='_blank'>www.",$link);
                                $link = str_replace("http://http://www.","http://www.",$link);

                                $link = nl2br($link);
                                $linkx = $link;
                                 return $linkx;
                                 }
                                ?>

                                <?php // Ließt die SQL Datenbank aus
                                 for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
                                {
                                    $Gaestebuch = mysql_fetch_object($ResultPointer);
                                 ?>

                                <!-- gibt den Inhalt der SQL Datenbank in Tabellenform aus-->
                                <table border="0" width="100%">
                                 <tr>
                                  <td>
                                   <font id="gb_autor"><b><hr id="strich">
                                    <?php echo$Gaestebuch->Name; ?></b>
                                   </font> am <b><?php echo substr($Gaestebuch->Erstellt, 8, 2); ?>.
                                    <?php echo substr($Gaestebuch->Erstellt, 5, 2); ?>.
                                    <?php echo substr($Gaestebuch->Erstellt, 0, 4); ?>
                                    <?php echo substr($Gaestebuch->Erstellt, 10); ?></b>
                                  </td>
                                 </tr>
                                 <tr>
                                  <td><br>
                                   <b> <?php echo$Gaestebuch->Titel; ?> </b>
                                  </td>
                                 </tr>
                                 <tr>
                                  <td>
                                   <div id="gb_background_eintrag">
                                    <?php echo linker($Gaestebuch->Eintrag);?>
                                    <div id="gb_delete_link">
                                     <a href ="gaestebuch-administration.php" onclick="FensterOeffnen(this.href);
                                       return false">Eintrag löschen
                                     </a>
                                    </div>
                                   </div>
                                  </td>
                                 </tr>
                                 <tr>
                                  <td></td>
                                 </tr>
                                </table>

                                <?php
                                }
                                ?>

                                </div> <!-- schließt content_members_area-->
                                </div> <!-- schließt gesamt_kurz-->

                                <div id="mitte_gb_area">
                                </div>

                                <div id="fusszeile">
                                 <div id="link" align="center">
                                  <a href="#"> <b> zum Seitenanfang -> </b> </a>
                                 </div>
                                </div>

                                </body>
                                </html>

                                1. Hallo Leute,

                                  habe es hinbekommen. Danke für eure Hilfe.
                                  Bis zum nächsten verflixten Problem

                                  Gruß
                                  Marcel

                            2. Kurze zwischenmeldung meinerseits:
                              Das mit den Links habe ich hinbekommen. Die Quellcodeanzeige hat mich draufgestoßen Danke nochmal.

                              ...aus

                              $link = preg_replace(
                              "/([\w]+://[\w-?&;#~=./@]+[\w/])/i","<a href='http://$1' target='_blank'>$1</a>", $link);

                              ...wurde

                              $link = preg_replace(
                              "/([\w]+://[\w-?&;#~=./@]+[\w/])/i","<a href='http://$1' target='_blank'>$1</a>", $link);

                              -->
                              'http://$1'

                              wird zu

                              href='http://$1'

                              Kaum macht man 's richtig, funktionierts

                              ...doofe Slashes. Ich mußte vorhin vor "Emotion  #*!?<..." erstamal aus dem Büro.
                              Manchmal ist's besser man hat n bißl Abstand...dann klappts auch mit dem Quellcode. :-)

                              2.) Kleineres Problem, welches sich dahingehend gerade aufgetan hat... Gebe ich eine EMail-Adresse ein wird die nicht gemarkert...??? Warum das nur? Der "mailto" Teil ist doch eigentlich in der linker Funktion beinhaltet!?

                              Gruß
                              Marcel

                2. htmlspecialchars() ... vor der ausgabe machen (grund: wenn jemand zb. Bäume sucht und in der Datenbnak aber "B&Auml;ume" steht findet er natürlich nichts...)

                  wenn ich mich recht erinnere kümmert sich nur htmlentities() auch um Umlaute (die sind ja auch keine "speziellen HTML-Zeichen")

                  PS ich wurschtel mich grad durch htmlentities ...

                  wozu soll das gut sein?
                  Ich hatte das nur erwähnt, weil mE die Info von "ichbins" dazu falsch war.