Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » [Regular Expressions] Prüfen, ob Variable doppelt gesetzt ist... Antworten
[Regular Expressions] Prüfen, ob Variable doppelt gesetzt ist

cmuecke
Quasselstrippe


Beiträge: 287


Ich habe ein Script geschrieben, in dem am Anfang die Variablen gesetzt werden:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
$uri = $PHP_SELF."?lang=".$lang;
 if(@isset($top)){
  $uri .= "&top=".$top;
 }
 if(@isset($sub)){
  $uri .= "&sub=".$sub;
 }
 if(@isset($cmd)){
  $uri .= "&cmd=".$cmd;
 }


Das Problem: wenn die Variable cmd schon gesetzt ist und ein Link zu einer anderen Funktion führt, die auch die Variable $uri zur Navigation nutzt und per cmd auf eine andere Funktion zugreift, kommt ein "Doppel-cmd" raus. Beispiel:
Derzeitiger URL: http://192.168.100.56/index.php?lang=0&cmd=add&exec=FALSE
Der Link: echo '<a href="'.$uri.'?cmd=edit&exec=FALSE">Link</a>';
Heraus kommt:
http://192.168.100.56/index.php?lang=0&cmd=add&cmd=edit&exec=FALSE

Nun meine Frage: wie lässt sich das Problem über Regular Expressions lösen? Die erste Variable cmd sollte automatisch gefiltert werden, wenn der Link (http://192.168.100.56/index.php?lang=0&cmd=add&cmd=edit&exec=FALSE) aufgerufen wird, sodass "$cmd" nun "edit" beträgt.

Edit: Hat sich erledigt ... man auch mit $uri = str_replace("&cmd=".$cmd,"",$uri); das ändern ...

---
http://sylver-web.de
Weisheiten:
- Das Wesen der Dinge hat die Angewohnheit, sich zu verbergen. - Heraklit (griech. Philosoph)
- Wären alle Menschen gleich, würde im Prinzip einer genügen. (unbekannt)

Diese Nachricht wurde geändert von: cmuecke
  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben