php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.01.2005, 16:42  
Ypsillon
Gast
 
Beiträge: n/a
Standard POST Variablen auf Gültigkeit prüfen

Hi,

ich weiss ja das man keinen fremden Werten trauen darf, und das mir keiner eine Ungültige INT Variable ind ie DB schreiben darf, habe ich folgendes entworfen:

Code:
#####BEGIN checken ob nur gültige Werte für Country angegeben wurden.

			include("$dbpath\openDb.inc.php");
			$sql = "select COUNT(ID) AS COUNTEDCOUNTRYIDS FROM country";
			$result=mysql_query($sql);
			while ($row=mysql_fetch_array($result)) 
			{
			$countedcountrys=$row["COUNTEDCOUNTRYIDS"];
			}
			
			for($count = 1; $count <= $countedcountrys; $count++)
   				{
   				$countrysarray=array("$count"=>$count);
    				}

			$regland=isset($countrysarray[$_POST["regland"]]) ? $_POST["regland"] : "1";

#####END Checken ob nur gültige Wert für Country angegeben wurden.

Ich wollte nun wissen, ob es legitim ist, die Werte die von einer Selectbox kommen, so zu überprüfen.

???

Grüße & Danke!

Yps
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.01.2005, 17:25  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

es is krass umstaendlich was du da machst. ausserdem holst du dir anfange die anzahl der eintraege in der db. damit wirst du wohl kaum was anfangen koennen...
__________________
Was ist validität?
fantast ist offline  
Alt 22.01.2005, 17:31  
Ypsillon
Gast
 
Beiträge: n/a
Standard

ne ne, also ich erklärs.

Ich hol mir zuerst die anzahl der IDs aus der DB, also z.b. 8, also weiss ich das die Zahl die in die DB darf zwischen 1 und 8 liegen darf, inklusive. Dieses Ergebnis schreibe ich dann in ein array.

und dann schaue ich mit dem hier:
Code:
$regland=isset($countrysarray[$_POST["regland"]]) ? $_POST["regland"] : "1";
...ob das was gepostet wurde von der Selectbox auch zwischen 1-8 liegt, also das was im Array steht, wenn nicht, also wenn z.b. 9 gesendet wurde, dann setzt er eine "1".


So dumm is das garnicht, wenn wenn ich das array statisch mache, also hart codiere und dann in der DB eine weitere Option für das Selectfeld eintrage, dann muss ich im Code auch was anpassen, weil das Array nciht aus der DB gefüllt wird. Mit meiner Variante weis das Array immer, wieviele Einträge in der DB vorhanden sind, sprich welche Zahlen gültig sind!
Bingo?

Yps
 
Alt 22.01.2005, 17:52  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard Re: POST Variablen auf Gültigkeit prüfen

ich erklaere dir mal deinen code. wir nehmen an, $_POST['regland'] ist 5 und es gibt 9 datensaetzte in der db:
PHP-Code:
<?php
# connect db
include("$dbpath\openDb.inc.php");

# anzahl der datensaetze auslesen, select (*) waere schneller
$sql "select COUNT(ID) AS COUNTEDCOUNTRYIDS FROM country";
$result=mysql_query($sql);

# die schleife is ueberfluessig, du wirst nur eine zeile zurueckbekommen, aber gut.
while ($row=mysql_fetch_array($result)) {
  
$countedcountrys=$row["COUNTEDCOUNTRYIDS"];
}
# $countedcountrys hat nach dem durchlaufen der schleife den wert 9

# auch hier die schleife wieder voellig ueberfluessig
for($count 1$count <= $countedcountrys$count++) {
  
# da $countedcountrys == 9 wird die folgende zeile neunmal ausgefuehrt
  # hier wird jedesmal ein array definiert, mit dem aktuellen wert sowohl als key als auch als value (sic !)
  
$countrysarray=array("$count"=>$count);
}
# $countrysarray ist nach dem durchlaufen der schleife ein array mit dem einzigen wertepaar ("9" => 9);

# hier jetzt das voellige chaos, du ueberpruefst, ob die zahl 5 ($_POST['regland']) im array gesetzt ist. kann natuerlich nicht sein.
# sprich meine legitime wahl wird durch eine 1 ersetzt
$regland=isset($countrysarray[$_POST["regland"]]) ? $_POST["regland"] : "1";
?>
ich verstehe was du machen willst, der entscheidene fehler liegt hier:
$countrysarray=array("$count"=>$count);

ausserdem sind die in der db vergebenen ids meistens nicht fortlaufend, dh wenn du dir nur die anzahl holen laesst kann es sein, dass die oberen ids rausfallen...

summa summarum: dein ansatz is kacke. nochmal ueberdenken.
__________________
Was ist validität?
fantast ist offline  
Alt 23.01.2005, 13:31  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

na sprache verschlagen ? *g
__________________
Was ist validität?
fantast ist offline  
Alt 24.01.2005, 11:22  
Ypsillon
Gast
 
Beiträge: n/a
Standard

*lach* nein Du hast recht - ich konnte am Fr nicht testen, da ich kein XAMPP auf dem rechner meiner Freundin hatte. Natürlich hast Du mit dem was Dusc hreibst recht, die Sache mit dem Cout ist mir am FR schon auf dem Weg nach Stuttgart gekommen. Ich werde es jetzt korrigieren udnd ann hier posten, ich bin doch kein PHP DEPP - FR war escht nicht mein Tag...

Bis nachher.

Yps
 
Alt 24.01.2005, 12:15  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Also, das Assoziativarray ist geblieben, der rest hat sich geändert:

Code:
                                                 include("$dbpath\openDb.inc.php");
			$sql = "select ID FROM body";
			$result=mysql_query($sql);
			while ($row=mysql_fetch_array($result)) 
			{
			$BodystyleId=$row["ID"];
			$Bodystylearray["$BodystyleId"]="$BodystyleId";
			}
				
			$bodystyle=isset($Bodystylearray[$_POST["bodystyle"]]) ? $_POST["bodystyle"] : "1";
Einfach, schlau und funktionell?!?
(Funktionalität kann ich bestätigen!)


Yps
 
Alt 24.01.2005, 12:26  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ypsillon
Einfach, schlau und funktionell?!?
Das fällt schwer:
Code:
$Bodystylearray["$BodystyleId"] = "$BodystyleId";
Wenn (den restlichen Code habe ich mir nicht angeguckt), dann so:
Code:
$Bodystylearray[$BodystyleId] = $BodystyleId;
Zitat:
(Funktionalität kann ich bestätigen!)
Die Langmut von PHP ist fast unendlich...
 
Alt 24.01.2005, 12:38  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Ja, die " sind im eifer mit reingekommen, ich hab sie jetzt rausgenommen, aber ansonsten ist das jetzt endlich gut so?
Yps
 
Alt 24.01.2005, 12:51  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ypsillon
Ja, die " sind im eifer mit reingekommen, ich hab sie jetzt rausgenommen,
Brav... <ggg>

Zitat:
aber ansonsten ist das jetzt endlich gut so?
Fast.
ersetze
Code:
         $BodystyleId=$row["ID"]; 
         $Bodystylearray[$BodystyleId]=$BodystyleId;
durch
Code:
         $Bodystylearray[$row["ID"]]=$row["ID"];
Sparte eine überflüssige Zuweisung.

Obwohl:
Code:
$Bodystylearray[$row["ID"]]=$row["ID"]
Ein bißchen sinnfrei sieht das schon aus, wenn der Index gleich dem Inhalt ist (Redundanz).
 
 


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
Übergeben von Variablen an in PHP eingebundenes Perl-Script shredder01 PHP Tipps 2008 3 04.04.2008 09:25
mehre variablen per post übersenden obi HTML, Usability und Barrierefreiheit 5 19.07.2007 23:03
POST Variablen vortäschen R4v3r PHP Tipps 2007 8 22.12.2006 16:51
Alle Variablen die mit POST übergeben wurden auflisten d-81 PHP Tipps 2006 3 12.10.2006 15:23
Variablen an include/require/readfile... per POST übergeben PHP Tipps 2006 1 09.02.2006 18:38
Variablen über Post senden FireFIghter PHP Tipps 2005-2 2 06.09.2005 20:37
eilig: alle mit POST übertragenen variablen auslesen PHP Tipps 2005-2 3 01.09.2005 15:52
Variablen werden per post nicht übergeben sinai PHP Tipps 2005-2 9 12.08.2005 10:04
5 gleiche Post Variablen auffangen Ypsillon PHP Tipps 2005 3 11.05.2005 11:25
[Erledigt] Post Variablen absichern PHP-Fortgeschrittene 10 20.04.2005 13:25
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
post variablen vorgaukeln PHP-Fortgeschrittene 4 11.01.2005 15:21
Variablen leeren PHP Tipps 2005 14 06.01.2005 18:19
Variablen via POST Skazi PHP Tipps 2004-2 10 06.11.2004 17:31
Funktion die in Post Variablen speichert? PHP Tipps 2004 15 05.07.2004 21:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
gültigkeit von variablen überprüfen php, php post werte auf validität prüfen, php prüfen ob post variable id, php gültige post variable, post übertragenen variable, php $_post auf richtigkeit prüfen, php gültigkeit der variable prüfen, php gültigkeit von post

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