Portal > Foren > PHP > PHP-Programmierung > frage zu "falscher" get-variable
Antwort
 
Themen-Optionen
Alt 31.03.2008, 19:52 Nach oben    #21
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 449
Standard

Was genau meinst du ?
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.03.2008, 20:42 Nach oben    #22
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

Ich würde auch eine Zahl auf ihre Gültigkeit hin prüfen, wenn sich so zB umgehen lässt, dass man sofort Admin wird.
Kommt also auf die Anwendung drauf an.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!

Geändert von Jann Hendrik (31.03.2008 um 20:44 Uhr).
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.03.2008, 21:38 Nach oben    #23
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Du musst dir nur immer die beiden Wertebereiche anschauen, also die Menge der erwünschten Zahlen und die der möglicherweise übergebenen.

Folgende Werte kommen z.B. ein einer Prüfung mit is_numeric() durch und sehen in einem MySQL-Feld vom Typ INT dann so aus:

Code:
  5 |   5
1e3 | 100
 -5 |  -5 oder 0, falls UNSIGNED -> Warnung
0xa |   0 -> Warnung
Die ersten beiden Werte sind also korrekt, der dritte, negative Wert kommt nur richtig an, wenn in der Spalte auch negative Werte erlaubt sind. Der hexadezimale Wert 0xa (also dezimal 10) kommt als 0 an, da MySQL von links nach rechts beim ersten Zeichen, das ihm nicht in den Kram passt abbricht (hier also beim x). Bei beiden „Zurechtrückungen“ gibt es eine Warnung.

Und natürlich spielt die Größe der Zahl eine Rolle. Wenn du in ein Feld vom Typ TINYINT (UNSIGNED) eine 256 eingibst, wird eine 255 gespeichert, wieder incl. Warnung. Ein TINYINT (ohne USIGNED-Attribut), das du mit -200 fütterst, wird dir eine -128 speichern.

Schau dir also immer die beiden Wertebereiche an und les vielleicht ein bisschen dazu in den jeweiligen Handbüchern (dass 1e1 oder gar 0xF45aB bei is_numeric() durchkommen – darauf kommt man vielleicht nicht unbedingt von alleine) und dann guckst du halt, ob die potentiell übergebenen Werte auch wirklich reinpassen und, falls nicht entscheidest du eben, ob sie zurechtgebogen oder abgblockt werden sollen.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.04.2008, 17:57 Nach oben    #24
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard

hui.... wie waere es denn wenn ich sowas machen wuerde?

Zitat:
$userid = (int) $_POST['uid'];
wuerde das gehen und sicherstellen, dass nur "richtige" zahlen uebergeben werden koennen?
__________________
gruss,
richy
richy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.04.2008, 18:33 Nach oben    #25
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

Nun, die Autoren des Buches sind der Meinung, dass man nicht versuchen sollte Daten valide zu machen, sondern zu prüfen ob sie valide sind.

Wenn Sie nicht valide sind darf ruhig ein Abbruch erfolgen!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.04.2008, 19:51 Nach oben    #26
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Zitat:
Zitat von richy Beitrag anzeigen
hui.... wie waere es denn wenn ich sowas machen wuerde?

Zitat:
$userid = (int) $_POST['uid'];
wuerde das gehen und sicherstellen, dass nur "richtige" zahlen uebergeben werden koennen?
RTFM

http://php.net/manual/en/language.ty...ing.conversion
http://dev.mysql.com/doc/refman/5.1/...-overview.html

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu Aufklapp-Menü mit CSS Hobbyuser HTML, XML und CSS 8 12.08.2006 18:41
[Smarty] Variable in variable aus Konfigurationsdatei umwandeln? thrawn PEAR, PECL und Frameworks 9 20.07.2006 11:52
Get und Post aufruf in Servlet js-mueller Allgemeine Java-Programmierung 2 28.04.2006 20:36
Probleme mit Variable in SQL Anweisung Doggi Datenbanken 10 15.12.2005 14:04
Variablennamen mit Variable. Creativ PHP-Programmierung 9 30.11.2005 08:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:08 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44