php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.08.2007, 20:47  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard $_GET['X'] in URL überschreiben wenn ...

Hi zusammen,

ist ja fein, dass es php.de wieder gibt

Mehr oder weniger durch zufall gesehen... und natürlich ne Frage und zwar:

Ich habe eine URL
index.php?site=news

So nun hänge ich nen GET dran und zwar $_GET['neu']
index.php?site=news&neu=X

Nun kommt die nächste möglichkeit, ein weiteres $_GET['neu'] anzuhängen ... was ich aber verhindern will ... ich will das wenn das $_GET['neu'] erneut angehangen werden soll, dass alte ersetzt werden soll

Hoffe mein Problem bzw. meine Überlegung war/ist verständlich

LG Chris
CHRIS ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.08.2007, 22:55  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Ein paar mehr Informationen wären über dein Script (Wie wird der Link generiert? Wie wird er bearbeitet? etc.) würden uns die Arbeit dir zu helfen nicht merklich erschweren.

Da ich keine problemspezifischen Informationen habe, kann ich dir nur einige Stichworte geben, die ich in meiner Glaskugel gesehen habe:
- $_SERVER['QUERY_STRING'] //mal ausgeben lassen
- preg_match() / preg_replace //mal nachlesen

Gruss
De Igäl
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 21.08.2007, 11:50  
Erfahrener Benutzer
 
Registriert seit: 30.07.2007
Beiträge: 162
Ambience befindet sich auf einem aufstrebenden Ast
Ambience eine Nachricht über ICQ schicken
Standard

Moin,

Es folgt ein ICH GLAUBE: Ich glaube sobald man eine weitere Variable an die url anhängt und diese schonmal vorhanden ist, sollte diese eigentlich überschrieben werden...*ausprobieren*


Ambience
__________________
Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.
Ambience ist offline  
Alt 21.08.2007, 12:21  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Der Wert im $_GET-Array wird natürlich überschrieben, weil der Index schon einmal vorhanden ist. Nur in der URL findet man dann zweimal den selben Parameter, was unschön anzuschauen ist. Ich denke das ist es, was er verhindern will.
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 21.08.2007, 13:05  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Dazu müsste man genauer das Problem kennen. Ist das "Problem" beim erzeugen eines Links, dass index.php?bla=blub&bla=ui z.B. dann als Link im Quelltext / auf der Seite steht, oder dass wenn man manuell 2 gleiche Parameter an die URL hängt es "richtig" aktualisiert werden sollte?

So könne man die URL einfach nehmen (mit $_SERVER['QUERY_STRING'], und den ersten (oder eben die falschen Werte) mit Reg_ex oder str_replace, explode, etc ersetzen, entfernen oder wie auch immer und dann einfach einen neuen Link erzeugen und diesen mit header() aufrufen. Natürlich alles vor einer Ausgabe oder Verarbeitung. Probleme kanns hier bei Post geben.

Ansonsten, schwer zu sagen, was das "Problem" genau ist. Zu wenig input für output

Grüße
Da Psy
PsychoEagle ist offline  
Alt 21.08.2007, 13:13  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

Um das Problem nochmal etwas genauer zu erläutern:

Ich habe ein Dropdown Menü mit onchange (weiterleitung einer URL)
$_SERVER['REQUEST_URI']."?neu=X

wenn man jetzt das DropDown Menü nochmal nutz, wird die url zu:
$_SERVER['REQUEST_URI']."neu=X&neu=X

und genau das will ich verhindern ... !!

der GET Wert ist variable .. statt X kann auch irgend was anderes an der stelle stehn, je nach Auswahl des jeweiligen Menüpunktes ... !

LG Chris
CHRIS ist offline  
Alt 21.08.2007, 13:31  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Dann such und ersetz mit preg_replace. Suchst mit Hilfe von regulären Ausdrücken nach dem Pattern "neu=.*" und ersetzt es durch "neu=neuer_wert".

http://de.php.net/manual/de/function.preg-replace.php
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 21.08.2007, 13:41  
Erfahrener Benutzer
 
Registriert seit: 30.07.2007
Beiträge: 162
Ambience befindet sich auf einem aufstrebenden Ast
Ambience eine Nachricht über ICQ schicken
Standard

Hallo,

preg_replace('/neu\=(.*)/i', 'neu=' . $neuer_wert, $url);

Bitteschön

Ambience
__________________
Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.
Ambience ist offline  
Alt 21.08.2007, 13:48  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

hmm mit der Lösung kann ich aber $_SERVER['REQUEST_URI'] nicht verändern ... und somit wirds immer wieder mit angehangen ...
CHRIS ist offline  
Alt 21.08.2007, 13:55  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Du kannst den Wert von $_SERVER['REQUEST_URI'] aber z.B. in eine neue Variable schreiben, die du dann nach Belieben verändern kannst...

@Ambience: Was macht deine RegExp, wenn nach dem neu=bla noch ein Parameter kommt? Z.B. neu=bla&neu2=blubb

Geändert von Montellese (21.08.2007 um 13:59 Uhr).
Montellese ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$_get xss, http://www.php.de/php-tipps-2008/71-_get-x-url-ueberschreiben-wenn.html, php url gleichnamige parameter, $_get schreiben, xss in url, php url überschreiben, php url gleiche parameter überschreiben, \url überschreiben\, php $_get xss, $_get überschreiben, $_get[\'x\'], $_get in neue varaible schreiben, preg replace \parameter entfernen\, $x = $_get[x];, $_get mehrere gleiche parameter, $_get[\'x\'] funktioniert nicht, php get wert überschreiben, url php ueberschreiben, $_get xss how, php \$_get\ schreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum