php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.09.2008, 05:29  
Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 74
Mr.Karl befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Arrayfunktion um Keys zu verwenden

Hallo PHP-Freunde,

ich suche eine vereinfachte Möglichkeit um die Bedingungen abfragen zu können, z.B. über switch für:

PHP-Code:

if(isset($_GET["update"]))
{
    
$action "update";
}

if(isset(
$_GET["insertinto"]))
{
    
$action "insertinto";
}

if(isset(
$_GET["insertafter"]))
{
    
$action "insertafter";
}
...
usw
Die einzige Möglichkeit, die mir einfällt, aber nicht gefällt, wäre es, die Links so anzupassen, dass es nicht mehr index.php?update bzw. index.php?insertinto usw heißt, sondern index.php?action=update bzw. insertinto usw.

Aber wie gesagt, gefällt mir nicht wirklich, ich such mehr nach einer Möglichkeit, die Klammerwerte im $_GET-Array verwenden zu können, ich suche also nach einer passenden Array-Funktion
Mr.Karl ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.09.2008, 05:38  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

also erstmal: was ist verkehrt an actin=undate?
naja Du kannst mod_Rewrite anstrengen oder die php Funktion array_keys benutzen
HPR1974 ist offline  
Alt 05.09.2008, 05:40  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

wobei ich Deinen Ansatz für nicht gut halte, lieber einen parameter der verschiedene werte haben kann und den auswerten. Alles andere verstrickt Dich nur in unsinnigen code und probleme...
HPR1974 ist offline  
Alt 05.09.2008, 16:44  
Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 74
Mr.Karl befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Antwort. array_keys war die funktion, die ich gesucht hatte

Warum soll mein Ansatz unsinnig sein? Ob ich jetzt an meine internen Links
?update
?insert
?delete
usw. dranhänge, oder
?action=update
?action=insert
?action=delet
ist aus meiner Sicht ziemlich egal, nur das meine Form kürzer ist
Mr.Karl ist offline  
Alt 05.09.2008, 16:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Warum soll mein Ansatz unsinnig sein?
Weil Deine 'action' die URL für bestimmte Parameternamen blockiert. Ist doch Unsinn. Was passiert z.B. wenn Du folgendes tust:

Code:
http://meine.domain?read&update=1
array_keys bringt Dich außerdem auch nicht weiter. Vergleichen mußt Du ja trotzdem...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 05.09.2008, 17:16  
Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 74
Mr.Karl befindet sich auf einem aufstrebenden Ast
Standard

Im Prinzip sollen ja bestimmte Parameter blockiert werden, weil es nicht möglich sein soll mehrere dieser Anhänge einzugeben, da sie zu bestimmten Aktionen führen, die nicht gleichzeitig stattfinden sollen

Da der action-Parameter immer an zweiter Stelle sein soll, kann ich ihn über
PHP-Code:
$key array_keys($_GET);
$action $key[1]; 
aufrufen.

Es ist also in gewisser Weise eine zusätzliche Kontrolle, dass $_GET nicht manipuliert wurde
Mr.Karl ist offline  
Alt 05.09.2008, 17:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und an erster Stelle? Das sollte doch der 1. sein, oder?

Zitat:
Es ist also in gewisser Weise eine zusätzliche Kontrolle, dass $_GET nicht manipuliert wurde
Überzeugt mich nicht und ist sinnlos. Die Kontrolle sollte allenfalls sein, ob eine gültige Ressource angefordert wurde.
Was ist der Unterschied in der Manipulation, ob ich

?action=update statt ?action=delete
eingebe oder
?update statt ?delete
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (05.09.2008 um 17:44 Uhr). Grund: K
nikosch ist gerade online  
Alt 06.09.2008, 02:20  
Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 74
Mr.Karl befindet sich auf einem aufstrebenden Ast
Standard

an erster Stelle wird ein anderer Parameter übergeben, der nicht in meinen geposteten Codeschnipsel aufgetaucht ist.
Es ist dahingehend eine Kontrolle, dass nicht mehre action-Parameter aufgerufen werden können, mit deiner favorisierten Variante könnte man mit ?action=update&action=insertinto&action=insertafte r gleich alle drei actions aufrufen (bzw man müsste halt eine zusätzliche Kontrolle einfügen, die bei mir schon quasi dabei ist), bei mir wird halt nur der 2. übergebene Parameter benutzt. Ich sag ja nicht, dass meine Variante besser ist, nur überzeugen mich deine Argumente nicht so stark, dass ich meinen Quellcode ändern würde und mir dadurch Arbeit aufhalsen würde
Mr.Karl ist offline  
Alt 06.09.2008, 03:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
an erster Stelle wird ein anderer Parameter übergeben
Das sieht dann so aus?
http://dein.server/index.php?abc=abs&update&xyz=2
Zitat:
Es ist dahingehend eine Kontrolle, dass nicht mehre action-Parameter aufgerufen werden können, mit deiner favorisierten Variante könnte man mit ?action=update&action=insertinto&action=insertafte r gleich alle drei actions aufrufen (bzw man müsste halt eine zusätzliche Kontrolle einfügen, die bei mir schon quasi dabei ist)
Ganz im Gegenteil. Bei obiger Variante würde der letzte Parameter die anderen überschreiben. Deine Variante (mal abgesehen von #2) ist viel anfälliger für doppelte Angaben, weil hier update , insert, insertafter ja nebeneinander existieren können:
http://dein.server/index.php?update&insert&insertafter
Code:
$_GET = array (
 'update' => NULL
 'insert' => NULL
 'insertafter' => NULL
)
Wenn Du Deine Entscheidung nicht schon gefällt hättest würde ich Dir ja zu mod_rewrite und folgender Variante raten:

update.php?andere=parameter wird umgesetzt zu index.php?action=update&andere=parameter
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (06.09.2008 um 03:29 Uhr).
nikosch ist gerade online  
Alt 06.09.2008, 15:12  
Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 74
Mr.Karl befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Ganz im Gegenteil. Bei obiger Variante würde der letzte Parameter die anderen überschreiben.
Du hast recht, daran hab ich nicht gedacht. Auch wenns mir schwerfällt, so muss ich zugeben, dass das das Argument ist, die deine Variante favorisiert.

Ich werde die Änderung aber erstmal hinten anstellen, halte es nicht für wirklich relevant
Mr.Karl 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bitte aussagekräftige Threadtitel verwenden nikosch PHP Einsteiger 2 13.04.2009 13:33
Welche Lizenz verwenden ghost120 Off-Topic Diskussionen 1 06.08.2008 09:09
Variablen in einer Funktion verwenden Smily0412 PHP Tipps 2006 3 24.09.2006 16:42
[phpMyAdmin] Foreign Keys in der Übersicht als Link? freq.9 Datenbanken 0 06.09.2006 14:43
<button> verwenden - wie unterscheiden??? Tigermoon PHP Tipps 2006 12 31.05.2006 11:44
[Sicherheits Frage] Meine Autorisierungs Key's PHP Tipps 2006 19 17.02.2006 08:52
Post- und Get-Methode gleichzeitig verwenden PHP Tipps 2007 50 07.12.2005 08:13
[Erledigt] PHP-Sessions verwenden oder selber machen? PHP Tipps 2007 6 04.12.2005 11:39
[Erledigt] $$var / ${$var} in preg_replace_callback() verwenden PHP Tipps 2005 8 20.04.2005 18:02
$1 als String weitergeben verwenden in preg_replace(.) PHP Tipps 2005 4 27.03.2005 15:24
GET und POST gleichzeitig verwenden ? PHP Tipps 2005 6 17.03.2005 03:20
Grafiken als Rahmen verwenden?! CSS HTML, Usability und Barrierefreiheit 8 03.03.2005 20:49
blob verwenden (xtreme noob) Malfunction Datenbanken 9 03.02.2005 13:51
php und java script zusammen verwenden??? PHP Tipps 2005 6 14.01.2005 10:04
Tutorial gesucht->Optimierung großer Tabellen mit Keys et robo47 Datenbanken 3 10.11.2004 09:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
keys of $_get, keys array einfügen, php werte und keys aus einem link, php zweimal key in array, php function array benutzen, php $_get key, php array einfügen after

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:57 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