Hallo,
ich habe ein Problem: Ich muss Daten (in Form von langen Texten) an PHP übergeben.
Ich weiß das ich per url in PHP Variablen definieren kann, aber meine Daten sind dafür zu viel.
Deshalb würde ich das ganze gerne mit Mysql lösen, da ich meine Daten sowieso in Tabellen brauch.
Es ist kein Problem die Tabellen per Python zu füllen, das funktioniert einwandfrei.
Mein Problem ist nun, dass ich die Zugangsdaten für die Datenbank in dem Script speichern muss. Ich möchte das Programm später öffentlich zugänglich machen, und kann es mir natürlich nicht erlauben, dass jemand dieses Passwort sieht. Auch wenn das Programm nur als .exe verfügbar sein wird, ist es doch bestimmt möglich es auszulesen, oder?
Kann mir jemand sagen, wie man sowas am besten löst?
Danke schonmal!!
Gruß
LordMyder
Daten per Python anPHP übergeben
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Installier dir phpserialize: http://pypi.python.org/pypi/phpserialize/1.0
Dann kannst du sowas machen:
Und in PHP
Dann kannst du sowas machen:
Code: Alles auswählen
from phpserialize import dumps
from urllib import urlopen, urlencode
urlopen('http://example.com/yourscript.php', urlencode({
'data': dumps(deine_variable)
}))
Code: Alles auswählen
$deine_variable = unserialize($_POST['data']);
TUFKAB – the user formerly known as blackbird
Danke für den Tipp. Das Modul ist ganz cool.
Aber ich will ja größere Datenmengen "transportieren" und da die Länge einer URL begrenz ist, kann ich nicht so vorgehen um die Daten zu übermitteln.
Oder geht das doch?
Aber ich will ja größere Datenmengen "transportieren" und da die Länge einer URL begrenz ist, kann ich nicht so vorgehen um die Daten zu übermitteln.
Oder geht das doch?
Zuletzt geändert von lordmyder am Freitag 13. Juni 2008, 15:50, insgesamt 1-mal geändert.
Ich habe alles genauso gemacht wie es mitsuhiko beschrieben hat, aber irgendwie klappt das garnicht...
Es scheint als kommt nichts auf meiner Website an.
Auf meiner Website in php:
Den Cookie kann ich dann zur Überprüfung auf einer anderen Seite auslesen, aber er ist stets leer...
Kann mir jemand sagen, was ich falsch mache?
Es scheint als kommt nichts auf meiner Website an.
Code: Alles auswählen
from phpserialize import dumps
from urllib import urlopen, urlencode
urlopen('http://lordmyder.de/test.php', urlencode({'data': dumps("test1234")}))
Code: Alles auswählen
<?
$data = unserialize($_POST['data']);
setcookie("data", $data);
?>
Kann mir jemand sagen, was ich falsch mache?
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Aber das Cookie gilt nur für das Python script, das die Daten dort hinschaufelt. Um das zu debuggen mach ein "echo" statt setcookie und mach in python "print urlopen(...).read()"lordmyder hat geschrieben:Den Cookie kann ich dann zur Überprüfung auf einer anderen Seite auslesen, aber er ist stets leer...
Kann mir jemand sagen, was ich falsch mache?
Dann müsste im Python script wieder das ankommen, was du in PHP auch empfangen hast.
TUFKAB – the user formerly known as blackbird
Also ich weiß auch nicht, irgendwie scheine ich mich total doof anzustellen, aber ich kriege es ums verrecken nicht hin.
Ich habe jetzt alles so gemacht wie du gesagt hast:
Aber das Python Script gibt nichts aus...
Was mache ich noch falsch?[/code]
Ich habe jetzt alles so gemacht wie du gesagt hast:
Code: Alles auswählen
from phpserialize import dumps
from urllib import urlopen, urlencode
print urlopen('http://lordmyder.de/test.php', urlencode({'data': dumps("test1234")})).read()
Code: Alles auswählen
<?
$data = unserialize($_POST['data']);
echo $data;
?>
Was mache ich noch falsch?[/code]
Ein Feature von PHP, das wohl der Dummheit des Entwicklers entgegen kommen soll.
Da deine Daten, die du sendest, aber solche Zeichen enthalten, werden diese maskiert und ``unserialize`` kann mit den Daten dann nichts mehr anfangen.http://php.net/magic_quotes hat geschrieben:What are Magic Quotes
When on, all ' (single-quote), " (double quote), \ (backslash) and NULL characters are escaped with a backslash automatically. This is identical to what addslashes() does.
Also bedeutet das für mich, dass ich so auch nicht vorgehen kann, oder?
Dann stellt sich für mich die Frage, wie kann ich meine Daten an PHP übergeben?
Dann stellt sich für mich die Frage, wie kann ich meine Daten an PHP übergeben?
Du musst die Slashes eben wieder entfernen.
sollte es eigtl tun. Evtl noch prüfen, ob Magic Quotes aktiviert sind. Aber jemand, der PHP kann, kann dir das sicher besser sagen als ich.
Code: Alles auswählen
<?PHP
$data = unserialize(stripslashes($_POST['data']));
echo $data;
?>