Seite 1 von 1

Pythons Kommunikation mit PHP

Verfasst: Samstag 29. April 2006, 23:47
von murph
Ich habe angefangen, einen Clienten zu schreiben, erstmal testweise.
Ein Pythonskript loggt sich mit den Spielerdaten ein und soll eine Seite auslesen. Das klappt auch alles sehr gut, nur die SESSION-IDs werden nicht unterstützt! Ich bekomme als antwort meinen Link zur Login-Seite, was heißt, dass die Session-ID leer ist. Hier ausschnittweise die Skripts, bei Bedarf nachfragen:

Code: Alles auswählen

#!/usr/bin/env python
import urllib, anydbm, sys

#die Datenbank wird abgefragt

dbm = anydbm.open("configs.dbm","r")
Spielername = str(dbm['Spielername'])
Passworthash = str(dbm['Passworthash'])


#Nun kommt die Connection

connection = urllib.urlopen("http://fragezeichen.parallel-universum.info/loginpy.php?name=%s&kennwort=%s" % (Spielername, Passworthash))
test = connection.read()
if test == "0":
    print "Entweder, Ihr Account ist gelöscht, oder Sie haben keine Verbindung zum Internet. Falls keines von beidem der Fall ist, bitte bei murph(at)gmx(punkt)net melden"
    sys.exit()
elif test == "1":
    connection2 = urllib.urlopen("http://fragezeichen.parallel-universum.info/connecter4py.php")
    berechnen = connection2.read()
    text = open("berechnen.py", 'w')
    text.write(berechnen)
    text.close
dbm.close()
connection.close()
connection2.close()
in berechnen.py steht dann der link...Die Session-ID wird auf jeden fall gesetzt, da habe ich zuerst gekuckt, weil das die logischste Möglichkeit gewesen wäre, dem ist aber nicht so. Bei Google konnte ich auch nichts finden...

Verfasst: Montag 1. Mai 2006, 07:03
von BlackJack
Ich sehe in Deinem Quelltext überhaupt nichts von Session-IDs!?

Verfasst: Montag 1. Mai 2006, 17:44
von murph
die sind im php-skript integriert. Der setzt die Session-IDs

Verfasst: Montag 1. Mai 2006, 19:01
von nbkr
PHP gibt die SessionID entweder in einem Cookie weiter oder per URL. Du könntest also in der zweiten Abfrage die ID über &PHPSESSID=sessionid setzen. Wobei Du natürlich die passende SessionID setzen musst. Die bekommst Du aus dem Cookie oder aus der Antwortseite der ersten Verbindung insofern da ein Link drin ist.

Verfasst: Montag 1. Mai 2006, 19:19
von murph
Vielen Dank!

Verfasst: Dienstag 2. Mai 2006, 07:23
von gerold
nbkr hat geschrieben:PHP gibt die SessionID entweder in einem Cookie weiter oder per URL.
Hi murph!

Falls du die SessionID in einem Cookie bekommst, dann empfehle ich dir ClientCookie zu verwenden. Dann musst du dich um das Cookie nicht selbst kümmern.

mfg
Gerold
:-)

Verfasst: Dienstag 2. Mai 2006, 19:13
von murph
offtopic: installiere jetzt Distutils, habe vorher Settuptools gehabt, aber alle downloadbare module ssind auf Distutils abgestimmt!

Verfasst: Dienstag 2. Mai 2006, 20:20
von Leonidas
murph hat geschrieben:offtopic: installiere jetzt Distutils, habe vorher Settuptools gehabt, aber alle downloadbare module ssind auf Distutils abgestimmt!
Setuptools sind eine Art Obermenge, die Distutils erweitert.