Get Variablen verloren bei typ="file"
Viktor
- php
Guten Tag ich haben ein Problem.
ich benutze zum erstenmal den type="file" um bilder hoch zu laden das Problem dabei ist das wenn ich das formular abschicke meine Get Variablen die ich zu Navikation der Seite brauche verloren gehen.
Normale url: index.php?action=cverwaltung&typ=1
Die Get Variablen action und typ gehen hier verloren es kommt dann so etwas raus:ndex.php?datei=C%3A%5CDokumente+und+Einstellungen%5CViktor%5CDesktop%5Cda.txt
Hier der Quelltext:
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" name="upload">
<input onChange="submitsel('upload')" name="datei" class="upload" type="file">
</form>
Die Funktion submitsel benutze ich damit es keinen extra btn absckicken geben muss, hab es auch schon normal mit btn versucht geleiches Problem.
Hoffe ihr koennt mir da helfen.
mfg.
Viktor
Wenn du sie auch nicht zumindest als hidden-field in deinem Formular unterbringst, wunder das auch nicht.
Du benötigst etwas in der Art von:
<input type="hidden" name="action" value="$_GET['action']" />
ich benutze zum erstenmal den type="file" um bilder hoch zu laden das Problem dabei ist das wenn ich das formular abschicke meine Get Variablen die ich zu Navikation der Seite brauche verloren gehen.
Ja, wenn du sie nicht weiterreichst, gehen sie verloren.
Normale url: index.php?action=cverwaltung&typ=1
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" name="upload">
$PHP_SELF (bzw. besser $_SERVER['PHP_SELF']) enthält nur den Namen des Scriptes, die GET-Parameter im Querystring findest du in $_SERVER['QUERY_STRING']. Wenn du beide im action-Attribut kombinierst, bleiben die GET-Parameter auch erhalten:
action="<?php echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; ?>"
Sollte so funktionieren.
Siechfred
Hallo Siechfred.
$PHP_SELF (bzw. besser $_SERVER['PHP_SELF']) enthält nur den Namen des Scriptes, die GET-Parameter im Querystring findest du in $_SERVER['QUERY_STRING']. Wenn du beide im action-Attribut kombinierst, bleiben die GET-Parameter auch erhalten:
action="<?php echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; ?>"
Oder gleich $_SERVER["REQUEST_URI"] verwenden.
Einen schönen Donnerstag noch.
Gruß, Mathias
action="<?php echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; ?>"
Oder gleich $_SERVER["REQUEST_URI"] verwenden.
Ja, in der Tat, warum nicht :)
Zumal man bei meiner Variante wohl noch ein Fragezeichen zwischen PHP_SELF und QUERY_STRING setzen müsste.
Siechfred
hi,
action="<?php echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; ?>"
Oder gleich $_SERVER["REQUEST_URI"] verwenden.
Und _bitte_ in beiden Fällen htmlspecialchars() darauf anwenden - sofern man keine Lust hat, sich eine hübsche XSS-Lücke einzubauen.
gruß,
wahsaga
Guten Tag und danke fuer euren schnellen Antworten.
Leider geht echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; und echo $_SERVER["REQUEST_URI"]; nicht ka warum ich werde nun Rafaels Lösung versuchen.
mgf. Viktor
Hallo Viktor.
Guten Tag und danke fuer euren schnellen Antworten.
Leider geht echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; und echo $_SERVER["REQUEST_URI"]; nicht ka warum
Und was bedeutet "geht nicht" in für Außenstehende verständlicher Form? Erhältst du Fehlermeldungen? Wenn nein, unterdrückst du sie ggf.?
Einen schönen Donnerstag noch.
Gruß, Mathias
hi
nein keine fehler meldungen nur die get variablen sidn nicht mehr in der url.
mfg. viktor
Hi!
Leider geht echo $_SERVER['PHP_SELF'] . $_SERVER['QUERY-STRING']; und echo $_SERVER["REQUEST_URI"];
Welchen Wert hat die Einstellung register_globals in der php.ini?
Schöner Gruß,
rob
register_globals ist auf off was heist das fuer mich
mfg. viktor
Hi!
register_globals ist auf off was heist das fuer mich
Das heißt für dich, daß es z.B. gar keine Variable $PHP_SELF gibt, sondern $_SERVER['PHP_SELF'].
Und entsprechend mußt du auch auf $_FILES, $_GET, $_POST zugreifen.
Schöner Gruß,
rob
echo $begrüßung;
ich benutze zum erstenmal den type="file" um bilder hoch zu laden das Problem dabei ist das wenn ich das formular abschicke meine Get Variablen die ich zu Navikation der Seite brauche verloren gehen.
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" name="upload">
Du hast kein method-Attribut angegeben, weshalb der Standardwert GET verwendet wird. Es ist aber im Allgemeinen keine gute Idee, Dateien per GET, also über die URL zu übertragen. Eine URL hat je nach Browser nur eine begrenzte Länge. POST-Daten unterliegen keinen mir bekannten Beschränkungen seitens des Browsers. Auch wenn du das Formular per POST absendest, kannst du das im action-Attribut angegebene Ziel mit deinen Navigationsparametern versehen, und im Script via $_GET-Array abfragen. Die Formulardaten sind dabei wie üblich in $_POST zu finden.
echo "$verabschiedung $name";
Hi!
Mich wundert es eigentlich, daß hierzu noch Niemand was gesagt hat:
<input onChange="submitsel('upload')" name="datei" class="upload" type="file">
Die Funktion submitsel benutze ich damit es keinen extra btn absckicken geben muss
Du möchtest also einen Submit-Button sparen und deswegen nimmst du es in Kauf, daß User ohne JavaScript dein Formular nicht benutzen können?
Du könntest wenigstens den Submit-Button in einem Noscript-Bereich anzeigen lassen.
Und davon abgesehen finde ich die Sache recht unpraktisch, wenn man keinen Submit-Button hat.
Was ist denn, wenn man versehentlich eine falsche Datei auswählt?
Dein Formular wird per onchange abgeschickt. Es gibt keine Möglichkeit zur Korrektur.
Schöner Gruß,
rob
es handelt sich um einen funktion fuer den admin und da ich der admin bin und ich js an habe ist mir das egal xD.
mfg.
viktor