abonnement Unibet Coolblue Bitvavo
pi_32916628
Bedoel die hier op het forum, maar daar is het vast hetzelfde :$
pi_32916998
quote:
Op donderdag 8 december 2005 13:22 schreef Darkomen het volgende:
Bedoel die hier op het forum, maar daar is het vast hetzelfde :$
1) Ofwel bedoel je de iconmanager, dus dat je GIF-afbeeldingen kunt uploaden en als vaste usericon kunt gebruiken. Voor zover ik weet kan die geen GIF-animaties resizen.
2) Ófwel bedoel je de webicons, die worden door de browser geresized naar 60x60 en zien er derhalve dus ook niet uit.
pi_32917375
Het laatste dus
pi_32921633
Luitjes..

1
2
3
4
5
6
7
8
9
10
11
      Tree[0]  = "1|0|Page 1|#";
      Tree[1]    = "2|1|Page 1.1|#";
      Tree[2]  = "3|1|Page 1.2|#";
      Tree[3]  = "4|3|Page 1.2.1|#";
      Tree[4]  = "5|1|Page 1.3|#";
      Tree[5]  = "6|2|Page 1.1.1|#";
      Tree[6]  = "7|6|Page 1.1.1.1|#";
      Tree[7]  = "8|6|Page 1.1.1.2|#";
      Tree[8]  = "9|1|Page 1.4|#";
      Tree[9]  = "10|9|Page 1.4.1|#";
      Tree[10] = "11|0|Page 2|#";


dit is wat ik wil crearen met een tree loper echter krijg ik het niet goed voor elkaar en krijg steeds 1|1 1|2 etc

vb

1
2
3
4
5
6
7
1|1|WINDOWS|C://WINDOWS
1|1|system32|C://WINDOWS/system32
1|1|config|C://WINDOWS/system32/config
1|1|systemprofile|C://WINDOWS/system32/config/systemprofile
1|1|Local Settings|C://WINDOWS/system32/config/systemprofile/Local Settings
1|1|Temp|C://WINDOWS/system32/config/systemprofile/Local Settings/Temp
1|2|Geschiedenis|C://WINDOWS/system32/config/systemprofile/Local Settings/Geschiedenis


zoals je ziet gaat het ergens goed fout, echter zie ik niet waar!?

de code
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
<?

error_reporting(E_ALL);

function scantree($start, $fDb = 0, $pathCount = 0)
{
//    global $fDb;
    
    $fDb++;
    
    $pathcount = 0;
    
    $dir = opendir($start);
    
    while (($file = readdir($dir)) != false)
    {
        if (is_dir($start . "/" . $file) && $file != "." && $file != "..")
        {
            $pathcount++;
            
            echo 'test[' . $fDb . '] = ' . $fDb + 1 . '|' . $pathcount . '|' . $file . '|' . $start . "/" . $file . CHR(13) . CHR(10);

            scantree($start . "/" . $file, $fDb, $pathCount);
            
        }
    }
}

$fDb = -1;

if (isSet($_GET['drive']) && substr($_GET['drive'], 1,1) == ":")
{
    scantree($_GET['drive'] . "/");// the tree looping can begin
}
else
{
    echo 'no ow no';
}


allemaal weer uit het hoofd, maar goed... iemand een suggestie!?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32922223
quote:
Op donderdag 8 december 2005 16:45 schreef Chandler het volgende:
Luitjes..
[ code verwijderd ]

dit is wat ik wil crearen met een tree loper echter krijg ik het niet goed voor elkaar en krijg steeds 1|1 1|2 etc

vb
[ code verwijderd ]

zoals je ziet gaat het ergens goed fout, echter zie ik niet waar!?

de code
[ code verwijderd ]

allemaal weer uit het hoofd, maar goed... iemand een suggestie!?
Regel 23. Je gebruikt de functie scantree in de functie scantree?
pi_32922752
dat kan toch, dat is juist nodig voor de diepgang
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32924446
quote:
Op donderdag 8 december 2005 17:30 schreef Chandler het volgende:
dat kan toch, dat is juist nodig voor de diepgang
Ik snap je voorbeeld niet dat het eerste getal telkens opgehoogd dient te worden snap ik (heb je eigenlijk niet eens nodig maar toch), maar wat doet het tweede getal?
  donderdag 8 december 2005 @ 18:58:50 #108
32768 DionysuZ
Respect my authority!
pi_32924763
wat lelijk dat hoofdlettergebruik ook :S $pathcount en $pathCount. Het werkt ZEER verwarrend. En zo geef je als je recursief scantree weer aanroept $pathCount en niet $pathcount, degene die opgehoogd wordt.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
  FOK!-Schrikkelbaas donderdag 8 december 2005 @ 19:26:40 #109
1972 Swetsenegger
Egocentrische Narcist
pi_32925447
Ik ben toch maar voor de xmlhttprequest gegaan .
En hij werkt. eigenlijk zelfs verdomd simpel

-edit- iets te voorbarig, ik krijg mijn parameters om daadwerkelijk te deleten niet mee .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(!empty($_GET['right'])){
   if(is_numeric($_GET['id']) && is_numeric($_GET['right'])){
       deleteLeaf($_GET['right'],$_GET['id']);
   }
}

function deleteLeaf($right,$id){
$query="DELETE FROM menu WHERE id=".$id." LIMIT 1";
mysql_query($query);
$query="UPDATE menu SET rgt=rgt-2 WHERE rgt>".$right;
mysql_query($query);
$query="UPDATE menu SET lft=lft-2 WHERE lft>".$right;
mysql_query($query);
header("location: ".$_SERVER['PHP_SELF']);
}

Voor de php'ers, dit is redelijk duidelijk

Nu het probleem. Aan dit menu zitten produkten gekoppeld. Wanneer iemand nu een menu-item delete, wil ik een waarschuwing geven indien er nog produkten gekoppeld zijn.
Dit werkt met een xmlhttprequest:

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
<script type="text/javascript">

var url = "checkProduct.php?id="; // The server-side script
var http = getHTTPObject();

function handleHttpResponse() {
    if (http.readyState == 4) {
    results = http.responseText;
        if(results!=0){
            if(confirm('Aan dit menu-item zijn produkten gekoppeld!\nIndien u dit menu-item verwijderd, moet u er rekening mee houden de produkten aan een ander menu-item te koppelen.\nMenu-item verwijderen?')){
                alert('verwijder');
            }
        }else{
            if(confirm('Weet u zeker dat u dit menu-item wilt verwijderen?')){
                alert('verwijderd')
            }
        }
    }
}

function checkProduct(id) {

    http.open("GET", url + escape(id), true);
    http.onreadystatechange = handleHttpResponse;
    http.send(null);
 }

function getHTTPObject() {

  var xmlhttp;

  /*@cc_on

  @if (@_jscript_version >= 5)

    try {

      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {

      try {

        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (E) {

        xmlhttp = false;

      }

    }

  @else

  xmlhttp = false;

  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    try {

      xmlhttp = new XMLHttpRequest();

    } catch (e) {

      xmlhttp = false;

    }

  }

  return xmlhttp;

}

</script>


en de link welke het hele spul in gang zet

1[<a class="admin2" href="#" onClick="checkProduct('.$row['id'].')">delete</a>]

[/code]

Ok, de de link roept de javascript functie checkProduct aan, welke via een xmlhttprequest het resultaat van checkProduct.php terugkrijgt (zonder refresh dus). Uiteraard is checkProduct.php niets anders dan een COUNT.

Bovenstaand werkt, maar uiteraard wil ik de alert('verwijderd') vervangen in een window.location="pagina.php?id="+id+"&right="+right;
De parameters id en right moet ik dus van checkProduct door geven aan handleHttpResponse. Maar dit

1
2
3
4
5
6
function checkProduct(id) {

    http.open("GET", url + escape(id), true);
    http.onreadystatechange = handleHttpResponse(id);
    http.send(null);
 }


zorgt ervoor dat ik uberhaupt niet meer in handleHttpResponse terecht kom
Mijn javascript kennis schiet hier te kort.

[ Bericht 63% gewijzigd door Swetsenegger op 08-12-2005 20:01:46 ]
pi_32926774
@chandler:
Zet eens haakje om $fDb + 1

Lang leve loose typed talen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  donderdag 8 december 2005 @ 20:27:44 #111
32768 DionysuZ
Respect my authority!
pi_32927025
quote:
Op donderdag 8 december 2005 20:19 schreef SuperRembo het volgende:
@chandler:
Zet eens haakje om $fDb + 1

Lang leve loose typed talen
hehehe het heeft door zijn simpliciteit natuurlijk ook veel voordelen.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_32927419
@swetsenegger:
quote:
http.onreadystatechange = handleHttpResponse;
Zorgt er voor dat http.onreadystatechange gelijk wordt aan de functie handleHttpResponse.
quote:
http.onreadystatechange = handleHttpResponse(id);
Zorgt er voor dat http.onreadystatechange gelijk wordt aan het resultaat van het uitvoeren van handleHttpResponse(id).

Dit kan je op verschillende manieren oplossen.
Met een closure:
1
2
3
4
5
6
7
8
9
function checkProduct(id) {
    http.open("GET", url + escape(id), true);
    http.onreadystatechange = function() {
       if (http.readyState == 4) {
          checkProductCallback(id);
       }
    }
    http.send(null);
}


Doordat de functie binnen de functie checkProduct wordt gedefinieerd, blijft de scope van checkProduct behouden. Daardoor is id binnen de onreadystatechange functie nog bekend op het moment dat die aangeroepen wordt.

Een andere oplossing is dat je niet alleen het aantal producten terug stuurt, maar ook de id.


Internet Explorer heeft trouwens een vervelende bug: het resultaat van de httprequest wordt gecached. Als de url van twee requests gelijk zijn, dan wordt geen cal naar de server gedaan, maar krijg je gewoon de eerder opgehaalde resultaten terug. Dit is gelukkig simpel te voorkomen door een random string aan de url toe te voegen.

Dit is trouwens allemaal clientside scripting, dus meer iets voor het javascript topic.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 8 december 2005 @ 20:40:38 #113
1972 Swetsenegger
Egocentrische Narcist
pi_32927420
Probleem opgelost.

1
2
3
4
5
6
function checkProduct(id) {
    id=id; //Dit maakt de var id global
    http.open("GET", url + escape(id), true);
    http.onreadystatechange = handleHttpResponse(id);
    http.send(null);
 } 
pi_32927465
Dit lijkt me geen handige oplossing
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 8 december 2005 @ 20:44:57 #115
1972 Swetsenegger
Egocentrische Narcist
pi_32927544
quote:
Op donderdag 8 december 2005 20:40 schreef SuperRembo het volgende:
@swetsenegger:
[..]

Zorgt er voor dat http.onreadystatechange gelijk wordt aan de functie handleHttpResponse.
[..]

Zorgt er voor dat http.onreadystatechange gelijk wordt aan het resultaat van het uitvoeren van handleHttpResponse(id).

Dit kan je op verschillende manieren oplossen.
Met een closure:
[ code verwijderd ]

Doordat de functie binnen de functie checkProduct wordt gedefinieerd, blijft de scope van checkProduct behouden. Daardoor is id binnen de onreadystatechange functie nog bekend op het moment dat die aangeroepen wordt.

Een andere oplossing is dat je niet alleen het aantal producten terug stuurt, maar ook de id.
Closure werkte ook, maar een aparte functie was even netter
quote:
Internet Explorer heeft trouwens een vervelende bug: het resultaat van de httprequest wordt gecached. Als de url van twee requests gelijk zijn, dan wordt geen cal naar de server gedaan, maar krijg je gewoon de eerder opgehaalde resultaten terug. Dit is gelukkig simpel te voorkomen door een random string aan de url toe te voegen.
Ah... dus wanneer ik delete.php?id=6 stuur en er voor kies NIET te deleten, kan hij de volgende keer abusievelijk zeggen dat er produkten aan 6 gekoppeld zitten wat niet het geval is? Cached hij in temp files?
quote:
Dit is trouwens allemaal clientside scripting, dus meer iets voor het javascript topic.
Klopt, maar het was gecombineerd door de xmlhttprequest. Ik heb 'm dus in beide topics gecrosspost
  donderdag 8 december 2005 @ 20:47:04 #116
37634 wobbel
Da WoBBeL King
pi_32927612
Hoe kijk of ik er wel écht een bestand wordt geupload bij een formulier met een file-field?

if($_FILES['Avatar']) is namelijk altijd positief, ook als ik geen enkel bestand invul.

Ik heb if($_FILES['Avatar']['tmp_name']) en name ook al gebruikt, maar dan kan ik bij het file-field ook wat random tekens invullen ipv een bestand, en dan zegt ie alsnog dat er wél een bestand is geupload.

Ik heb http://nl2.php.net/features.file-upload er al op nageslagen, maar het helpt me niet echt :s
  FOK!-Schrikkelbaas donderdag 8 december 2005 @ 20:48:16 #117
1972 Swetsenegger
Egocentrische Narcist
pi_32927655
quote:
Op donderdag 8 december 2005 20:42 schreef SuperRembo het volgende:
Dit lijkt me geen handige oplossing
wrom niet?

hij is trouwens wel net iets anders:
1
2
3
function checkProduct(rgt,menu) {
    id=menu; //var global maken
    right=rgt; //var global maken
  donderdag 8 december 2005 @ 20:49:11 #118
32768 DionysuZ
Respect my authority!
pi_32927685
if ($_FILES["Avatar"]["size"] > 0)
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
  donderdag 8 december 2005 @ 20:50:21 #119
37634 wobbel
Da WoBBeL King
pi_32927724
quote:
Op donderdag 8 december 2005 20:49 schreef DionysuZ het volgende:
if ($_FILES["Avatar"]["size"] > 0)
Dat vind ik zo'n kromme oplossing, maar kan het écht niet anders?
  FOK!-Schrikkelbaas donderdag 8 december 2005 @ 20:52:22 #120
1972 Swetsenegger
Egocentrische Narcist
pi_32927780
quote:
Op donderdag 8 december 2005 20:47 schreef wobbel het volgende:
Hoe kijk of ik er wel écht een bestand wordt geupload bij een formulier met een file-field?

if($_FILES['Avatar']) is namelijk altijd positief, ook als ik geen enkel bestand invul.

Ik heb if($_FILES['Avatar']['tmp_name']) en name ook al gebruikt, maar dan kan ik bij het file-field ook wat random tekens invullen ipv een bestand, en dan zegt ie alsnog dat er wél een bestand is geupload.

Ik heb http://nl2.php.net/features.file-upload er al op nageslagen, maar het helpt me niet echt :s
if($_FILES['avatar']['tmp_name']!='') om te checken of er een bestandsnaam is ingevuld
if(preg_match("/\.(jpg)$/i", $_FILES['avatar']['name'])) om te checken of de geuploade file een jpg is (uiteraard aan te passen voor gif, etc)
  donderdag 8 december 2005 @ 20:54:58 #121
37634 wobbel
Da WoBBeL King
pi_32927853
quote:
Op donderdag 8 december 2005 20:52 schreef Swetsenegger het volgende:

[..]

if($_FILES['avatar']['tmp_name']!='') om te checken of er een bestandsnaam is ingevuld
if(preg_match("/\.(jpg)$/i", $_FILES['avatar']['name'])) om te checken of de geuploade file een jpg is (uiteraard aan te passen voor gif, etc)
dan kan ik een PHP file ook wel de extensie .jpg geven, en met punten erin wordt het ook een probleem.
Gewoon $_FILES['Avatar']['type'] gebruiken, en zelfs dan kan het nog wel misgaan maar is de kans wel kleiner.
  donderdag 8 december 2005 @ 20:55:59 #122
32768 DionysuZ
Respect my authority!
pi_32927885
quote:
Op donderdag 8 december 2005 20:52 schreef Swetsenegger het volgende:

[..]

if($_FILES['avatar']['tmp_name']!='') om te checken of er een bestandsnaam is ingevuld
if(preg_match("/\.(jpg)$/i", $_FILES['avatar']['name'])) om te checken of de geuploade file een jpg is (uiteraard aan te passen voor gif, etc)
ik zou eerder $_FILES["avatar"]["type"] gebruiken om te checken of het een jpg is..
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
  donderdag 8 december 2005 @ 20:57:25 #123
32768 DionysuZ
Respect my authority!
pi_32927942
quote:
Op donderdag 8 december 2005 20:50 schreef wobbel het volgende:

[..]

Dat vind ik zo'n kromme oplossing, maar kan het écht niet anders?
http://nl2.php.net/features.file-upload
If no file is selected for upload in your form, PHP will return $_FILES['userfile']['size'] as 0, and $_FILES['userfile']['tmp_name'] as none.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_32928005
quote:
Op donderdag 8 december 2005 18:45 schreef JeRa het volgende:

[..]

Ik snap je voorbeeld niet dat het eerste getal telkens opgehoogd dient te worden snap ik (heb je eigenlijk niet eens nodig maar toch), maar wat doet het tweede getal?
Dat is voor de link van het vorige mapje

voorbeeld er staan 3 mappen in de root
1
2
3
1 windows
2 program files
3 documents and settings


dan is het ook handig dat de mappen die er onder zitten een goede beschrijving krijgen waar ze horen. Ik heb 2 mappen onder windows (en 1 submap) en 1 onder program files en 0 onder documents en settings in het volgende voorbeeld.

1
2
3
4
5
6
7
1|1| Windows
2|1| Windows\System
3|1| Windows\Temp
4|3| Windows\Temp\inst_all
5|1| Program files
6|5| Program files\Winzip
7|1| Documents and Settings


zie je de link?, zo moet ik dus een tree opbouwen echter lukt me dat niet met aangegeven voorbeeld alleen zie ik de fout niet
quote:
Op donderdag 8 december 2005 18:58 schreef DionysuZ het volgende:
wat lelijk dat hoofdlettergebruik ook :S $pathcount en $pathCount. Het werkt ZEER verwarrend. En zo geef je als je recursief scantree weer aanroept $pathCount en niet $pathcount, degene die opgehoogd wordt.
Je hebt inderdaad gelijk, zal eens kijken of de error daaruit komt
quote:
Op donderdag 8 december 2005 20:19 schreef SuperRembo het volgende:
@chandler:
Zet eens haakje om $fDb + 1
Ga ik ook doen
quote:
Lang leve loose typed talen
what do you mean?
quote:
Op donderdag 8 december 2005 20:27 schreef DionysuZ het volgende:
hehehe het heeft door zijn simpliciteit natuurlijk ook veel voordelen.
Voordelen alleen heb ik die nog niet gezien
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas donderdag 8 december 2005 @ 21:01:59 #125
1972 Swetsenegger
Egocentrische Narcist
pi_32928093
quote:
Op donderdag 8 december 2005 20:55 schreef DionysuZ het volgende:

[..]

ik zou eerder $_FILES["avatar"]["type"] gebruiken om te checken of het een jpg is..
Ja klopt, die check je vervolgens tegen je preg_match en indien dat niet klopt ban je sucker gelijk
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')