php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.03.2007, 17:17  
Benutzer
 
Registriert seit: 27.04.2004
Beiträge: 50
guenterfrosch
Standard Array-Key in foreach-Schleife

Hallo

Um zu überprüfen, ob alle Felder eines Formulars ausgefüllt wurden, verwende ich normalerweise:
Code:
foreach($_POST as $eingabe){
 if(empty($eingabe)){
  die("nicht alle felder ausgefüllt");
 }
}
Nun habe ich aber einige optionale Felder im Formular. Wie kann ich in der foreach-Schleife Keys des Arrays $_POST ausfindig machen und so deren Überprüfung umgehen?



Vielen Dank
guenterfrosch ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.03.2007, 17:25  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Mit dieser Syntax:
PHP-Code:
<?php
foreach ($_POST as $sKey => $sValue)
?>
und der entsprechenden if-Bedingung. Allerdings solltest du deine Überprüfung mal modernisieren.
Zergling-new ist offline  
Alt 11.03.2007, 20:41  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo guenterfrosch,

zum einen muss ich den Rat von Zergling bekräftigen, zum anderen solltest du dir Gedanken machen, ob das wirklich immer richtig ist. Nehmen wir mal an du hast noch einige Hidden-Felder im Formular, die einfach leer sein müssen, weil das Programm es so möchte, dann kann dein User ausfüllen, was er will, es wird nicht klappen das Formular abzuschicken. Hier solltest du vorher konfigurieren, oder angeben, welche Post-Variablen du prüfen möchtest. Des Weiteren solltest du evtl. noch Syntax-Prüfung einführen. Bei einem Feld E-Mail soll der Benutzer möglichst eine syntaktisch richtige E-Mail einfügen.
Auch das "die()" ist sehr unschön, weil der Benutzer sonst komplett aus der Seite geschmissen wird und kein Design bzw. Formular mehr angezeigt wird. Evtl. arbeitest du mit roten Umrandungen wir in http://www.zierpflanzenberatung.de/Seite/52.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 11.03.2007, 20:48  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von dr.e.
... zum anderen solltest du dir Gedanken machen, ob das wirklich immer richtig ist. Nehmen wir mal an du hast noch einige Hidden-Felder im Formular, die einfach leer sein müssen, weil das Programm es so möchte, dann kann dein User ausfüllen, was er will, es wird nicht klappen das Formular abzuschicken. Hier solltest du vorher konfigurieren, oder angeben, welche Post-Variablen du prüfen möchtest.
Ich versteh net ganz, was Du damit sagen willst.
Gerade deshalb will der OP doch die Namen der Felder herauskriegen. Nur dann kann er ja einige Felder gezielt auslassen.

Und notfalls kann man dem Hidden-Feld auch einen Wert verpassen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 11.03.2007, 21:08  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
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

da gibt es weit mehr probleme. z.b., dass nicht ausgewählte checkboxes nicht per post übertragen werden, aber trotzdem durchaus gültige angaben darstellen. oder die datentypen nicht stimmen. ich muß ja für die post anfrage nicht dein vorgegebenes form verwenden.
nikosch ist gerade online  
Alt 11.03.2007, 22:14  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Ne, musst du nich, aber das Format sollte es schon haben Wenn ich mich nicht an ein Interface halte, muss ich mich nicht wundern, dass es nicht funktioniert.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 11.03.2007, 22:57  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Der_Gerhard,

Zitat:
Ich versteh net ganz, was Du damit sagen willst.
Gerade deshalb will der OP doch die Namen der Felder herauskriegen. Nur dann kann er ja einige Felder gezielt auslassen.
Was ich damit sagen will. ist dass man das prüfen nur auf die im Form enthaltenen Felder beschränken sollte und zudem diese nach Syntax (Text-Feld: mind. 3 Zeichen; E-Mail: syntaktisch gültige E-Mail) prüfen sollte. Sowas wie (Pseudocode)

PHP-Code:
<?php
$aFormFields 
= array('Name','EMail');

foreach(
$_POST as $sKey => $sValue){

   if(
in_array($sKey,$aFormFields)){
   
      [...]

   }

}
?>
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 11.03.2007, 23:10  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Das hat aber nun rein gar nix mit dem von mir zitierten Text zu tun.
Über den Rest mit der Email hab ich ja nix gesagt.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 11.03.2007, 23:44  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Was meinst du dann? Ich bin verwirrt?
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 12.03.2007, 00:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
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:
Zitat von KingCrunch
Ne, musst du nich, aber das Format sollte es schon haben Wenn ich mich nicht an ein Interface halte, muss ich mich nicht wundern, dass es nicht funktioniert.
entscheidend ist eher die sicherheitsrelevanz. wenn ich davon ausgehe, dass ein parameter nur die werte annehmen kann, die ich in einem select oder radio options element angebe wirds schnell hakelig.
nikosch ist gerade online  
 


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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Verschachteltes Array: Daten auswählen horstenpeter PHP Tipps 2006 8 14.03.2006 00:12
Ausgabe Array in schleife PHP Tipps 2006 2 01.02.2006 13:49
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
array als Schleife verwenden cyberholic Datenbanken 6 12.01.2006 13:14
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
foreach schleife abbrechen PHP Tipps 2004 3 27.09.2004 18:06
Array mit while Schleife auslesen PHP Tipps 2004 7 26.06.2004 19:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
arrays in formularen foreach schleife, foreach array darstellen, array key in schleife, wo kann mann den software key ausfindig machen

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.