"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

http_get_vars funkt nicht

Brain_Death 07.03.2008 - 15:53 2538 23
Posts

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10561
Code: PHP
$auswahl = $_POST['wahl'];
echo " <meta http-equiv=\"refresh\" content=\"3\" URL=\"http://ip/index.php?site=streckenplan&kursnummer=$auswahl\"> ";

if(isset($HTTP_GET_VARS['kursnummer']))
   $test = $HTTP_GET_VARS['kursnummer'];
else
   $test = "Nicht gesetzt";

echo $test 

kurz erklärt: vom post 'wahl' bekomm ich ne zahl die ich in die URL reinhau. wichtig is dabei, dass diese variable AUCH bei refresh vorhanden ist. deshalb diese lösung.
das funktioniert ja auch soweit: wenn die seite refresht, ist die KURSNUMMER, wenn ich im seitenquelltext nachschau, immer vorhanden.

mein problem ist aber folgendes: ich krieg mit http_get_vars oder _get die zahl aus KURSNUMMER einfach nicht raus. sprich ich kann mit der nicht arbeiten. ist einfach immer _leer_ :(

was hats da? BIG TIA

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
teste mahl, ob $auswahl überhaupt die zahl enthält.

ist die url in der adresszeile nach dem refresh richtig?

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10561
ja, die zahl ist nach dem submit in $auswahl und damit auch in der URL (!) nach dem refresh is es natürlich nicht mehr in $auswahl, in der URL aber weiterhin vorhanden. also _genau_ das was ich haben will.

jetzt muss ich halt ne möglichkeit finden, die zahl aus der URL nach dem refresh weiterverwenden zu können. nur eben das funkt nicht mit http_get_vars/_get :( was aber eigentlich gehn sollte :(

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Alle anderen/Andere ("herkömmliche") get-Variablen funktionieren?

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10561
naja, ich hab ein paar probiert (keine ahnung ob alle). die, die ich probiert habe, haben auch nicht funktioniert. welche könnt ich den noch versuchen?

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Versteh ich das richtig, du bekommst mit $_GET überhaupt keine Variablen? Wird $_GET (bzw. dessen Inhalt) vielleicht irgendwo im Script gelöscht? Funktioniert $_REQUEST oder import_request_variables()?
Wenn du $HTTP_GET_VARS benutzt, muss übrigens register_long_arrays auf on sein.

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10561
was meinst jetzt genau mit variable? oder meinst du etwa eh inhalt?

wenn die URL ...&kursnummer=23 lautet und danach versuch die abzuspeichern mit $bla = $_GET['kursnummer'] ist $bla leer, ja :/

inhalt wird nicht gelöscht. sicherheitshalber hab ich alles danach auskommentiert und nur mit dem testscript "nicht gesetzt" probier ich die variable rauszubekommen. REQUEST hab ich auch schon versucht, funkt nicht. import_request_variables nicht, werd ich dann noch versuchen!

bzgl. register_long_arrays: wo schau ich da nach ob das gesetzt ist und wenn nicht, wie ändere ich das? tia!

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Nein, ich meine eigentlich irgendwelche Variablen. Also wenn du testweise in dein Script "echo $_GET['test'];" schreibst und dann das script mit ./script.php?test=test aufrufst (gleich aus dem Browser heraus), gehts dann? Nur mal um zu schauen ob $_GET prinzipiell funktioniert (obwohl mir jetzt nicht einfällt, warum das nicht der Fall sein sollte. Vor allem wenn $_POST und $_REQUEST für post-Variablen funktioniert).

Kannst du vielleicht mit etwas mehr Infos über den Ablauf und Aufbau des Scripts rausrücken? ;) Irgendwie hab ich das Gefühl, dass zum Zeitpunkt wo du abfragst die Variable noch gar nicht existiert, aber da kann ich natürlich komplett falsch liegen.

register_long_arrays steht in der php.ini. Während der Laufzeit mit ini_set() und ini_get() zu überprüfen bzw. zu setzen, ansonsten ganz einfach im File eintragen ;)

Burschi1620

24/7 Santa Claus
Avatar
Registered: Apr 2004
Location: Drüber da Donau
Posts: 6792
Zitat von jives
Nein, ich meine eigentlich irgendwelche Variablen. Also wenn du testweise in dein Script "echo $_GET['test'];" schreibst und dann das script mit ./script.php?test=test aufrufst (gleich aus dem Browser heraus), gehts dann? Nur mal um zu schauen ob $_GET prinzipiell funktioniert (obwohl mir jetzt nicht einfällt, warum das nicht der Fall sein sollte. Vor allem wenn $_POST und $_REQUEST für post-Variablen funktioniert).

Das funktioniert generell und wird auch bei anderen Seiten verwendet. (Ich gehör zum b_d)

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
wenn du weitergeleitet wurdest, dann maach einen refresh. wer weiß, vielleicht schickt dein browser kein get bei einem refresh.

ansonstne versuch mal ein var_dump($_GET)

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Nach dem ersten Refresh ist $_POST[\'wahl\'] nicht mehr gesetzt, $auswahl bleibt leer und somit kommt nichts mehr in $_GET[\'kursnummer\'].

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10561
Zitat von gue
Nach dem ersten Refresh ist $_POST[\\\'wahl\\\'] nicht mehr gesetzt, $auswahl bleibt leer und somit kommt nichts mehr in $_GET[\\\'kursnummer\\\'].
natürlich ist es nach dem refresh nicht mehr gesetzt, aber genau deshalb hau ich die zahl, die er beim ersten mal bekommt ja in die URL. und da bleibt sie selbst nach einem refresh vorhanden (!)

wie gesagt, das einzige was nicht geht ist das auslesen der zahl von der URL :(

danke mal an alle für die lösungsvorschläge, die werd ich morgen mal durchgehn und bissi herumexperimentieren!

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
also je nachdem welche php version auf dem server läuft wird $HTTP_GET_VARS eventuell nicht mehr funktionieren ;) das ist mal das erste.

zweite frage. wie lang ist der path vorher ? also das http://ip/............... / site.php?actionbla= .......

Also wie lang sind die Punkte? übergibst du da irgendeine lange var? Weil es kann sein, dass du bei mehr als 255 zeichen in der url probleme bekommst.

Andere möglichkeit, wie wärs wennst mal folgendes ausprobierst


mach das mal als eigenes script mit dem namen: testa.php
Code: PHP
<?
switch($_GET["act"]) {

case 'testn':
echo "es geht doch :D";

break;
default:

HEADER("Location: testa.php?act=testn");

break;
}

?>

MFG
EUER
SNOOPAL

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10561
@snoop: dein script funktioniert.

habe ich aber inzwischen selber raus gefunden und ich weiß auch schon wo der fehler liegt. aber ich hab keine ahnung wie ich das lösen soll, folgendes:

bei der seite davor wird mit
Code: PHP
<form action = "index.php?site=streckenplan" method = "POST">
die "nächste" seite aufgerufen, und genau hier liegt der fehler. die nächste seite, also wo ich dann eigentlich ein
Code: PHP
echo " <meta http-equiv=\"refresh\" content=\"3\" URL=\"http://ip/index.php?site=streckenplan&kursnummer=$auswahl\"> "; 
stehen sollte wird garnicht augerufen! obwohl es im quelltext passt :/

der fehler ist folgender: bei "index.php?site=streckenplan" wird eben noch keine variable übergeben. sondern ja erst wenn die geschickt wurde und dann gerefresht wird. das funktioniert ja eh auch, das problem ist nur, bei dem refresh wird weiterhin auf "index.php?site=streckenplan" verlinkt (das steht dann auch in der URL) und NICHT auf "index.php?site=streckenplan&kursnummer=$auswahl". im quelltext passt das aber, eigentlich müsste er auf genau diese URL "refreshen" wo kursnummer eingetragen und vorhanden ist. da das aber nicht geschieht ist es also eh LOGISCH, dass $_GET nichts findet. weil ja die URL refresht wird wo eben keine $kursnummer und keine zahl drinnen steht.

über lösungsvorschläge bin ich sehr dankbar. tia!

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
wie wärs mit nem header redirect?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz