PHP Code ist irgendwie nicht ganz richtig ?

  • Da hast du einige Fehler drinne udn bitte poste nächstes Mal auch dein Code dazu.


    Fehler 1: md5 ist ebenfalls eine Funktion , welche bei MYSQL zur verfügung geht um einen Sting zu hashen, daher solltest du backticks nutzen um die Namen der Spalten zu maskieren.


    Code
    $sql = "SELECT `md5`, `plaintext` FROM `hash` WHERE `md5` = '". mysql_real_ecape_string($_GET['md5'])."' LIMIT 1;";


    Fehler 2:
    Du prüfst das Query ab ? Wäre es nicht sinnvoller den Rückgabewert abzufragen ob dieser NULL ist .


    Code
    $check = mysql_query($sql);
    if(!check) {
    ....
    }


    Fehler 3:
    Auch die Funktionen mysql_num_rows und mysql_fetch_object benötigen die Rückgabe des Queries als Parameter um damit zu arbeiten.


    siehe auch :
    http://php.net/manual/de/function.mysql-num-rows.php


    SQL
    if(mysql_num_rows($check) != 1) {
    ...
    
    
    }


    Code
    $row = mysql_fetch_object($check);


    Fehler 4: Du möchtest bestimmt keine Memoryleaks bedeutet Speicher , welcher nicht freigegeben wird und unnötig den RAM ausnutzt , daher immer den Speicher wieder freigeben

    Code
    mysql_free_result($check);



    Tipp: Die MySQL-Funktionen von PHP sind veraltet nutzte daher PDO oder MySQLI , welcher auch schneller sind.

  • Hab mal den Code angepasst aber nicht direkt auf die hier angegebenen Hinweise derzeitig geachtet ...


  • Naja, daran gibts noch zu arbeiten ^^


    So siehts besser aus:

    Einmal editiert, zuletzt von H4rd_B4se ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wenn du deinen Fehler nicht posten möchtest, dann solltest du erst gar nicht nach Hilfe fragen. So funktioniert das hier nicht im Forum


    Zitat
    PHP
    $result = $sql->query("SELECT md5, plaintext FROM hash WHERE md5 = '.$md5.'")or die($sql->error);  // Backticks ` für die Spalte md5 wären nicht schlecht
    
    
    if($sql->num_rows == 0) { // anstatt $sql muss dort schon mal $result hin.
        die ("Zu dem angegebenen Hash '$md5' wurde kein Eintrag gefunden!");
    }


    Da hast du eine Fehlerbeschreibung als Kommentar.


    Zitat
    PHP
    <title>MD5 Hash Search ( Under Construction! )</title>


    Das title Tag gehört außerdem in den head, nicht den body.


    Sollte es noch immer nicht klappen,poste den Fehler.



    //Edit:
    Was du dort machst, gibt es im Internet haufenweise. Nennt sich Rainbow Table.


    //Edit:
    Siehe Hard_Base

    Einmal editiert, zuletzt von Goldkiller ()

  • Ich mach da nichts mehr dran, schon genug verpfuscht worden jeder denkt er kann es aber im prinzip muss ich erst 100 Zeilen einfügrn und hab somit mehr müll als ich brauche ... Ganz simpel eintipen enter abfrage der sql ausgabe und nicht erst noch 100 weitere unnütze funktionen was keiner braucht danke dennoch !

  • So müsste es funktionieren, ansonsten weiß ich auch nicht weiter

  • xD Öhm ja aber nun habe ich es auch anders gelöst bekommen :D Danke dir !


  • $ergebnis = $qu;
    Wie unnötig ist das denn?


    die('Ungültige Anfrage: ' . mysql_error());
    Kannst du wie in meinem Beispiel hinten an die query hängen, dann musst du nicht !$ergebnis abfragen


    Und jetzt verwendest du wieder den alten MySQL Stil

  • Würde ich das herausnehmen was du da angibst, würde das Script nicht funktionieren! Schau es dir einmal mehr als nur mit einem drüber gucken an!


    PHP
    $qu = mysql_query("SELECT md5, plaintext FROM hash WHERE md5 = '" . mysql_real_escape_string($_GET["md5"]) . "'");
    
        $ergebnis = $qu;


    PHP
    while($row = mysql_fetch_object($qu))
        {
            echo"<tr>
    	<td>$row->md5</td>
    	<td>$row->plaintext</td>
            </tr>"; 
        }


    Wie gesagt, wäre das Ergebnis nicht vorhanden würde das nicht funktionieren, glaub mir !

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen