![]() |
Re: MySQL & PHP-Problem
Ahh, danke Matze.
jfheins:
Delphi-Quellcode:
funktioniert wie bereits erwähnt nicht. Mir fällt auch kein Grund ein wieso es beim anderen nach genau dem gleichen Schema funktioniert...
$val = mysql_fetch_assoc($sql);
echo $val['Key']; oder die($val['Key']); |
Re: MySQL & PHP-Problem
Guten Morgen
Zitat:
Das würde auch erklären, wieso es bei deinem anderen Aufruf mit dem gleichen Aufbau (aber anderen Spaltennamen) funktioniert. Grüße, Matze |
Re: MySQL & PHP-Problem
Ja, das ist mir auch schon aufgefallen. Habs auch vorgestern mal getestet mit anderer Spalte Key2.
Werde jetzt nocheinmal systemmatisch von vorne bis hinten alles durchgehen und schauen, dass nirgends Key benutzt wird. Mal schaun... -.- |
Re: MySQL & PHP-Problem
Zitat:
Stelle Dir mal vor, der User gibt als Seriennummer in Deiner Delphi-Anwendung folgendes ein:
Code:
Das Statement was bei raus kommt ist folgendes:
123'; DELETE FROM TABLE Table2;
SQL-Code:
Das erste Statement liefert noch nichtmal einen Fehler, es wird einfach kein Datensatz gefunden. Das zweite Statement löscht mal kurzerhand den Inhalt einer Deiner Tabellen.
UPDATE tblBlaBlubb SET AnzahlReg= 5 WHERE Seriennummer='123';
DELETE FROM TABLE table2; Wenn Du Dich wunderst wie man an die Tabellen kommt: Man kann den Netzwerkverkehr und damit das abgefragte PHP-Script recht einfach mittels Netzwerk-Sniffern herausfinden. Mit anderen Befehlen die man direkt an Dein PHP-Script schicken kann (also ohne Umweg über Deine Delphi-Anwendung) kann man z.B. anstelle des DELETE FROM Befehls erstmal ein SHOW TABLES; absetzen. In der Fehlerausgabe Deines Scriptes sieht man dann schön alle zur verfügung stehenden Tabellen. Und dann kann man die sich sogar komplett ausgeben lassen und findet sogar alle zur Verfügung stehenden Seriennummern heraus. Und man kann sogar ein UPDATE laufen lassen, dass die Registierung wieder auf 0 setzt. Mach Dir bitte Gedanken ob das so gewollt ist oder ob Du vielleicht ein bisschen mehr Aufwand in parametrisierte Statements stecken willst, mit denen Du so eine SQL-Injection vermeiden könntest. |
Re: MySQL & PHP-Problem
Dachte man kann nur direkte Eingaben per php manipulieren. Aber wenn das Passwort für die Datenbank (im Delphi-Quelltext zum connecten zur DB) mitgesnifft werden kann, dann is das schlecht. Hab mal ein bisschen gesucht, aber nichts gescheites zu dem Stichwort gefunden. Hat jemand ne gute Quelle?
|
Re: MySQL & PHP-Problem
Zitat:
Edit:// @Phoenix: Die mysql_query Funktion lässt nur ein Query (auch durch Semikolon getrennt) zu. Dein Beispiel gibt einfach nur einen Syntax-Fehler. ;-) Aber das Prinzip ist natürlch korrekt. Liebe Grüße, Valle |
Re: MySQL & PHP-Problem
Die einfachste Möglichkeit:
Code:
<?php
$sql = mysql_query('SELECT Key FROM Table2 WHERE Key="' . mysql_real_escape($_POST['Seriennummer']) . '"') or die(mysql_error()); if(mysql_num_rows($sql) == 1) { $val = mysql_fetch_assoc($sql); echo $val['Key']; } else { die('Fehler: Falsche Ergebnismenge') } ?> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz