php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.08.2005, 13:46  
Gast
 
Beiträge: n/a
Standard Tipp wie Prüfung auf Inhalte machen kann?

Hallo Profs,

ich habe 3 Textfelder in einem Formular.
Beim Abschicken des Formulars möchte ich mit php prüfen, dass
1. jeweils nur ein Feld von den 3 Feldern gefüllt ist, egal welches
2. der Inhalt des gefüllten Feldes darf nur numerisch sein, aber darf Kommazeichen und mehrere Nachkommastellen enthalten

Ich wollte, dass über eine IF-Bedingungen machen, aber das macht es nur noch unübersichtlicher, weil ich auch noch weitere Felder ähnlichen Problems habe.

Wie kann ich das mit einem Array und Schleife machen,
oder bin ich total auf dem Holzweg?

Grüsse Chris
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.08.2005, 13:51  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 578
WarrenFaith
WarrenFaith eine Nachricht über ICQ schicken
Standard

1. Lösung: Nichtnumerische eingaben mit JavaScript abfangen
2. Lösung: Sobald in eins der Felder reingeschrieben wird, das andere Feld leeren (ebenfalls mit JavaScript)
3. Problem dabei: JavaScript kann deaktiviert werden

Fazit: du kommst nicht um if-Anweisungen in PHP herum
__________________
Developers-Guide.net
Senseless
WarrenFaith ist offline  
Alt 25.08.2005, 13:52  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

theoretisch könntest du es so etwa machen

Code:
<input type="text" name="blub[1]">
<input type="text" name="blub[2]">
<input type="text" name="blub[3]">
und dann

PHP-Code:
<?php
$array 
$_POST['blub'];

if (
is_array($array)) {
  
$i 0;
  foreach (
$array as $value) {
    if (!empty(
$value) AND is_numeric($value)) {
      
$wert $value;
      
$i++;
    }
  }

  
// Jetzt noch checken ob nur ein Feld eingegeben wurde
  
if ($i != 1$wert '';
}
?>
zur erklärung: es wird jeder übergebener wert gecheckt ob er gesetzt ist und ob er numerisch ist! wenn ja wird er gespeichert und $i um eins erhöht... da du ja nur ein wert eingegeben werden darf MUSS also $i am ende nur 1 sein für ein feld! also filter ich am ende noch raus obs jetzt genau eine eingabe war oder nicht... $wert ist dann der wert der eingegeben wurde ... obwohl es 3 felder gibt muss ich wert nicht als array schreiben da ja eh nur ein wert am ende existieren darf!
Flor1an ist offline  
Alt 25.08.2005, 14:39  
Gast
 
Beiträge: n/a
Standard

Hallo,

vielen Dank für Eure Antworten, ich will und muss in PHP bleiben, deshalb kann ich nicht mit javascript arbeiten!

ZUSATZFRAGE:

Die Schleife ist perfekt, es ist mir egal welches Feld gefüllt ist, aber den Feldnamen für weitere Berechnungen brauche ich, habe mich ein bisschen undeutlich ausgedrückt
Wie bekomme ich den Wert, also blub[1], 2 oder 3 mit dem ich dann weiterrechnen kann?


Code:
<input type="text" name="blub[1]"> 
<input type="text" name="blub[2]"> 
<input type="text" name="blub[3]">

$array = $_POST['blub']; 

if (is_array($array)) { 
  $i = 0; 
  foreach ($array as $value) { 
    if (!empty($value) AND is_numeric($value)) { 
      $wert = $value; 
      $i++; 
    } 
  } 

  // Jetzt noch checken ob nur ein Feld eingegeben wurde 
  if ($i != 1) $wert = ''; 
} 
?>
Chris
 
Alt 29.08.2005, 12:04  
Gast
 
Beiträge: n/a
Standard

Hallo,

wie bekomme ich denn aus der unten (in der foreach-Schleife) genannten Variable $value heraus, welches Array-Element bzw. Array-Key (also blub[1] oder blub[2] oder blub[3]) diesem zu Grunde liegt (bzw. den Wert an die Variable $value übergeben hat), denn nur wenn ich den Key weiss, kann ich die anderen Felder füllen.

Danke und Grüsse

Chris


Code:
<input type="text" name="blub[1]"> 
<input type="text" name="blub[2]"> 
<input type="text" name="blub[3]"> 

$array = $_POST['blub']; 

if (is_array($array)) { 
  $i = 0; 
  foreach ($array as $value) { 
    if (!empty($value) AND is_numeric($value)) { 
      $wert = $value; 
      $i++; 
    } 
  } 

  // Jetzt noch checken ob nur ein Feld eingegeben wurde 
  if ($i != 1) $wert = ''; 
} 
?>
 
Alt 29.08.2005, 12:16  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Hi.

Müsstest eine andere Schreibweise verwenden:

Code:
foreach ($array as $KeyX => $value)
Dann hast du den jeweiligen Key in $KeyX

Siehe auch hier: http://de2.php.net/manual/en/control...es.foreach.php

Gruß,
Axel
XLB ist offline  
Alt 30.08.2005, 07:35  
Gast
 
Beiträge: n/a
Standard

Hallo XLB,

vielen Dank, das wars!

Grüsse Chris
 
 


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
[Erledigt] Inhalte aus Exceldateien in MySQL importieren Datenbanken 6 27.05.2009 20:03
[Erledigt] Wer hat einen Tipp für eine Community-Lösung Wolla Scriptbörse 6 03.07.2008 11:26
datenbankstruktur für mehrsprachige inhalte phpbeginner Datenbanken 7 26.05.2008 11:57
aus Datenbank (mySQL) mehrere Inhalte rausholen Soese PHP Tipps 2008 6 18.12.2007 22:42
Inhalte in Datenbank speichern Maxi Datenbanken 31 14.09.2007 18:56
Inhalte in einer Datenbank speichern Maxi Datenbanken 5 02.09.2007 21:37
kurzer tipp bezüglich einer selbstgemachten gallery Promaetheus PHP Tipps 2007 1 08.04.2007 10:03
Inhalte zwischen 2 Klammern auslesen duderino PHP Tipps 2007 14 20.01.2007 22:57
inhalte von exe-dateien Off-Topic Diskussionen 8 29.11.2005 13:24
Select eines Feldes welches 2 Inhalte haben darf Datenbanken 2 22.11.2005 21:59
tipp zu einem formularscript? PHP Tipps 2005 2 14.04.2005 15:03
[Suche] Übersetzer für Inhalte einer Java-FAQ imported_Ben Beitragsarchiv 29 10.02.2005 14:16
verschiedene Inhalte PHP Tipps 2004-2 9 15.11.2004 21:01
Inhalte von 2 Servern über 1 Template laufen lassen? scheibo PHP Tipps 2004 1 30.09.2004 01:20
Fußball Tipp Liga Script Off-Topic Diskussionen 5 21.07.2004 19:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
wieprüfung

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