![]() |
PHP: Prüfen ob bestimmter Parameter gesetzt ist
Hi!
Wie kann ich überprüfen, ob ein bestimmter Parameter gesetzt wurde? Ich hab schon einige Möglichkeiten ausprobiert, anbei ein paar Beispiele, was ich versucht hab
Code:
Die Methoden klappen alle nicht. Aber bei
$mode = $_GET;
if ($mode['subject'] == '') // hier soll die entsprechende Stelle überprüft werden miep(); // wird nicht ausgeführt if (!$mode['subject']) miep(); // wird nicht ausgeführt if ($mode['subject'] == NULL) miep(); // auch nicht if (!ISSET($mode['subject'])) miep(); // wird auch nicht ausgeführt
Code:
wird miep() ausgeführt. Aber egal, ob ich nun als Parameter was bei "subject" angebe oder nicht.
if (ISSET($mode['subject']))
miep(); ich rufe als Parameter immer "?page=index" auf. Wenn ich die Parameter verknüpfe schreibe ich "?page=index&subject=irgendwas". Subject wird in letzterem Falle auch richtig gesetzt, ich kann es auch per Echo ausgeben. Aber irgendwie klappt die Abfrage nicht :gruebel: |
Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist
Moin malo,
bei aelteren Scripts verwende ich das:
Code:
Bei neueren Scripts gehe ich einfach ueber $_REQUEST:
if (isset($HTTP_GET_VARS['varname']) || isset($HTTP_POST_VARS['varname']))
{ $varname = (isset($HTTP_GET_VARS['varname'])) ? $HTTP_GET_VARS['varname'] : $HTTP_POST_VARS['varname']; } else { $varname = ''; //Default }
Code:
Vergiss aber nicht, dass du alle input-Variablen validieren solltest, also integer mit intval() konvertieren, ueber strings evtl. htmlspecialchars() laufen lassen, Anfuehrungszeichen escapen (nur bei SQL-Queries) usw.
$varname = (isset($_REQUEST['varname'])) ? $_REQUEST['varname'] : '';
Ganz geschickt sind sog. varlists:
Code:
So kannst du schnell und einfach aehnliche Variablen validieren und uebernehmen ;)
$int_varlist = array('post_id', 'topic_id', 'user_id');
foreach ($int_varlist as $varname) { $$varname = (isset($_REQUEST[$varname])) ? intval($_REQUEST[$varname]) : 0; } Wenn du aber nur ueberpruefen willst, ob was gesetzt wurde, solltest du isset() verwenden. Und abschliessend noch eine Frage: warum kopierst du das ganze $_GET-Array? Dir ist hoffentlich klar dass
Code:
das gesamte Array im Speicher kopiert?
$mode = $_GET;
Greetz alcaeus |
Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist
Danke, mit $_REQUEST funktioniert das wunderbar :)
Zitat:
|
Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist
Ich bin persönlich kein Fan von $_REQUEST....ein Scripter sollte wissen, woher seine Parameter kommen sollen... ;)
Zur Sache: Ich würde einfach 2 Abfragen vereinen:
Code:
air
if(isset($_GET['subject']) && !empty($_GET['subject']))
|
Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist
Zitat:
Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz