Flashhilfe.de - Flash Community

Denkfehler bei GUID-Validierung?

 


AntwortenRegistrieren Seite1  

akins#1
Benutzerbild von akins
Beiträge: 43
Wohnort: Berlin, Capistrano Beach
Registriert: May 2007

24.11.2007, 17:07

Hi,

ich hab hier igendwie einen Denkfehler drinnen und weiss nicht wo:

PHP:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?
function validateHEX($value) {
  if(
preg_match('/[a-fA-F0-9]/'$VALUE)) {
    return 
FALSE;
  } else {
    return 
TRUE;
  }
}
function 
valid_length($VALUE$length) {
 
$VALUE str_replace(" """$VALUE);
  if (
strlen($VALUE) < $length){
    return 
TRUE;
  } else {
    return 
FALSE;
  }
}
function 
validateGUID($guid$delimeter) {
  if (
$guid != "") {
    if(
$delimeter != "") {
     
$guid_dig = Array();
     
$guid_dig explode($delimeter$guid);
      if (
count($guid_dig) == 5) {
       
$l_primary    valid_length($guid_dig[0], "8");
       
$h_primary    validateHEX($guid_dig[0]);
       
$l_secondary  valid_length($guid_dig[1], "4");
       
$h_secondary  validateHEX($guid_dig[1]);
       
$l_tertiary   valid_length($guid_dig[2], "4");
       
$h_tertiary   validateHEX($guid_dig[2]);
       
$l_quaternary valid_length($guid_dig[3], "4");
       
$h_quaternary validateHEX($guid_dig[3]);
       
$l_quinary    valid_length($guid_dig[4], "12");
       
$h_quinary    validateHEX($guid_dig[4]);
      }
      if (
$l_primary && $l_secondary && $l_tertiary && $l_quaternary && $l_quinary) {
       
$length TRUE;
      } else {
       
$length FALSE;
      }
      if (
$h_primary && $h_secondary && $h_tertiary && $h_quaternary && $h_quinary) {
       
$hex TRUE;
      } else {
       
$hex FALSE;
      }
    } else {
     
$guid_dig = Array();
     
$guid_dig[0] = $guid;
      if (
count($guid_dig) == 1) {
       
$l_primary    valid_length($guid_dig[0], "32");
       
$h_primary    validateHEX($guid_dig[0]);
      }
      if (
$l_primary) {
       
$length TRUE;
      } else {
       
$length FALSE;
      }
      if (
$h_primary) {
       
$hex TRUE;
      } else {
       
$hex FALSE;
      }
    }
  } else {
       
$length FALSE;
       
$hex FALSE;
  }
  if (
$length && $hex) {
    return 
TRUE;
  } else {
    return 
FALSE;
  }
}

//Aufruf:
if(isset($_GET['edit'])) {
 
$val_EID validateGUID($_GET['edit'], "");
  if (
$val_EID) {
   
$_SESSION["edit_item"] = $EID;
  }
}
?>


Aus irgendeinem Grund kommt immer FALSE zurück :/
Was läuft schief? Hab ich was übersehen?

lg

Edit:
Was is'n so ne GUID nu scho wieder?? ;D
entweder:
8384DC6D–3DCD–327E–88BF–E26B8045BC90
oder:
8384DC6D3DCD327E88BFE26B8045BC90
oder:
8384dc6d–3dcd–327e–88bf–e26b8045bc90
oder:
8384dc6d3dcd327e88bfe26b8045bc90

Also immer Länge (ohne Digits) 32, im Hexa-Format, kann mit 8-4-4-4-12 durch Digits aufgeteilt werden - alle anderen Schreibweisen sind keine validen GUIDs.




Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
Geändert von akins am 25.11.07 um 00:52 Uhr
akins#2
Benutzerbild von akins
Beiträge: 43
Wohnort: Berlin, Capistrano Beach
Registriert: May 2007

Themenautor/in

24.11.2007, 19:37

aaach… alles mist hier :D

Hab's verrissen. Und zwar hier:

PHP:
1
2
3
4
5
6
7
<?
// nicht
if (strlen($VALUE) < $length){ 
// sondern
if (strlen($VALUE) == $length){
?>


Eine Frage bleibt dennoch:
Bei der Funktion validateHEX scheint noch ein Fehler in meinem preg_match zu sein. Allerdings komme ich mit der Dokumentation auf http://de.php.net/preg_match nicht wirklich klar.
Wei es ist anscheinend egal, was ich da eintippe:
'/[a-fA-F0-9]/'
'/[abcdefABCDEF0123456789]/'
keine Ahnung was man sonst noch so reinschreiben koennte.

Wenn ich eine offensichtlich ungültige GUID habe, z. B.
8384dc6d–tele–tubb–iela–nd6b8045bc90, wird dennoch TRUE zurückgegeben :/

Was muss da rein? Und: hat jemand von euch eine URI, wo man etwas mehr Information bekommt, welche Syntaxmöglichkeiten es bei preg_match gibt?

lg

Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
burnZ#3
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

24.11.2007, 19:38

ääääh....wasn das für ne krasse funktion?! nur für n format zu prüfen? xD

8384DC6D–3DCD–327E–88BF–E26B8045BC90

könnte man mitn regex so lösen
PHP:
1
2
3
4
5
6
7
<?
function validateGUID$guid 
{
    return @
preg_match'/^[0-9A-Z]{8}\-[0-9A-Z]{4}\-[0-9A-Z]{4}\-[0-9A-Z]{4}\-[0-9A-Z]{12}$/'$guid );
}
?>
Geändert von burnZ am 25.11.07 um 00:26 Uhr
akins#4
Benutzerbild von akins
Beiträge: 43
Wohnort: Berlin, Capistrano Beach
Registriert: May 2007

Themenautor/in

25.11.2007, 00:04

mmh...

ich mach es eben wie microsoft:
die illusion zu verbreiten, alles sei kinderleicht und darin, alles aufzublasen und die anderen im glauben zu lassen, datenmenge sei kein problem, darin war ich auch schon immer gut.
dank microsoft kommen dann so randexistenzen bei heraus, die ein vollfareben-bitmap per mail verschicken wollen. dank mir muss man sich durch das 400-fache des normalerweise benötigten codes <s>quälen</s> lesen. :D

vielen dank burnz :D
hast du dennoch eine idee, wo man aufschlussreicheres material über die regex(-en) herbekommt? n listing oda so?

lg

Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
burnZ#5
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

25.11.2007, 00:26

meinst syntax modifier usw?! sind perl gleich hier:
http://www.php.net/manual/de/reference.pcre.pattern.modifiers.php
http://www.php.net/manual/de/reference.pcre.pattern.syntax.php

akins#6
Benutzerbild von akins
Beiträge: 43
Wohnort: Berlin, Capistrano Beach
Registriert: May 2007

Themenautor/in

25.11.2007, 00:50

yupp yupp yo"!

vielen dank :)
wuensch dir ein schoenes wochenende.

Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com
Ist nicht alles sinnvoll, was ich so schreibe. Ich schreibe aber gern. Und viel.
Am liebsten in ActionScript. Ab und zu in meinen Blog*.
*http://neuro-designer.blogspot.com

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de