![]() |
Delphi / PHP Falsche String Ausgabe
Hi DP
ich hab mal folgende frage ich verwende den Code vom diesen Thema ![]() kommt bei der PHP Datei immer folgender String an INSERT INTO 'pg' (pname,ppreis,pnummer) Values (\'aaa\',\'0,00\',\'1-1\') Vieleicht kennt jemand das Problem und kann mir helfen mehr Code kann ich leider jetzt nicht geben weil ich noch ein Termin habe MFG deadinpac |
Re: Delphi / PHP Falsche String Ausgabe
Das Problem kennen glaube ich viele. Meines Wissens hast du nur eine Möglichkeit: mit str_replace das ganze rückgängig zu machen:
Code:
Wenn jemand was besseres kennt, wäre ich froh :|
$str = str_replace('\\\'','\'',$str); // \' => '
$str = str_replace("\\\"","\"",$str); // \" => " ... |
Re: Delphi / PHP Falsche String Ausgabe
Übernimmt das PHP-Skript MySQL-Datenbankabfragen?
Dann kannst du die Abfrage auch als solches schicken:
SQL-Code:
bzw.
INSERT INTO ´pg´ (pname,ppreis,pnummer) Values (´aaa´,´0,00´,´1-1´)
SQL-Code:
Welcher von den beiden richtig ist, kann ich dir leider grad nicht sagen... ist schon länger her ;)
INSERT INTO `pg` (pname,ppreis,pnummer) Values (`aaa`,`0,00`,`1-1`)
mfg |
Re: Delphi / PHP Falsche String Ausgabe
Hi
@Maxk Ich weiss leider nicht wie ich dein code anwenden soll sorry @Karbrüggen und die form die du mir geschrieben hast erhält auch sonderzeichen deshalbs klappts nicht denn die schrägstriche vor den sonderzeichen kann ich mit folgenden code wegbekommen nur leider nicht bei mir
Code:
aber hier erstmal der Delphi Programm code
Stripslashes()
Delphi-Quellcode:
und hier aus der PHP datei
var sl : TStringlist;
begin sl := TStringList.Create; sl.Add('$sql1='+Edit1.Text); Memo1.Text := idHttp1.Post('http://localhost/test.php',sl); FreeAndNil(sl); end;
Code:
danke an alle für eure Hilfe
<?php
$dbserver = 'localhost'; $dbuser = 'root'; $dbpwd = ''; $dbdata = 'Prog'; $dbconn = mysql_connect($dbserver, $dbuser, $dbpwd); $dbselect = mysql_select_db($dbdata); echo "$sql1" ,$_POST['$sql1'].chr(13).chr(10); ?> MFG deadinpac |
Re: Delphi / PHP Falsche String Ausgabe
Ich meinte es so:
Code:
Theoretisch müsste stripslashes($_POST['$sql1']); aber eigentlich auch funktionieren :roll: Welche PHP Version hast du?
<?php
$dbserver = 'localhost'; $dbuser = 'root'; $dbpwd = ''; $dbdata = 'Prog'; $dbconn = mysql_connect($dbserver, $dbuser, $dbpwd); $dbselect = mysql_select_db($dbdata); $str = $_POST['$sql1']; $str = str_replace('\\\'','\'',$str); // \' => ' $str = str_replace("\\\"","\"",$str); // \" => " echo "$sql1" ,$str.chr(13).chr(10); ?> |
Re: Delphi / PHP Falsche String Ausgabe
hi
@Maxk Ich habe PHP 4.x.x.x aber wie gesagt ich wusste nicht wie ich das in php einbinden soll ich habe es gestern so versucht.
Code:
aber ich versuch es mal so wie du geschrieben hast
echo "$sql1" , Stripslashes($_POST['$sql1'].chr(13).chr(10));
MFG deadinpac |
Re: Delphi / PHP Falsche String Ausgabe
Also soll müsste es eigentlich problemlos gehen:
Code:
Wichtig ist, dass du nach stripslashed die Klammer wieder zumachst (vor den ASCII Codes) und die Funktion kleinschreibst, da PHP dort anfällig ist.
echo "$sql1" , stripslashes($_POST['$sql1']).chr(13).chr(10);
|
Re: Delphi / PHP Falsche String Ausgabe
Hi,
@Maxk Danke dein code hat funkioniert :-D Nur wenn ich am ende des Quelltext noch
Code:
einfüge wird der datensatz nicht in der Datenbank gespeichert warum nicht :gruebel:
Mysql_query ($sql1); oder Mysql_query ("$sql1"); oder Mysql_db_query ("$dbdata" , "$sql1");
Habt ihr da auch noch eine antwort wäre nett von euch Mfg deadinpac |
Re: Delphi / PHP Falsche String Ausgabe
Hallo,
das ganze wird bewirkt durch die magic_quotes_gpc Konfiguration von PHP: Zitat:
BTW: Ist das eigentlich dein ernst das man dem PHP-Skript SQL-Kommandos übergeben kann? Das ist aber ne ziemlich krasse Sicherheitslücke - da muß man sich ja erst garnicht anstregen mit SQL-Injecten :-) |
Re: Delphi / PHP Falsche String Ausgabe
Hi,
@fiasko Danke für dein tipp werd ich gleich mal gucken ob das klappt zur dein sicherheitshinweis kann man den die PHP datei denn mit ein passwort schützen so das nur das Prog die sql anweisung an der PHP datei schicken kann? MFG deadinpac |
Re: Delphi / PHP Falsche String Ausgabe
Zitat:
Was du machen könntest ist z.B. :arrow: ein DROP usw. nicht auszuführen :arrow: einfache Kommandos zu senden, die dann vom Script in MySQL-Befehle umgewandelt werden |
Re: Delphi / PHP Falsche String Ausgabe
Zitat:
![]() ![]() |
Re: Delphi / PHP Falsche String Ausgabe
Hi,
So habe das Magic quotes ausgeschaltet aber trotzdem wird nichts in der datenbank eingefügt. aber es müsste eigentlich funktionieren den das Prog füllt ja die Variabel $sql1 mit folgenen string
Code:
also sieht der aufruf doch so nachher aus
INSERT INTO `pg` (pname,ppreis,pnummer) Values (`aaa`,`0,00`,`1-1`)
Code:
oder nicht???
mysql_query("INSERT INTO `pg` (pname,ppreis,pnummer) Values (`aaa`,`0,00`,`1-1`)");
und was ich ja möchtet ist für den Oscommerce bzw. Osis shop ein Programm schreiben das man den shop offline bearbeiten kann ohne erst ein backup von der datenbank zu machen und dann ein lokalen webserver einrichten den shop zu installieren das backup einzuspielen und dann denn shop zu bearbeiten dann wieder ein backup zu machen und es online wieder einzuspielen denn ich möchte das die anwender 1. Programm installieren/starten 2. Ein Button drücken um die shopdaten runterzuladen 3. Die Shopdaten zur bearbeiten 4. Ein Button drücken und die shopdaten wieder uploaden 5.fertig Mfg deadinpac |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 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-2025 by Thomas Breitkreuz