AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP: Prüfen ob bestimmter Parameter gesetzt ist
Thema durchsuchen
Ansicht
Themen-Optionen

PHP: Prüfen ob bestimmter Parameter gesetzt ist

Ein Thema von malo · begonnen am 12. Okt 2005 · letzter Beitrag vom 12. Okt 2005
Antwort Antwort
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

PHP: Prüfen ob bestimmter Parameter gesetzt ist

  Alt 12. Okt 2005, 11:42
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:
$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
Die Methoden klappen alle nicht. Aber bei
Code:
if (ISSET($mode['subject']))
  miep();
wird miep() ausgeführt. Aber egal, ob ich nun als Parameter was bei "subject" angebe oder nicht.

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
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist

  Alt 12. Okt 2005, 12:05
Moin malo,

bei aelteren Scripts verwende ich das:
Code:
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
}
Bei neueren Scripts gehe ich einfach ueber $_REQUEST:
Code:
$varname = (isset($_REQUEST['varname'])) ? $_REQUEST['varname'] : '';
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.

Ganz geschickt sind sog. varlists:
Code:
$int_varlist = array('post_id', 'topic_id', 'user_id');
foreach ($int_varlist as $varname)
{
  $$varname = (isset($_REQUEST[$varname])) ? intval($_REQUEST[$varname]) : 0;
}
So kannst du schnell und einfach aehnliche Variablen validieren und uebernehmen

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:
$mode = $_GET;
das gesamte Array im Speicher kopiert?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist

  Alt 12. Okt 2005, 12:56
Danke, mit $_REQUEST funktioniert das wunderbar

Zitat von alcaeus:
Und abschliessend noch eine Frage: warum kopierst du das ganze $_GET-Array? Dir ist hoffentlich klar dass
Code:
$mode = $_GET;
das gesamte Array im Speicher kopiert?
Hab ich so noch nicht drüber nachgdacht Hab ich jetzt entsprechend geändert.
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#4

Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist

  Alt 12. Okt 2005, 13:15
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:
if(isset($_GET['subject']) && !empty($_GET['subject']))
air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: PHP: Prüfen ob bestimmter Parameter gesetzt ist

  Alt 12. Okt 2005, 13:20
Zitat von Airblader:
Ich bin persönlich kein Fan von $_REQUEST....ein Scripter sollte wissen, woher seine Parameter kommen sollen...
Warum? Die kommen vom User...na und? Wenn ich ein Formular habe, und ich will ein Aufrufen ueber Get verhindern, dann geh ich explizit auf $_POST, aber wenn es mir egal ist...warum nicht $_REQUEST verwenden? So hat man wenigstens alle Daten, denen man nicht vertrauen darf, auf einen Haufen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz