Bildquelle : Desktop !
PHP Code ist irgendwie nicht ganz richtig ?
- Scene-Sector
- Geschlossen
- Erledigt
-
-
Du frägst auch von $sql ab. Das ist ja nur rein der String. Du musst das Ergebnis der Query abfragen. In deinem Fall $check
mysql_num_rows($check)
und bei mysql_fetch_object auch $check -
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 .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.phpFehler 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
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 ...
PHP
Alles anzeigen<html> <body> <title>MD5 Hash Search ( Under Construction! )</title> <form action="<?php echo $_SERVER['PHP_SELF']; ?>"> MD5 Hash: <input type="text" name="md5" value=""> <br><br> <input type="submit" value="Search MD5"> </form> <?php include "config.php"; if(!isset($_GET['md5'])){ die ("Es wurde kein gültiger Wert eingegeben !!!"); } $sql = new MySqli($config['hostname'], $config['username'], $config['password'], $config['database']); $md5 = mysql_real_escape_string($_GET['md5']); $hash = $sql->Query("SELECT md5, plaintext FROM hash WHERE md5 = '" . mysql_real_escape_string($_GET["md5"]) . "'"); $result = mysql_query($hash); if (!$hash) { die('Ungültige Anfrage: ' . mysql_error()); } if(!mysql_num_rows($result) > 0) { die ("Zu dem angegebenen Hash '$md5' wurde kein Eintrag gefunden!"); } echo "<table border = '5'> <td>MD5 Hash</td> <td>Plaintext</td>"; while($row = $hash->Fetch_Object()) { echo"<tr> <td>$row->md5</td> <td>$row->plaintext</td> </tr>"; } echo '</table>'; ?> </body> </html>
-
Naja, daran gibts noch zu arbeiten
So siehts besser aus:
PHP
Alles anzeigen<html> <body> <title>MD5 Hash Search ( Under Construction! )</title> <form action=""> MD5 Hash: <input type="text" name="md5" value=""> <br><br> <input type="submit" value="Search MD5" required> </form> <?php error_reportin(E_ALL); include "config.php"; if(!isset($_GET['md5'])){ die ("Es wurde kein gültiger Wert eingegeben !!!"); } $sql = new MySqli($config['hostname'], $config['username'], $config['password'], $config['database']); $md5 = $sql->real_escape_string($_GET['md5']); $result = $sql->query("SELECT md5, plaintext FROM hash WHERE md5 = '.$md5.'")or die($sql->error); if($result->num_rows == 0) { die ("Zu dem angegebenen Hash '$md5' wurde kein Eintrag gefunden!"); } else { echo "<table border = '5'> <td>MD5 Hash</td> <td>Plaintext</td>"; while($row = $sql->fetch_object()) { echo"<tr> <td>$row->md5</td> <td>$row->plaintext</td> </tr>"; } echo '</table>'; } ?> </body> </html>
-
Das ganze Teil funktioniert hier mal so überhaupt nicht, da sind weil es jeder anders macht mehr Fehler drin als ich haben möchte ! Ich hatte eine Version die ich nun nicht mehr habe da hat es funktioniert aber es gab halt noch einen Fehler.
-
Was funktioniert denn an meiner Version nicht?
-
Kann ich dir gerne mal Zeigen, PM ist unterwegs !
-
Kann ich dir gerne mal Zeigen, PM ist unterwegs !
Ich hab kein TeamViewer. Den Fehler, der angezeigt wird kannst du auch hier posten -
-
Du kannst keinen Menschen dazu zwingen, irgendwas runter zu laden und zu nutzen. Ich habe auch kein TeamViewer, aus dem einfachen Grund, dass ich meinen Computer nicht zu müllen möchte. -
Wenn du deinen Fehler nicht posten möchtest, dann solltest du erst gar nicht nach Hilfe fragen. So funktioniert das hier nicht im Forum
ZitatPHP$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
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 -
Goldkiller: Wenn ich das richtig verstehe gibt er in den input bereits einen md5 String ein. Den muss er dann nicht mehr hashen lassen
//Goldkiller: Hast recht, nehme es raus :-0
-
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
PHP
Alles anzeigen<html> <head> <title>MD5 Hash Search ( Under Construction! )</title> </head> <body> <?php error_reportin(E_ALL); require_once('config.php'); if(!isset($_GET['md5'])){ die("Es wurde kein gültiger Wert eingegeben !!!"); } $connection = new MySqli($config['hostname'], $config['username'], $config['password'], $config['database']); $md5 = $connection->real_escape_string($_GET['md5']); $result = $connection->query("SELECT md5, plaintext FROM hash WHERE md5 = '.$md5.'") or die($connection->error); if($result->num_rows == 0) { die ("Zu dem angegebenen Hash '$md5' wurde kein Eintrag gefunden!"); } else { echo "<table border = '5'> <td>MD5 Hash</td> <td>Plaintext</td>"; while($row = $result->fetch_object()) { echo"<tr> <td>$row->md5</td> <td>$row->plaintext</td> </tr>"; } echo '</table>'; } ?> <form method="get"> MD5 Hash: <input type="text" name="md5" /><br /><br /> <input type="submit" placeholder="Search MD5" required> </form> </body> </html>
-
xD Öhm ja aber nun habe ich es auch anders gelöst bekommen Danke dir !
PHP
Alles anzeigen<html> <body> <head> <title>MD5 Hash Search ( Under Construction! )</title> </head> <form action="<?php echo $_SERVER['PHP_SELF']; ?>"> MD5 Hash: <input type="text" name="md5" value=""> <br><br> <input type="submit" value="Search MD5"> </form> <?php if(isset($_GET['md5'])) { $md5 = $_GET['md5']; $mysql = mysql_connect("localhost","xgexqrhu_admin","xxxxxxxxxxxxxx"); mysql_select_db("xgexqrhu_test"); $qu = mysql_query("SELECT md5, plaintext FROM hash WHERE md5 = '" . mysql_real_escape_string($_GET["md5"]) . "'"); $ergebnis = $qu; if (!$ergebnis) { die('Ungültige Anfrage: ' . mysql_error()); } /* Check if something was found */ if(mysql_num_rows($ergebnis) != 1){ die ("Zu dem angegebenen Hash '$md5' wurde kein Eintrag gefunden!"); } echo "<table border = '5'> <td>MD5 Hash</td> <td>Plaintext</td>"; while($row = mysql_fetch_object($qu)) { echo"<tr> <td>$row->md5</td> <td>$row->plaintext</td> </tr>"; } } ?> </body> </html>
-
schon genug verpfuscht
Und du nennst unsere Beispiele verpfuscht?
Aber solang es funktioniert, kannst du mit deinem Code glücklich werden -
Und du nennst unsere Beispiele verpfuscht?
Aber solang es funktioniert, kannst du mit deinem Code glücklich werdenWas gefällt dir denn an meinem Code nicht ?! Du kannst natürlich ein Example auf deinem PC mit exakt deinem Code aufsetzen und selber sehen das dein Code fehler ausgibt !
-
$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 abfragenUnd 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;
PHPwhile($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 !
-