| |
|
|
- Seite 1 - |
|
Julian Schmidt | Hallo, folgende Situation. Ich habe hier[...] eine Link-Liste mit der ich Variablen per Get an eine PHP-Datei[...] übergebe. Sieht dann in etwa so aus
https://julian-schmidt.xprofan.com/source.php?Name=ProgressBar.inc&Datei=includes/quelltexte/ProgressBar.inc
Ich möchte nun das die Daten nicht an die URL angehängt werden sondern für den Anwender unsichtbar übertragen werden. Normaler Weise verwendet man für solche Zwecke die Funktion Post. Kann ich in diesen Fall allerdings nicht anwenden da ich kein Formular verwende.
Was gibt es für Möglichkeiten. Mir fällt ein die Daten per Get an ein weiteres Dokument zusenden und dann per Session weiter an den Highlighter zu übertragen. Oder die Links durch Formulare zu ersetzen mit Unsicherbaren Textfeldern in dennen der Inhalt der Variablen drinnsteht. Beide Lösungen sind allerdings nur Frickellösungen. Gibt es bessere Methoden?
LG
Julian |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
| Also für $_SERVER['HTTP_REFERER'] brauchst kein Formular, da steht ja drin von welcher URL der User kommt.
Du kannst Formular auch per <a href absenden per onclick= [...]
Den Submit-Button dann css display:none setzen oder per css so formen dass er eben aussieht wie ein konventioneller Link. |
|
|
| |
|
|
|
Julian Schmidt | Jo klappt. Darf den Button aber nicht Display none setzen da Javascript deaktiviert sein könnte. :p |
|
|
| |
|
|
|
Julian Schmidt | hmmmm....gefällt mir irgendwie nicht so gut. Glaub ich machs jetzt doch lieber per Session und Weiterleitung per Header... |
|
|
| |
|
|
|
Julian Schmidt | Jo ist so etwas schöner. Nehme die Variablen per Get entgegen und schreib die als Session
<?php
session_start();
$_SESSION["Datei"] = $_GET["Datei"];
$_SESSION["Name"] = $_GET["Name"];
$_SESSION["View"] = $_GET["View"];
header("Location: source.php");
?>
Und lese sie dann in source.php wieder ein.
<?php
session_start();
$Name = $_SESSION["Name"];
$View = $_SESSION["View"];
$Datei = $_SESSION["Datei"];
Gruß
Julian |
|
|
| |
|
|
|
| Funktioniert dann aber nicht wenn man mit mehreren Tabs arbeitet, also wenn man eine andere Datei anzeigen möchte als die die zuletzt die Sessionwerte gesetzt hat. |
|
|
| |
|
|
|
Julian Schmidt | Doch, solange man nicht aktualisiert. |
|
|
| |
|
|
|
Julian Schmidt | Würde gerne bei Session bleiben. Ideen wie ich unter Verwemdung von Session dennoch mehrere Tabs verwenden kann? Mir fällt da ein, das ich die Variablen um eine einmalige Zahl erweitere. Zum Beispiel die Dateigröße des Quellcode in Bytes. Statt
$_SESSION["Datei"] = $_GET["Datei"];
dann z.B.
$_SESSION["Datei_".filesize($_GET["Datei"])] = $_GET["Datei"];
Dort könnte es dann natürlich dennoch zu Doppelungen kommen.
[OFFTOPIC]Hoffe das geht so von der Syntax[/OFFTOPIC]
Bessere Ideen??? |
|
|
| |
|
|
|
| Das klingt für mich eher nach "Fusch am Bau" und es ist auch nicht effizient. ^^
Entweder überträgst Du per GET (willst Du nicht, warum weiß ich aber nicht) oder per POST (würde man ja nichts von merken/ sehen) oder Du urteilst anhand des Referer $_SERVER['HTTP_REFERER'] was wohl recht elegant wäre oder Du machst es rein per JS und DOM-Manupilation indem Du den Inhalt des Quelltext-Kontainer auf die ganze Seite maximierst nach dem Motto document.body.innerHTML=document.getElementById("quelltextcontainer").innerHTML und das wiederum könntest auch mit window.open kombinieren und in einem neuen Tab den Inhalt des Kontainers übertragen so wie ich das hier auf XProfan.Com mache.
Letzteres kommt komplett ohne Server aus. |
|
|
| |
|
|
|
Julian Schmidt | hmmm...was hab ich mir denn gerade wieder für nen Humbug überlegt . Kann doch nicht nen Variblennamen abfragen den ich nicht wieder rekonstruieren kann, da ich die Variablen nicht übergeben habe. |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Julian Schmidt | Huch, du biste einfach zu schnell
Verstehe nicht ganz wie du das mit $_SERVER['HTTP_REFERER'] meinst. Php.net sagt dazu
Sofern vorhanden, die Adresse der Seite, auf der der Benutzer einen Link auf die aktuell aufgerufene Seite angeklickt hat. Dieser Wert wird vom Browser des Benutzers gesetzt. Nicht alle Programme unterstützen diesen Wert, manche offerieren als Feature sogar die Möglichkeit, den Wert von HTTP_REFERER selbst zu bestimmen. Kurz, Sie können diesem Wert nicht wirklich vertrauen.
Bringt mir Imho ja erstmal nichts da die vorigen Seiten in der Regel ja gleich sind. Nämlich in der Regel includes.php und quelltexte.php.
JS mag ich net |
|
|
| |
|
|
|
| $_SERVER['HTTP_REFERER'] nutzt Dir dann nichts, wenn Du mehrere Quelltexte auf einer Seite hast, dass ist richtig.
Wenn Du JS nicht einsetzen möchtest, dann musst Du es halt serverseitig lösen, also dem Server schon irgendwie mitteilen, was er überhaupt anzeigen soll.
Das geht per GET oder per POST oder per Cookie, aber Cookie setzen per JS magst Du vermutlich auch nicht. Also Get oder Post. Get kannst Du bereits selbst, Post habe ich erklärt und da sehe ich auch keine Nachteile.
Könntest auch Get nehmen und per mod_rewrite per .htaccess-Datei halt eine "schöne" URL formatieren wie z.B. /showsource/includes/rofl.inc
Rewriten könntest z.B. so: KompilierenMarkierenSeparieren und serverseitig explodest den sog. getenv("QUERY_STRING") mit / |
|
|
| |
|
|
|
Julian Schmidt | Ok, bleib dann wahrscheinlich bei der aktuellen Variante. Das mit mehreren Tabs kann ich verschmerzen. Komme wahrscheinlich irgendwann auf diesen Beiträg zurück.
Danke für deine Mühen. |
|
|
| |
|
|