dedlfix: isset Problem wegen get_magic_quotes_gpc() ??

Beitrag lesen

echo $begrüßung;

if(!isset($photo)){
  $photo = NULL;
}

Speziell das sollte unnötig sein. Wieso sollte $photo nicht vorhanden sein? Hat jemand vergessen, es explizit zu initialisieren?

Du meinst also besser nicht solch eine Latte von "Initialisierungen"
sondern dann eher bei einem IF / Else Abfrage prüfen wie;
if(empty($_GET['optionserror'])){
..
}else{
...
}

Oder auch kürzer mit dem Trinitätsoperator ?: wenn es sich nur um eine Variablenzuweisung handelt.

$foo = isset($_POST['foo']) ? $_POST['foo'] : 'default value';

Oder auch gar keine Variable anlegen sondern direkt verarbeiten:

$string = sprintf('string mit %s als Platzhalter', isset($_POST['foo']) ? $_POST['foo'] : 'default value');

Es kommt immer darauf an, was man letztlich will. Vielleicht ist es auch gar nicht sinnvoll, das Formular zu verarbeiten, wenn für Formularfelder keine $_POST-Einträge mitkommen. Es könnte sich um einen Missbrauch handeln oder auch nur um einen normalen Nicht-POST-Request der Seite.

Ich möchte den Wert des Textfeldes "txt_Anzahl" in eine Session schreiben aber halt erst wenn auch ein Wert befüllt wurde oder wenn es nicht leer ist.

Du könntest mit isset() prüfen, ob der Wert überhaupt mitgesendet wurde. Wenn nicht, ist das Formular offensichtlich nicht abgesendet worden. Ob dann eine Weiterverarbeitung sinnvoll ist, musst du entscheiden. Wenn ja, könntest du einen Default-Wert in die Session schreiben.

Du kannst aber auch generell mit empty() testen, ob der Wert vorhanden und nicht leer ist und ihn dann weiterverarbeiten oder mit einen Default-Wert weiterarbeiten. Das wäre dann sinnvoll, wenn es nicht interessiert, ob das Formular überhaupt gesendet wurde oder nicht.

if( isset($_POST['txt_copies']) ){

$_SESSION['name'] = $_POST['name'];
  $_SESSION['acc'] = $_POST['acc'];
  $_SESSION['txt_Anzahl'] = $_POST['txt_Anzahl'];
}

  
Anhand eines Wertes das Vorhandensein der anderen als gegeben hinzunehmen ist etwas kühn (oder zumindest nicht durchdacht). Ich würde das vermutlich (ich kenne ja das große Ziel nicht, deswegen die einschränkende Formulierung) mit dem Trinitätsoperator wie oben gezeigt notieren.  
  

> Also meinst du besser diesen Code für Magic Quotes drin lassen,  
  
Du kannst ihn weglassen, wenn du sicherstellen kannst, dass das Feature M.Q. deaktiviert ist und auch so bleibt. Ansonsten lass ihn drin, aber eben ganz am Anfang.  
  
  
echo "$verabschiedung $name";