Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Logisches Problem mit $_SERVER['QUERY_STRING'] [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Logisches Problem mit $_SERVER['QUERY_STRING']


 
Diggicell
23-03-2011, 21:07 
 
Hallo liebe resourceianer und resourceianerinnen,
nach langjähriger abwesenheit möchte ich wieder einmal eine Frage zum Besten geben und bin gespannt ob die Qualität der Antworten immernoch so ausgezeichnet ist wie anno dazumal :) Mir raucht gerade die Birne und ich komm nicht auf die Lösung, aber bestimmt wisst ihr mehr.

Folgendes Problem:

Bei meinem templatesystem gibt es einen Lichtschalter. Ob das licht an oder aus ist wird im link übergeben (...index.php?licht=an bzw. aus). Wenn man nun so über die seite streift, soll man in der lage sein das Licht von jeder Seite an und aus zu schalten, ohne dass sich der content ändert.Also muss der Link ja dynamisch sein.
Wo sich der user gerade befindet, lässt sich ja mit $_SERVER['QUERY_STRING'] bestens herausfinden.

Der link sieht dann quasi so aus ".$_SERVER['QUERY_STRING']."?licht=an und bei der "Licht-an-Seite" dementsprechend ".$_SERVER['QUERY_STRING']."?licht=aus.

Nach mehrmaligem licht an und aus schalten summieren sich diese beiden allerdings zu ".$_SERVER['QUERY_STRING']."?licht=an&licht=aus&licht=an&licht=aus.

So hab ich das Problem versucht zu lösen, allerdings bliebs beim selben resultat

<a href="index.php?<?php $link = $_SERVER['QUERY_STRING']; if(preg_match("/&site=day/", '$link')){echo $link;}else echo "$link&site=day"; ?>


Hab versucht mit preg_replace zu handtieren, allerdings steige ich nicht so recht durch diese Regex operatoren durch. Vielleicht hat an dieser stelle ja noch jemand einen guten einführungslink.

Wie würdet ihr dieses Problem lösen liebe Forumianer?


liebe grüße

Diggicell

 
Kropff
23-03-2011, 21:43 
 
Warum prüfst du nicht einfach mit $_GET['licht']? Oder ich verstehe dein Problem nicht ganz.

Peter

 
wahsaga
23-03-2011, 22:20 
 
Wie würdet ihr dieses Problem lösen liebe Forumianer?
http_build_query

 
Diggicell
23-03-2011, 23:17 
 
Ich hab bisher auch $_GET['licht'] benutzt, allerdings werden im laufe des seitenbesuches werden aber immer mehr, unbekannte parameter mit übergeben.

So befindet sich z.b ein user auf index.php?sektion=kommentare&id=1452&licht=an

Der link zum ausschalten müsste dann ja der selbe, jedoch mit licht=aus sein.Mein problem ist es gerade, den string bis auf licht=an zu zerlegen, zu prüfen obs an ist, und gegebenenfalls auf aus stellen. Vll hab ich mich nu besser verständlich gemacht :)

 
wahsaga
23-03-2011, 23:47 
 
Mein problem ist es gerade, den string bis auf licht=an zu zerlegen
Vergiss den String.

Nimm das Array, das du hast - $_GET - und lies meinen vorherigen Hinweis noch mal ...

 
Diggicell
24-03-2011, 00:58 
 
Hab mir da jetzt mal gedanken drüber gemacht und auch angefangen zu tipsen, doch beim ersten test :
Fatal error: Call to undefined function: http_build_query()

Mein Provider ist leider noch nicht auf PHP5 umgestiegen. Gibts da vielleicht noch eine Ratschlag ?

 
wahsaga
24-03-2011, 01:02 
 
Gibts da vielleicht noch eine Ratschlag ?
Nutzerkommentare im Manual lesen - die bieten wie so oft auch hier Alternativen.

 
Diggicell
24-03-2011, 01:39 
 
Wonderbra! Hab mir daraus was gebastelt, was es dem ersten anschein nach auch tut. Dann man vielen Dank!!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:39 Uhr.