Ankündigung

Einklappen
Keine Ankündigung bisher.

Links aus einer Datenbank lassen sich nicht öffnen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Links aus einer Datenbank lassen sich nicht öffnen

    Hallo zusammen,

    ich bin neu im Forum und auch noch Anfänger. Ich bin dabei, eine bestehende Internetseite zu aktualisieren. Auf einer Seite wollen wir z. B. diverse Gewerbetreibende aufführen und zur Vereinfachung einen Link angeben, auf den dann direkt geklickt werden kann. Mein Vorgänger hat vor vielen Jahren die Programmierung vorgenommen. Es werden zwar sämtliche Namen und Beschreibungen der Firmen aus der Datenbank angezeigt. Lediglich die Links, die in der Datenbank richtig angelegt wurden, funktionieren nicht. Wenn man auf den Link klickt, kommt die Fehlermeldung "Umleitungsfehler".

    Hier der Code (auszugsweise) aus der php-Datei:

    PHP-Code:
    mysql_connect($server$Benutzer$Kennwort) or die ("<p>Es konnte keine Verbindung zu der Datenbank erstellt werden. Bitte überprüfen Sie die Angaben Server, Benutzer und Kennwort.");
    mysql_select_db("$db_name");
    $ergebnis mysql_query("SELECT * FROM $Taboption");
    $option mysql_fetch_object($ergebnis);
    $ergebnis mysql_query("SELECT id,PosRubrik,Rubrik,RubrikBeschreibung,RubrikAktiv FROM $Tabname where PosRubrik != '0' AND RubrikAktiv = '1' order by PosRubrik" );
    while(
    $row mysql_fetch_object($ergebnis)){

        
    $RubrikAnzeige mysql_query("SELECT id FROM $Tabname where Rubrik = '$row->Rubrik' AND LinkAktiv  = '1'" );
        if (( 
    mysql_num_rows($RubrikAnzeige) >= ) OR ($option->UserLink == 1)){
            
    $ergebnis1 mysql_query("SELECT id, Titel, PosLink, Kommentar, LinkAktiv, count, url FROM $Tabname where Rubrik = '$row->Rubrik' AND PosLink != '0' AND LinkAktiv = '1' order by PosLink" );
            unset(
    $Link_Bit);
            if (
    mysql_num_rows($ergebnis1) == )
                eval (
    "\$Link_Bit .= \"".template(Links_Not)."\";");
            while(
    $row1 mysql_fetch_object($ergebnis1)){
                if (empty(
    $option->Klick))
                    
    $url $row1->url;
                else
                    
    $url "zaehler.php?id=$row1->id";
                if (!empty(
    $option->Klickanzeigen))
                    eval (
    "\$Klick = \"".template(Klick)."\";");
                eval (
    "\$Link_Bit .= \"".template(Link_Bit)."\";");
            }
            if (
    $option->UserLink == 1)
                 eval (
    "\$UserLinkHinzu = \"".template(UserLinkHinzu)."\";");
            eval (
    "\$Ausgabe .= \"".template(Links)."\";");
        }
    }
    eval (
    "\$Ausgabe = \"".template(main)."\";");
    $Ausgabe .= '';        
    echo 
    $Ausgabe;
    function 
    template($template)
    {
        return 
    addslashes(implode("",file(templates."/".$template.".htm")));

    Hat jemand eine Idee, wie man das Problem lösen kann?

    Bereits jetzt vielen Dank.


  • #2
    Würde als ersten Schritt den fertigen Quelltext im Browser anschauen und den Link auf Korrektheit prüfen. Aus deinem Code oben kann man das nicht ableiten, scheinbar wird der in irgendwelchen perversen eval Statments zusammengebaut.

    So viele eval() wie da oben drinnen sind, das ist ja schon echt heftig! Noch nie gesehen sowas

    PHP-Code:
    eval ("\$UserLinkHinzu = \"".template(UserLinkHinzu)."\";"); 
    Anmerkung 2:

    mysql_ Erweiterung ist veraltet, wird bald nicht mehr funktionieren: http://php.net/manual/en/migration55.deprecated.php

    Und dann noch das

    PHP-Code:
    mysql_select_db("$db_name"); 
    $ergebnis mysql_query("SELECT * FROM $Taboption"); 
    Sinlose Anfürhungszeichen: http://php-de.github.io/jumpto/code-...n-doppelquotes

    SELECT * ist nicht schön: http://php-de.github.io/jumpto/code-smells/#select-

    LG
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar

    Lädt...
    X