Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi / PHP Falsche String Ausgabe (https://www.delphipraxis.net/31822-delphi-php-falsche-string-ausgabe.html)

Deadinpac 14. Okt 2004 13:55


Delphi / PHP Falsche String Ausgabe
 
Hi DP

ich hab mal folgende frage ich verwende den Code vom diesen Thema funktionen mit delphi in phpscript nur leider taucht folgendes Problem auf wenn ich ein String an die PHP Datei sende z.b INSERT INTO 'pg' (pname,ppreis,pnummer) Values ('aaa','0,00','1-1')

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

maxk 14. Okt 2004 14:54

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:
$str = str_replace('\\\'','\'',$str); // \' => '
$str = str_replace("\\\"","\"",$str); // \" => "
...
Wenn jemand was besseres kennt, wäre ich froh :|

Karbrüggen 14. Okt 2004 18:02

Re: Delphi / PHP Falsche String Ausgabe
 
Übernimmt das PHP-Skript MySQL-Datenbankabfragen?

Dann kannst du die Abfrage auch als solches schicken:
SQL-Code:
INSERT INTO ´pg´ (pname,ppreis,pnummer) Values (´aaa´,´0,00´,´1-1´)
bzw.
SQL-Code:
INSERT INTO `pg` (pname,ppreis,pnummer) Values (`aaa`,`0,00`,`1-1`)
Welcher von den beiden richtig ist, kann ich dir leider grad nicht sagen... ist schon länger her ;)

mfg

Deadinpac 15. Okt 2004 10:08

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:
Stripslashes()
aber hier erstmal der Delphi Programm code

Delphi-Quellcode:
var sl : TStringlist;
begin
  sl := TStringList.Create;
  sl.Add('$sql1='+Edit1.Text);
  Memo1.Text := idHttp1.Post('http://localhost/test.php',sl);
  FreeAndNil(sl);
end;
und hier aus der PHP datei

Code:
<?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);

?>
danke an alle für eure Hilfe

MFG

deadinpac

maxk 15. Okt 2004 10:24

Re: Delphi / PHP Falsche String Ausgabe
 
Ich meinte es so:
Code:
<?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);

?>
Theoretisch müsste stripslashes($_POST['$sql1']); aber eigentlich auch funktionieren :roll: Welche PHP Version hast du?

Deadinpac 15. Okt 2004 10:33

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:
echo "$sql1" , Stripslashes($_POST['$sql1'].chr(13).chr(10));
aber ich versuch es mal so wie du geschrieben hast

MFG

deadinpac

maxk 15. Okt 2004 10:45

Re: Delphi / PHP Falsche String Ausgabe
 
Also soll müsste es eigentlich problemlos gehen:
Code:
echo "$sql1" , stripslashes($_POST['$sql1']).chr(13).chr(10);
Wichtig ist, dass du nach stripslashed die Klammer wieder zumachst (vor den ASCII Codes) und die Funktion kleinschreibst, da PHP dort anfällig ist.

Deadinpac 15. Okt 2004 19:29

Re: Delphi / PHP Falsche String Ausgabe
 
Hi,

@Maxk

Danke dein code hat funkioniert :-D


Nur wenn ich am ende des Quelltext noch
Code:
Mysql_query ($sql1); oder Mysql_query ("$sql1"); oder Mysql_db_query ("$dbdata" , "$sql1");
einfüge wird der datensatz nicht in der Datenbank gespeichert warum nicht :gruebel:

Habt ihr da auch noch eine antwort wäre nett von euch


Mfg

deadinpac

fiasko 15. Okt 2004 19:37

Re: Delphi / PHP Falsche String Ausgabe
 
Hallo,

das ganze wird bewirkt durch die magic_quotes_gpc Konfiguration von PHP:

Zitat:

Zitat von PHP Manual
Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.


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 :-)

Deadinpac 15. Okt 2004 19:48

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:51 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz