Ankündigung

Einklappen
Keine Ankündigung bisher.

if Abfragen problem

Einklappen

Neue Werbung 2019

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

  • if Abfragen problem

    Tach, ich hab ne längere if Abfrage, werde aber an einer bestimmten Stelle IMMER auf den index weiter geleitet werde!
    Also, die Website tut folgendes:
    per GET wird ein hash übergeben. Dann wird in der Datenbank danach gesucht, ob der existiert, wenn ja, wird die zugehörige URL ausgelesen und in einem Frame ausgegeben. Funzt auch. Wenn das jetzt PW gesichert ist, kommt ne Abfrage. Da kann ich das PW eingeben und abschicken! Aber ich werde immer auf den Index geleitet!

    hab hier ne lange verschachtelte Abfrage:

    PHP-Code:
    $hash $_GET['hash'];
    $abfrage sprintf("SELECT url, crypt, password FROM $table WHERE hash = '%s' LIMIT 1"mysql_real_escape_string($hash));
    $ergebnis mysql_query($abfrage);
    $var mysql_fetch_assoc($ergebnis);
    $url $var['url'];
    $crypt $var['crypt'];
    $password $var['password'];
        if(
    $_GET['pw'] == 1)
        {
            
    $pw md5($_GET['pw']);
            if(
    $pw == $password)
            {
                if(
    $crypt == "1"
                {
                    echo 
    '
                    <HTML>
                    <HEAD>
                    <TITLE>'
    .$url.'</TITLE>
                    </HEAD>
                    <frameset border=\'0\' frameborder=\'0\'>
                    <frame src=\''
    .$url.'\' name=\'links\' marginwidth=\'0\' marginheight=\'0\' scrolling=\'auto\'>
                    <noframes>
                    <a href="'
    .$url.'">Klick</a>
                    </noframes>
                    </frameset>
                    </HTML>
                    '
    ;
                }
                else 
                { 
                
    header("Location: $url"); 
                } 
            }
            else
            {
                if(
    $_COOKIE['width'] < 800 AND $_COOKIE['height'] < 500) { include('m_header.inc.php'); } else { include('header.inc.php'); }
                echo 
    "<p>Das Passwort ist falsch!</p>";
                include(
    'footer.inc.php');
            }
        }
        else
        {
            if(
    $var == false)
            {
                
    header("Location: index.php?err=404"); exit;
            }
            if(
    $password != AND strlen($password) > 10)
            {
                if(
    $_COOKIE['width'] < 800 AND $_COOKIE['height'] < 500) { include('m_header.inc.php'); } else { include('header.inc.php'); }
                echo 
    '<p>
                Dieser Link ist passwortgeschützt.</p>
                <form action="url.php?pw=1" method="post" class="textblock">
                <input type="text" size="33" maxlength="200" name="password" class="inputfeld">
                <input type="submit" value="Absenden" class="inputfeld">
                </form>'
    ;
                include(
    'footer.inc.php');
            }
            else
            {
                if(
    $crypt == "1"
                {
                    echo 
    '
                    <HTML>
                    <HEAD>
                    <TITLE>'
    .$url.'</TITLE>
                    </HEAD>
                    <frameset border=\'0\' frameborder=\'0\'>
                    <frame src=\''
    .$url.'\' name=\'links\' marginwidth=\'0\' marginheight=\'0\' scrolling=\'auto\'>
                    <noframes>
                    <a href="'
    .$url.'">Klick</a>
                    </noframes>
                    </frameset>
                    </HTML>
                    '
    ;
                }
                else 
                { 
                    
    header("Location: $url"); 
                }
            }
        } 
    Ich weiß nicht, wieso ich IMMER auf die Startseite geleitet werde!

    Als Datenbankbeispiel ein Eintrag:
    id | hash | url | crypt | password
    25 | 82e509d9 | Fernsehprogramm von TVinfo - sehen was läuft - Fernsehprogramm Heute ab 17:30 Uhr | 1 | 68124427ce41a87dfcbea86ef95a8c09
    "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."


  • #2
    Oha, sorry, aber was ist denn das für ein Gruselcode?
    Ich weiß nicht, wieso ich IMMER auf die Startseite geleitet werde!
    Mach dir am Besten noch mal über die Logik deines Codes Gedanken. So richtig klar wird einem das glaube ich nicht.
    Da sind zu viele Hashwerte und und ungehashte Passwörter unterwegs und der Vergleich des Hashes mit der Datenbank und der anschließende Vergleich das ungehashten Passworts sieht mir auch eher nach doppelt gemoppelt hält besser, ist aber unnötig aus.

    Keine Ahnung, was man jetzt sonst so antworten könnte.
    http://hallophp.de

    Kommentar


    • #3
      Der Code ist mir viel zu unübersichtlich, um mich da jetzt näher mit zu beschäftigen.

      Was er allerdings erkennen lässt, ist eine extrem unsaubere Art zu Programmieren.
      Stelle bitte das error_reporting auf E_ALL und display_errors auf on - und beseitige dann zunächst alle Meldungen, die aus deinem Code in den unterschiedlichen Verzweigungsfällen resultieren.


      Und wenn du dann noch Fragen hast - dann liefere bitte halbwegs sauber strukturierten und vor allem auch sinnvoll kommentierten Code mit.

      Kommentar

      Lädt...
      X