Probleme bei IP Wechsel
tomas
- php
0 Thomas Luethi0 tomas0 Thomas Luethi0 tomas0 Thomas Luethi0 tomas
Hallo,
ich habe folgendes Problem:
Ich habe ein PHP Script das Daten aus einen Formular mit dennen aus einer Datenbank vergleicht. Das Script funktioniert auch soweit ganz gut. Wenn man es aufruft gibt es ein Formular aus das per Post übermittel wird. Wenn ich es übermittel überprüft das gleiche Script die Daten un gibt ggf eine Fehlermeldung aus. Aber ich arbeite mit einer Internetverbindung die sich na 10 sekunden inaktivität abschaltet. Wenn ich das Script aufrufe, dann die Verbindung trenne, die Felder ausfülle und dann die Verbindung wieder starte (also eine neue IP beomme) absende, reagiert das Script so als würde es das erste mal Aufgerufen ohne den Inhalt der Felder des Formulars zu beachten.
Hat jemand vielleicht eine Idee was da falsch laufen könnte?
Vielen Dank schonmal im Voraus
Tomas
Hallo,
Wenn ich das Script aufrufe, dann die Verbindung trenne, die Felder ausfülle und dann die Verbindung wieder starte (also eine neue IP beomme) absende, reagiert das Script so als würde es das erste mal Aufgerufen ohne den Inhalt der Felder des Formulars zu beachten.
Hat jemand vielleicht eine Idee was da falsch laufen könnte?
Der Fehler liegt darin, dass das Skript versucht, eine "Person"
ueber die IP-Adresse zu definieren, anstatt Sessions oder
aehnliches zu verwenden.
Das kann nur schiefgehen, weil
a) wie Du selbst feststellst eine Person auch kurz nacheinander
zwei verschiedene "IP-Adressen" haben kann (z.T. sogar ohne
"auszuloggen", z.B. bei unsichtbaren Zwangs-Proxies)
b) hinter einer IP-Adresse (Proxy) sehr viele "Personen"
stehen koennen.
Das Konzept des Skripts ist also Scheisse.
Dass die IP-Adresse zu solchen Zwecken nicht gebraucht
werden soll, steht uebrigens 1000fach im </archiv/>
mfg,
Thomas
Hallo,
Wenn ich das Script aufrufe, dann die Verbindung trenne, die Felder ausfülle und dann die Verbindung wieder starte (also eine neue IP beomme) absende, reagiert das Script so als würde es das erste mal Aufgerufen ohne den Inhalt der Felder des Formulars zu beachten.
Hat jemand vielleicht eine Idee was da falsch laufen könnte?
Der Fehler liegt darin, dass das Skript versucht, eine "Person"
ueber die IP-Adresse zu definieren, anstatt Sessions oder
aehnliches zu verwenden.Das kann nur schiefgehen, weil
a) wie Du selbst feststellst eine Person auch kurz nacheinander
zwei verschiedene "IP-Adressen" haben kann (z.T. sogar ohne
"auszuloggen", z.B. bei unsichtbaren Zwangs-Proxies)
b) hinter einer IP-Adresse (Proxy) sehr viele "Personen"
stehen koennen.Das Konzept des Skripts ist also Scheisse.
Dass die IP-Adresse zu solchen Zwecken nicht gebraucht
werden soll, steht uebrigens 1000fach im </archiv/>mfg,
Thomas
Hallo,
das Script gibt ein Formular aus wenn eine Variable nicht existiert (diese wird über ein unsichtbares Formularfeld gesetzt). Wenn das Formular ausgeben wurde, wird das Script durch das Formular wieder aufgerufen (damit ist die Variable vorhanden da sie im Formular über ein unsichtbares Formularfeld gesetzt wurde) und das Script überprüft die Eingaben. Ich sehe keinen Grud warum ich bei so einen Vorgang eine Session oder ähnliches nutzen sollte, aber aus irgendeinen Grund kommt die Variable nach den Ip wechsel nicht mehr an, die das Script veranlasst, die Formlardaten zu überprüfen anstatt das Formular auszugeben.
Hallo,
aber aus irgendeinen Grund kommt die Variable nach den Ip wechsel nicht mehr an, die das Script veranlasst, die Formlardaten zu überprüfen anstatt das Formular auszugeben.
Zu "irgendeinem Grund" solltest Du eigentlich selbst die Antwort finden,
denn es ist ja Dein Skript...
Glaskugeln sind nicht unbedingt das wahre.
Also, wenn Du willst, dass man Dir bei _Deinem_ Skript hilft,
dann zeig den Quelltext her.
Am besten, indem Du die Datei als *.txt oder *.phps speicherst
und dann hier den Link postest. (</faq/#Q-19>)
Oder, indem Du den abgekuerzten, relevanten Quellcode
hier postest.
Zu "kommt die Variable [...] nicht mehr an":
Hast Du das geprueft?
1. Steht das Hidden-Field wirklich im Formular?
2. Was uebermittelt der Browser?
print("<pre>";
print_r($_POST); // wenn Du <form method="post" ...> verwendest, sonst $_GET
print("<pre>";
Gruesse,
Thomas
phpteil:
if(isset($_POST['action'])){
überprüfe eingaben (denke ist unwichtig was da geschiet weul es nicht ausgeführt wird)
}
else{
gebe formular aus (reiner Html Code siehe unten)
}
htmlteil der ausgeben wurde:
<form enctype="text/plain" action="login.php" method="post" name="login" style="display:inline;">
<input type="password" class="post" style="width:200px" size="25" maxlength="32" name="passwort" value="%passwort%">
<input type="hidden" name="action" value="login">
input type="reset" name="rest" class="knopf"> <input type="Submit" name="submit" value="Absenden" class="knopf">
</form>
rufe script aus ->formularausgabe
drücke absenden im formular -> formular wird abgearbeitet
aber:
rufe script aus ->formularausgabe
wechselte ip und drücke absenden im formular ->formularausgabe
Hallo,
Der Quellcode sieht eigentlich OK aus (bis auf den Fehler beim Reset-Knopf).
Das hast Du uebrigens sauber gepostet, Bravo!
rufe script aus ->formularausgabe
wechselte ip und drücke absenden im formular ->formularausgabe
Lass Dir mal _in_jedem_Fall_ als erstes im Skript (also _vor_ dem IF)
jeweils den vollstaendigen Inhalt von $_POST anzeigen, damit Du weisst,
ob der Parameter nach dem IP-Wechsel
a) vom Browser nicht abgeschickt wird
b) vom Skript "verschluckt" wird.
Hast Du es schon mit verschiedenen Browsern probiert?
Gruesse,
Thomas
Hallo,
so die Variable scheint nach den wechsel der IP nicht zu existiren (bekomme entsprechende warnung wenn ich sie ausgeben möchte). Das Problem tritt mit dem Internetexplorer auf, auch mit einen Konqueror Browser aber mit einen Morzilla Browser nciht (was micht nur mehr verwirrt)
mfg
Tomas