abonnement Unibet Coolblue Bitvavo
pi_41760978
quote:
Op woensdag 13 september 2006 08:49 schreef JeRa het volgende:

[..]

Die moet je dus eerst zelf zien te bepalen bijvoorbeeld door een COUNT(*)-statement uit te voeren op je tabel.
Aha.
pi_41761108
1$num_rows = SELECT id(*) as count, id, bericht, datum FROM gastenboek;


en wat doe ik nu weer fout?
pi_41761310
SELECT COUNT(id) as count,

pi_41761577
Misschien dat ik hier een beetje onduidelijk ben.

gastenboek is mijn tabel. id, bericht, naam zijn kolommen.

Die wil ik dus tellen, en wel op de manier zodat die uiteindelijk in een variabele passen.
Met de vorige aanwijzing kwam ik dus ook niets verder
pi_41761869
a) mysql query maken
b) query uitvoeren
c) data uit de query halen en echo'en

de query lijkt me:
SELECHT COUNT(id) as count FROM gastenboek
pi_41761889
wel de H uit SELECT
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 09:35:59 #107
1972 Swetsenegger
Egocentrische Narcist
pi_41761925
Hoi, ik zoek een SIMPELE template parser.
Dus geen smarty met 600 opties die nooit gebruikt worden
pi_41762600
quote:
Op woensdag 13 september 2006 09:35 schreef Swetsenegger het volgende:
Hoi, ik zoek een SIMPELE template parser.
Dus geen smarty met 600 opties die nooit gebruikt worden
De meest simpele template parser schrijf je natuurlijk gewoon zelf is geen werk, beetje variabelen bijhouden en wat preg_replaces uitvoeren.

Maar het meerendeel van die 600 opties van Smarty omvat caching en compilation naar PHP-code wat er dus voor zorgt dat je een behoorlijk snel templatesysteem krijgt. Als je met die 600 opties de modifiers bedoeld, die zijn helemaal modulair en kun je zo weghalen door de bestandjes uit de submap te verwijderen.

Waarschijnlijk is het veel makkelijker om met Smarty te beginnen en alles wat je niet nodig hebt te verwijderen

edit: verborgen grondlijn van dit verhaal is natuurlijk ook dat ik geen simpeler templatesysteem dan Smarty ken
pi_41762730
quote:
Op woensdag 13 september 2006 09:34 schreef the_disheaver het volgende:
a) mysql query maken
b) query uitvoeren
c) data uit de query halen en echo'en

de query lijkt me:
SELECHT COUNT(id) as count FROM gastenboek
Ja oke, nu ben ik er dus wel achter hoe ik de count-functie moet uitvoeren. Maar nu voel ik me zo n00b, want hoe moet ik daar nu weer een query van maken?
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 10:36:17 #110
1972 Swetsenegger
Egocentrische Narcist
pi_41763367
quote:
Op woensdag 13 september 2006 10:04 schreef JeRa het volgende:

edit: verborgen grondlijn van dit verhaal is natuurlijk ook dat ik geen simpeler templatesysteem dan Smarty ken


De verborgen grondlijn van mijn verhaal is dat ik eigenlijk niet echt de toegevoegde waarde van een template parser zie omdat ik ze

a. nooit gebruikt heb
b. dus niet goed weet hoe ze toe te passen
c. ik geen zin heb me eerst dagen in template parser opties te verdiepen vooprdat ik er uberhaupt wat mee kan

Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
pi_41763486
quote:
Op woensdag 13 september 2006 10:10 schreef woutabest het volgende:

[..]

Ja oke, nu ben ik er dus wel achter hoe ik de count-functie moet uitvoeren. Maar nu voel ik me zo n00b, want hoe moet ik daar nu weer een query van maken? :@
1
2
3
4
5
6
7
8
<?php
$sql
= "SELECT COUNT(id) as count FROM gastenboek";
$result = mysql_query($sql);

while(
$value = mysql_fetch_assoc($result)) {
    
$name = $wor[id];
  }
?>


zo ongeveer. Ik ben zelf ook nog maar een beginnen :s)
pi_41763762
1
2
3
4
5
6
7
8
<?php
$sql = "SELECT COUNT(id) as count FROM gastenboek";
$result = mysql_query($sql);

while($value = mysql_fetch_assoc($result)) {
    $name = $wor[id];
  }
?>


die $wor[id] moet $value['id'] worden denk ik.


Ik heb een vraagje betreffende een menu en submenu systeem. Ik heb een tabel met menuitems, en een tabel met submenuitems, aan elkaar gekoppeld dmv een kolom MenuID in de tabel Submenuitems.

De gegevens haal ik op via een query met een JOIN on Submenuitems.MenuID = Menuitems.ID. In principe werkt dit prima, alleen krijg ik resultaten op deze manier binnen:

menu1 submenu1
menu1 submenu2
menu1 submenu3
menu2 submenu1
menu3 submenu1
menu3 submenu2

wat ik het liefst zou zien is iets in de vorm van;
menu1
submenu1
submenu2
submenu3
menu2
submenu1
menu3
submenu1
submenu2

ik weet dat dit kan door een query in een while loop van de menuitems te zetten, en daarvoor dus de JOIN achterwege te laten, maar ik vind dat een beetje een 'vieze' en onoverzichtelijke oplossing.

In principe is met wat voorwaardes natuurlijk de JOIN prima te gebruiken, door bijv. menuitems te registreren in een array en te checken met in_array en aan de hand van dat resultaat het hoofdmenuitem wel of niet te echoeen.

Heeft iemand suggesties of snippets van nette overzichtelijke code die hiervoor te gebruiken is?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41763804
quote:
Op woensdag 13 september 2006 10:40 schreef super-muffin het volgende:

[..]
[ code verwijderd ]

zo ongeveer. Ik ben zelf ook nog maar een beginnen :s)
Oke,ben ik weer een stukje wijzer. Maar waar haal je die laatste nu weer vandaan? :P

1    $name = $wor[id]; 
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 10:50:49 #114
1972 Swetsenegger
Egocentrische Narcist
pi_41763814
1
2
3
4
5
6
<?php
$sql
= "SELECT COUNT(id) as aantal FROM gastenboek";
$result = mysql_query($sql);
$value = mysql_fetch_assoc($result);
echo
$value['aantal'];
?>
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 10:51:44 #115
1972 Swetsenegger
Egocentrische Narcist
pi_41763842
quote:
Op woensdag 13 september 2006 10:49 schreef Desdinova het volgende:

[ code verwijderd ]

die $wor[id] moet $value['id'] worden denk ik.


Ik heb een vraagje betreffende een menu en submenu systeem. Ik heb een tabel met menuitems, en een tabel met submenuitems, aan elkaar gekoppeld dmv een kolom MenuID in de tabel Submenuitems.

De gegevens haal ik op via een query met een JOIN on Submenuitems.MenuID = Menuitems.ID. In principe werkt dit prima, alleen krijg ik resultaten op deze manier binnen:

menu1 submenu1
menu1 submenu2
menu1 submenu3
menu2 submenu1
menu3 submenu1
menu3 submenu2

wat ik het liefst zou zien is iets in de vorm van;
menu1
submenu1
submenu2
submenu3
menu2
submenu1
menu3
submenu1
submenu2

ik weet dat dit kan door een query in een while loop van de menuitems te zetten, en daarvoor dus de JOIN achterwege te laten, maar ik vind dat een beetje een 'vieze' en onoverzichtelijke oplossing.

In principe is met wat voorwaardes natuurlijk de JOIN prima te gebruiken, door bijv. menuitems te registreren in een array en te checken met in_array en aan de hand van dat resultaat het hoofdmenuitem wel of niet te echoeen.

Heeft iemand suggesties of snippets van nette overzichtelijke code die hiervoor te gebruiken is?
volgens mij bedoel je een menu zoals dit?
pi_41764040
quote:
Op woensdag 13 september 2006 10:51 schreef Swetsenegger het volgende:

[..]

volgens mij bedoel je een menu zoals dit?
in principe wel ja alleen is 2 niveaus voor mij diep genoeg.
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41764143
quote:
Op woensdag 13 september 2006 10:50 schreef Swetsenegger het volgende:

[ code verwijderd ]
Tot nu toe heb ik het goede aantal op het scherm gekregen.

Maar nu doettie bijde ifjes weer vervelend:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if($new_pos_prev < 0)
 {
  $link_prev = "";
 }
else
 {
  $link_prev="<a href=gastenboek.php?pos=" . $new_pos_prev . "><< vorige</a>";
 } 
if($new_pos_next >= $value['aantal']); 
 {
  $link_next = "";
 }
else
 {
  $link_next = "<a href=gastenboek.php?pos=" . $new_pos_next . ">volgende >></a>";
 }


Bijde tweede else geeft hij een foutmelding! En ik zie niet wat er nou fout aan is:
Parse error: syntax error, unexpected T_ELSE in c:domainswouterrrr.nlwwwrootgastenboek.php on line 88

stomme php
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 11:06:33 #118
1972 Swetsenegger
Egocentrische Narcist
pi_41764235
quote:
Op woensdag 13 september 2006 10:59 schreef Desdinova het volgende:

[..]

in principe wel ja alleen is 2 niveaus voor mij diep genoeg.
Gaat het je om de php of om de vormgeving?
Want het uitschuiven gebeurt gewoon met een unnumbered list en een stukje javascript.

De diepte maakt voor de vormgeving niet uit.
pi_41764346
quote:
Op woensdag 13 september 2006 11:06 schreef Swetsenegger het volgende:

[..]

Gaat het je om de php of om de vormgeving?
Want het uitschuiven gebeurt gewoon met een unnumbered list en een stukje javascript.

De diepte maakt voor de vormgeving niet uit.
nee het gaat om de PHP code.

kijk ik heb nu bijvoorbeeld dit:

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
$query = "
   SELECT 
      Menuitems.ID as MenuID,
      Menuitems.Name as MenuName,
      Menuitems.Type as MenuType,
      Menuitems.Msgs as MenuMsgs,
      Menuitems.Ranking as MenuRanking,
      Menuitems.Active as MenuActive,
      
      Submenuitems.ID as SubmenuID,
      Submenuitems.MenuID as SubmenuMenuID,
      Submenuitems.Name as SubmenuName,
      Submenuitems.Type as SubmenuType,
      Submenuitems.Msgs as SubmenuMsgs,
      Submenuitems.Ranking as SubmenuRanking,
      Submenuitems.Active as SubmenuActive
   FROM 
      Menuitems
   JOIN
      Submenuitems
   ON
      Submenuitems.MenuID = Menuitems.ID
   WHERE 
      Menuitems.UserID = '".$uID."'
   AND
      Submenuitems.UserID = '".$uID."'
   ORDER BY 
      Menuitems.Ranking ASC,
      Submenuitems.Ranking ASC
";
$result = mysql_query($query);
   regquery($query,mysql_error());

while ($row = mysql_fetch_object($result)){
   
   $menuitemtablerow = "
      <tr class="menuitemindex" ".$rollover." ".$rollout.">
         <td class="menuitemindex_type"><img src="images/icons/type_fotoboek.gif"></td>
         <td class="menuitemindex_menuitem">".$row->MenuName."</td>
         <td class="menuitemindex_aantalberichten">".$row->MenuMsgs."</td>
         <td class="menuitemindex_open">".$open."</td>
         <td class="menuitemindex_bewerk">".$bewerk."</td>
         <td class="menuitemindex_verwijder">".$verwijder."</td>
         <td class="menuitemindex_status">".$status."</td>
         <td class="menuitemindex_volgorde">".$volgorde."</td>
      </tr>
   ";
   
   $submenuitemtablerow = "
      <tr class="menuitemsubindex" ".$rollover." ".$rollout.">
         <td class="menuitemindex_subtype"><img src="images/icons/type_fotoboek.gif"></td>
         <td class="menuitemindex_submenuitem">".$row->SubmenuName."</td>
         <td class="menuitemindex_subaantalberichten">".$row->SubmenuMsgs."</td>
         <td class="menuitemindex_subopen">".$opensub."</td>
         <td class="menuitemindex_subbewerk">".$bewerksub."</td>
         <td class="menuitemindex_subverwijder">".$verwijdersub."</td>
         <td class="menuitemindex_substatus">".$statussub."</td>
         <td class="menuitemindex_subvolgorde">".$volgordesub."</td>
      </tr>
   ";

   // verwerking in daadwerkelijke gegevensopslag
   $menuitems[$menuitemtablerow] .= $submenuitemtablerow;


Voor het eerst dat ik het op deze manier gebruik, maar het werkt best aardig en is erg overzichtelijk.

het oproepen doe ik gewoon met

1
2
3
foreach ($menuitems as $key => $value){
   $content .= $key.$value;
}
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 11:20:13 #120
1972 Swetsenegger
Egocentrische Narcist
pi_41764636
quote:
Op woensdag 13 september 2006 11:10 schreef Desdinova het volgende:

[..]

nee het gaat om de PHP code.
Kijk dan eens hier naar
pi_41764791
quote:
Op dinsdag 12 september 2006 15:54 schreef Darkomen het volgende:
ik zou zeggen zet even print_r($_POST); boven aan je script om te zien of alle waardes wel verzonden worden
Zet ff enctype="multipart/form-data" in je form element

En redirecten is niet zo moeilijk.
<?php
header("Location: http://www.php.net/"); /* Stuur de browser naar de PHP website */
exit; /* Zorg dat de code hieronder niet wordt uitgevoerd */
?>
had iemand nog een ideetje voor mij
pi_41765370
quote:
Op woensdag 13 september 2006 11:03 schreef woutabest het volgende:

[..]

Tot nu toe heb ik het goede aantal op het scherm gekregen.

Maar nu doettie bijde ifjes weer vervelend:
[ code verwijderd ]

Bijde tweede else geeft hij een foutmelding! En ik zie niet wat er nou fout aan is:
Parse error: syntax error, unexpected T_ELSE in c:domainswouterrrr.nlwwwrootgastenboek.php on line 88

stomme php
Wat ik ook doe, hij blijft zeggen dat die else fout is!
pi_41765776
quote:
Op woensdag 13 september 2006 11:43 schreef woutabest het volgende:

[..]

Wat ik ook doe, hij blijft zeggen dat die else fout is!
Na je tweede if staat een ;
Waarschijnlijk ligt daar het probleem, want een unexpected T_ELSE is meestal het teveel hebben van een { } of een ;
Ik ben best bereid om toe te geven dat ik niet altijd gelijk heb, maar ik heb het nooit bij het verkeerde eind
pi_41766177
quote:
Op woensdag 13 september 2006 11:25 schreef Darkomen het volgende:

[..]

had iemand nog een ideetje voor mij
Je bedoelt een ideetje voor het .htpasswd probleem?
Het ziet er goed uit, unix htpasswd maakt volgens mij ook gewoon gebruik van crypt.
$htpasswd_text .= "$user:".crypt($password],CRYPT_STD_DES)."";
alleen je $password staat tussen verkeerde haken, misschien een syntax foutje?
En volgens mij maak je op deze manier ook geen nieuwe regels aan als je een gebruiker toevoegt, dus op het eind nog een rn.
1$htpasswd_text .= "$user:".crypt($password)."rn";

Zoiets denk ik?

En staat je htpasswd file wel op de goede locatie?

Edit: Hmz... Hij verwijdert automatisch de slashes van de r n ?
Ik ben best bereid om toe te geven dat ik niet altijd gelijk heb, maar ik heb het nooit bij het verkeerde eind
pi_41766664
Crap gaat net mn server dood, dan maar later proberen.
Maar of dat nu de fout is... Ik laat het weten
pi_41766712
quote:
Op woensdag 13 september 2006 11:57 schreef Giel83 het volgende:

[..]

Na je tweede if staat een ;
Waarschijnlijk ligt daar het probleem, want een unexpected T_ELSE is meestal het teveel hebben van een { } of een ;
pfftt...

Bedankt iedereen, hij doet het nu!
pi_41767094
quote:
Op woensdag 13 september 2006 09:35 schreef Swetsenegger het volgende:
Hoi, ik zoek een SIMPELE template parser.
Dus geen smarty met 600 opties die nooit gebruikt worden
XTemplate. Simpel, maar niet geheel featureloos. Precies wat je nodig hebt
  woensdag 13 september 2006 @ 12:50:09 #128
62215 qu63
..de tijd drinkt..
pi_41767155
quote:
Op woensdag 13 september 2006 10:36 schreef Swetsenegger het volgende:

[..]



De verborgen grondlijn van mijn verhaal is dat ik eigenlijk niet echt de toegevoegde waarde van een template parser zie omdat ik ze

a. nooit gebruikt heb
b. dus niet goed weet hoe ze toe te passen
c. ik geen zin heb me eerst dagen in template parser opties te verdiepen vooprdat ik er uberhaupt wat mee kan

Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
ik geloof dat Roonaan ook een template-engina hed geschreven ooit..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_41769604
Wat is eigenlijk het voordeel van een template parser?
Ik ben best bereid om toe te geven dat ik niet altijd gelijk heb, maar ik heb het nooit bij het verkeerde eind
pi_41769729
Het gescheiden houden van je PHP codes en HTML
Makkelijk wisselen tussen layouts, user defined layouts.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 14:25:45 #131
1972 Swetsenegger
Egocentrische Narcist
pi_41769941
Vooral het wisselen tussen layouts spreekt me aan.
HTML en PHP (grotendeels) gescheiden houden kan ook door een beetje strak te coden.

Xtemplate gaan we eens mee stoeien
pi_41770097
quote:
Op woensdag 13 september 2006 14:25 schreef Swetsenegger het volgende:
Vooral het wisselen tussen layouts spreekt me aan.
Ik gebruik Smarty vooral om het feit dat ik dan echt púre PHP kan schrijven en me bezig kan houden met de logica achter m'n code, en de mogelijkheid om stukken template in andere templates te includen
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 14:34:44 #133
1972 Swetsenegger
Egocentrische Narcist
pi_41770191
quote:
Op woensdag 13 september 2006 14:31 schreef JeRa het volgende:

[..]

Ik gebruik Smarty vooral om het feit dat ik dan echt púre PHP kan schrijven en me bezig kan houden met de logica achter m'n code, en de mogelijkheid om stukken template in andere templates te includen
Het zal vast, zoals gezegd heb ik nog geen flauw idee hoe je een template parser lekker toepast.

Aangezien ik vanaf vrijdag 2 weken vrij ben voordat ik mijn nieuwe job moet beginnen en ik in de tussentijd alleen maar ( ) een kinderkamer af moet maken hou ik wel wat php tijd over
pi_41770553
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 14:51:08 #135
1972 Swetsenegger
Egocentrische Narcist
pi_41770600
quote:
Op woensdag 13 september 2006 14:49 schreef Darkomen het volgende:
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
Wat is daar de lol van
Het zelf maken is toch juist leuk.
pi_41770855
Kwam zo goed uit voor die site.
Voordeel dat ik dus geen sessiemanagment en template parser hoef te bouwen.
Waarom zou ik een apart user systeem bouwen terwijl er toch al phpbb als forum gebruikt word?
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 15:10:15 #137
1972 Swetsenegger
Egocentrische Narcist
pi_41771105
quote:
Op woensdag 13 september 2006 15:00 schreef Darkomen het volgende:
Kwam zo goed uit voor die site.
Voordeel dat ik dus geen sessiemanagment en template parser hoef te bouwen.
Waarom zou ik een apart user systeem bouwen terwijl er toch al phpbb als forum gebruikt word?
Om er wat van te leren .
pi_41771192
quote:
Op woensdag 13 september 2006 14:34 schreef Swetsenegger het volgende:

[..]

Het zal vast, zoals gezegd heb ik nog geen flauw idee hoe je een template parser lekker toepast.
Als je het eenmaal onder de knie hebt zul je niet snel terug gaan
XTemplate is een makkelijk systeem om mee te beginnen en om later wellicht mee over te stappen naar Smarty. Probeer de voorbeeldscripts eens uit en het zal snel duidelijker worden. Ik gebruik nog steeds een (wel zwaar aangepaste) versie voor mijn CMS, omdat het erg snel en compact is .
pi_41771221
Oww maar dat is geen probleem, een user en sessie management heb ik al eens gebouwt Dat is de eerste versie van de site vol dubbel overbodig werk dus
Een template systeem heb ik dan nog wel niet gebouwt, maar ach kan niet alles te gelijk leren.
Er moet nu eerst een goede werkende site komen
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 15:25:52 #140
1972 Swetsenegger
Egocentrische Narcist
pi_41771471
quote:
Op woensdag 13 september 2006 15:15 schreef Darkomen het volgende:
Oww maar dat is geen probleem, een user en sessie management heb ik al eens gebouwt Dat is de eerste versie van de site vol dubbel overbodig werk dus
Een template systeem heb ik dan nog wel niet gebouwt, maar ach kan niet alles te gelijk leren.
Er moet nu eerst een goede werkende site komen
Maakt ook niet uit hoor.
pi_41772643
Hm, het klinkt in ieder geval wel als de moeite waard om er naar te kijken
Ik ben best bereid om toe te geven dat ik niet altijd gelijk heb, maar ik heb het nooit bij het verkeerde eind
pi_41772864
quote:
Op woensdag 13 september 2006 12:50 schreef qu63 het volgende:

[..]

ik geloof dat Roonaan ook een template-engina hed geschreven ooit..
Een paar keer. Tegenwoordig gebruik ik die nauwelijks meer.

-r-
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 16:22:22 #143
1972 Swetsenegger
Egocentrische Narcist
pi_41773147
quote:
Op woensdag 13 september 2006 16:12 schreef Roönaän het volgende:

[..]

Een paar keer. Tegenwoordig gebruik ik die nauwelijks meer.

-r-
Je gebruikt uberhaupt geen template engine of je eigen template engine niet meer?
kwam 'm tegen op phpfreakz
pi_41773428
quote:
Op woensdag 13 september 2006 16:22 schreef Swetsenegger het volgende:

[..]

Je gebruikt uberhaupt geen template engine of je eigen template engine niet meer?
kwam 'm tegen op phpfreakz
Beide :-)

Die engine zit nog wel in een paar sites (hobbit oa), maar tegenwoordig gebruik ik gewoon templates, zonder engine.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 17:27:46 #145
1972 Swetsenegger
Egocentrische Narcist
pi_41775264
templates zonder engine. Leg eens uit? Je moet die templates toch parsen?
pi_41775523
quote:
Op woensdag 13 september 2006 17:27 schreef Swetsenegger het volgende:
templates zonder engine. Leg eens uit? Je moet die templates toch parsen?
PHP is de allersnelste parser die je hebt. Voor de rest kan je templates en skinkeuze eenvoudig aansturen via een directory settng of bijvoorbeeld stream wrappers.
Het messaging systeem heeft bijvoorbeeld include 'theme://content.inbox.panel.php'; De streamwrapper vogelt vervolgens wel uit welke filesystem file daar bij hoort.
  woensdag 13 september 2006 @ 17:51:12 #147
12880 CraZaay
prettig gestoord
pi_41775979
quote:
Op woensdag 13 september 2006 10:36 schreef Swetsenegger het volgende:

Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
Misschien kun je ook eens kijken naar een MVC-framework voor PHP, zoals bijvoorbeeld Code Igniter. Gaat PHP'en en het scheiden van logica en presentatie toch nog ergens op lijken
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 19:10:40 #148
1972 Swetsenegger
Egocentrische Narcist
pi_41778424
quote:
Op woensdag 13 september 2006 17:36 schreef Roönaän het volgende:

[..]

PHP is de allersnelste parser die je hebt. Voor de rest kan je templates en skinkeuze eenvoudig aansturen via een directory settng of bijvoorbeeld stream wrappers.
Het messaging systeem heeft bijvoorbeeld include 'theme://content.inbox.panel.php'; De streamwrapper vogelt vervolgens wel uit welke filesystem file daar bij hoort.
kan je een eenvoudig voorbeeld geven in code?
pi_41779579
In principe heb je een class:

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
class ThemeStream {
  var
$theme_path;
  var
$default_theme_path;

  var
$vardata;
  var
$position;

  function
stream_open($path, $mode, $options, &$opened_path) {
    if(!
preg_match('/^r[bt]?$/', $mode)) {
      
trigger_error('Libraries can be opened for reading only', E_USER_NOTICE);
      return
false;
    }

    
$this-&gt;default_theme_path = DIR_DEFAULT_THEME.'/'.substr($path,8);
    if(
defined('USER_THEME')) {
      
$this-&gt;theme_path = DIR_THEMES.'/'.USER_THEME.'/'.substr($path,8);
    } else {
      
$this-&gt;theme_path = $this-&gt;default_theme_path;
    }

    if(
false && defined('SESSION_USER') && SESSION_USER == 11753) {
      echo
'<p>'.$this-&gt;theme_path;
      echo
'<br/>'.$this-&gt;default_theme_path;
      echo
'</p>';
    }

    if(
is_file($this-&gt;theme_path)) {
      
$this-&gt;vardata = file_get_contents($this-&gt;theme_path);
    } elseif(
is_file($this-&gt;default_theme_path)) {
      
$this-&gt;vardata = file_get_contents($this-&gt;default_theme_path);
    } else {
      
$this-&gt;vardata = 'Theme-file not found('.$this-&gt;default_theme_path.')';
    }

    
$this-&gt;position = 0;

    return
true;
  }

  function
stream_stat() {
    return array(
'size' =&gt; strlen($this-&gt;vardata));
  }

  function
stream_read($count) {
    
$ret = substr($this-&gt;vardata, $this-&gt;position, $count);
    
$this-&gt;position += strlen($ret);
    return
$ret;
  }

  function
stream_write($data) {
    
$left = substr($this-&gt;vardata, 0, $this-&gt;position);
    
$right = substr($this-&gt;vardata, $this-&gt;position + strlen($data));
    
$this-&gt;vardata = $left . $data . $right;
    
$this-&gt;position += strlen($data);
    return
strlen($data);
  }

  function
stream_tell() {
    return
$this-&gt;position;
  }

  function
stream_eof() {
    return
$this-&gt;position &gt;= strlen($this-&gt;vardata);
  }

  function
stream_seek($offset, $whence) {
    switch (
$whence) {
      case
SEEK_SET:
      if (
$offset &lt; strlen($this-&gt;vardata) && $offset &gt;= 0) {
          
$this-&gt;position = $offset;
          return
true;
        } else {
          return
false;
        }
        break;

      case
SEEK_CUR:
        if (
$offset &gt;= 0) {
          
$this-&gt;position += $offset;
          return
true;
        } else {
          return
false;
        }
        break;

      case
SEEK_END:
        if (
strlen($this-&gt;vardata) + $offset &gt;= 0) {
          
$this-&gt;position = strlen($this-&gt;vardata) + $offset;
          return
true;
        } else {
          return
false;
        }
        break;

      default:
        return
false;
    }
  }
}
?>


Die kan je met stream_wrapper_register verbinden met theme://

1
2
3
4
5
6
7
<?php
php
stream_wrapper_register
("theme", "ThemeStream")
   or die(
"Failed to register theme protocol");

}
?>


Dit bovenstaande doe je in een aparte file, lets say "streamwrapper.php";

Vervolgens pak je een directory structuur:
Hierin heb je voor de verschillende skins/themes, 2 template files.

1
2
3
4
5
6
7
/var/www/templates
              /default/page.normal.php
              /default/content.article.php
              /wml/page.normal.php
              /wml/content.article.php
              /pda/page.normal.php
              /pda/content.article.php


Nu heb je een article.php die wat content uitleest uit een db, dit in een article-layout past. De article layout doet zijn ding, en roept vervolgens de website template aan met de headers/footer/menu, etc, je kent het wel.

In principe ziet article.php er zo uit:
1
2
3
4
5
6
<?php
php
  
include 'config.php';
  
$article = 'tekst uit de database';
  include
'theme://content.article.php';
?>


En de template als volgt:
1
2
3
4
5
6
7
<?php
php
  ob_start
();
  echo
'<div id="article">'.$article.'</div>';;
  
$content = ob_get_clean();
  include
'theme://page.normal.php';
?>


En door het consequente gebruik van theme:// hoef je je nergens meer om directories zorgen te maken, dat doet de streamwrapper voor je.

Je config.php bevat vervolgens de code om aan te geven in welke layout/directory de templates moeten worden gezocht:

1
2
3
4
5
6
7
8
9
10
<?php
php
  define
('DIR_THEMES', '/var/www/templates');
  
define('DIR_DEFAULT_THEME', '/var/www/templates/default');
  if(
$_SESSION['skin'] == 'pda') {
    
define('USER_THEME', 'pda');
  } else {
    
define('USER_THEME', 'default');
  }
?>


Dit laatste is relatief eenvoudig aan je user management en user preferences te verbinden.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 20:01:12 #150
1972 Swetsenegger
Egocentrische Narcist
pi_41780246
quote:
Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
In principe heb je een class:
[ code verwijderd ]

Die kan je met stream_wrapper_register verbinden met theme://
[ code verwijderd ]

Dit bovenstaande doe je in een aparte file, lets say "streamwrapper.php";

Vervolgens pak je een directory structuur:
Hierin heb je voor de verschillende skins/themes, 2 template files.
[ code verwijderd ]

Nu heb je een article.php die wat content uitleest uit een db, dit in een article-layout past. De article layout doet zijn ding, en roept vervolgens de website template aan met de headers/footer/menu, etc, je kent het wel.

In principe ziet article.php er zo uit:
[ code verwijderd ]

En de template als volgt:
[ code verwijderd ]

En door het consequente gebruik van theme:// hoef je je nergens meer om directories zorgen te maken, dat doet de streamwrapper voor je.

Je config.php bevat vervolgens de code om aan te geven in welke layout/directory de templates moeten worden gezocht:
[ code verwijderd ]

Dit laatste is relatief eenvoudig aan je user management en user preferences te verbinden.
Heel interessant, bedankt.
Volgende week ga ik alles eens goed bestuderen
pi_41780675
quote:
Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
Dit kopiëert vast makkelijker voor Swets, door de forumbugs
http://www.roonaan.nl/read,nl,15,4,0.html

Interessant artikel btw, ik ga me er ook eens in verdiepen als ik weer wat tijd heb
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 20:19:41 #152
1972 Swetsenegger
Egocentrische Narcist
pi_41780897
quote:
Op woensdag 13 september 2006 20:13 schreef Nevermind het volgende:

[..]

Dit kopiëert vast makkelijker voor Swets, door de forumbugs
http://www.roonaan.nl/read,nl,15,4,0.html

Interessant artikel btw, ik ga me er ook eens in verdiepen als ik weer wat tijd heb
Ook wat meer uitleg en randinformatie
pi_41781112
quote:
Op woensdag 13 september 2006 20:13 schreef Nevermind het volgende:

[..]

Dit kopiëert vast makkelijker voor Swets, door de forumbugs
http://www.roonaan.nl/read,nl,15,4,0.html

Interessant artikel btw, ik ga me er ook eens in verdiepen als ik weer wat tijd heb
Die heb ik vanmiddag geschreven nav dit topic
pi_41781580
quote:
Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
[...]
Maar heel veel meer dan een fancy include is dit toch niet, of zie ik dat verkeerd?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_41781793
quote:
Op woensdag 13 september 2006 20:39 schreef SuperRembo het volgende:
Maar heel veel meer dan een fancy include is dit toch niet, of zie ik dat verkeerd?
klopt, maar het werkt als een zonnestraal
pi_41783073
quote:
Op woensdag 13 september 2006 20:45 schreef Roönaän het volgende:

[..]

klopt, maar het werkt als een zonnestraal
Maar waarom de keuze om de templates in PHP te schrijven terwijl zoiets in een Smarty-template imho veel gemakkelijker kan? De voordelen zijn:
- afgezonderde scope voor je template
- template errors zijn beter af te vangen (itt de vage PHP errors die je af en toe krijgt bij het vergeten van een haakje ergens)
- na compileren wordt een zeer sterk in elkaar gedrukte PHP-code gegenereerd en opgeslagen, die eventueel na uitvoering gecached kan worden

Mogelijk nadeel:
- een kleine overhead (die wellicht ongedaan wordt gemaakt door caching)

pi_41789421
quote:
Op woensdag 13 september 2006 14:49 schreef Darkomen het volgende:
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
Das toch dat forum, dat best wel op firefox lijkt? Te populair door mond op mond reclame, terwijl er betere alternatieven zijn?

En wil je hem toch gebruiken, gebruik eens een orginele template!

tot zo ver mijn offtopic bijdrage...
pi_41791589
quote:
Op woensdag 13 september 2006 21:17 schreef JeRa het volgende:
Maar waarom de keuze om de templates in PHP te schrijven terwijl zoiets in een Smarty-template imho veel gemakkelijker kan? De voordelen zijn:
- afgezonderde scope voor je template
- template errors zijn beter af te vangen (itt de vage PHP errors die je af en toe krijgt bij het vergeten van een haakje ergens)
- na compileren wordt een zeer sterk in elkaar gedrukte PHP-code gegenereerd en opgeslagen, die eventueel na uitvoering gecached kan worden
Mogelijk nadeel:
- een kleine overhead (die wellicht ongedaan wordt gemaakt door caching)
- caching system an sich is al overhead
- in elkaar gedrukte php code boeit rerlatief weinig. Belangrijker argument zou kunnen zijn dat je in php5 smarty gecompiled hebt als library. (toch?). Daarnaast zouden beide stukken code meer profiteren van de aanwezigheid van een bytecode cache dan van het wel of niet in elkaar drukken van wat code.
- qua scoping heb je gelijk als je met meer man aan een project werkt en daadwerkelijk een code-person hebt en een template-person. Voor hoeveel mensen in dit topic geldt dat?
  donderdag 14 september 2006 @ 08:11:04 #159
12880 CraZaay
prettig gestoord
pi_41792121
quote:
Op donderdag 14 september 2006 00:50 schreef the_disheaver het volgende:

[..]

Das toch dat forum, dat best wel op firefox lijkt?
Erm, nee? PhpBB ziet er al eeuwen hetzelfde uit, volgens mij al sinds voor het bestaan van Firefox.
pi_41792932
quote:
Op donderdag 14 september 2006 00:50 schreef the_disheaver het volgende:

[..]

Das toch dat forum, dat best wel op firefox lijkt? Te populair door mond op mond reclame, terwijl er betere alternatieven zijn?

En wil je hem toch gebruiken, gebruik eens een orginele template!

tot zo ver mijn offtopic bijdrage...
eerst verder lezen, dan zeiken.
pi_41794405
quote:
Op donderdag 14 september 2006 06:09 schreef Roönaän het volgende:

[..]

- caching system an sich is al overhead
Dan mis je het punt van caching, dat is namelijk overhead toevoegen om de uiteindelijke parse- of serveertijd te verlágen je spaart je processor door te cachen en dus geheugen (=snel) te gebruiken (harde schijf, RAM, etc) en dat is zeker sneller dan een script laden, alle benodigde libraries laden en vervolgens de hele boel parsen en outputten.
quote:
- in elkaar gedrukte php code boeit rerlatief weinig. Belangrijker argument zou kunnen zijn dat je in php5 smarty gecompiled hebt als library. (toch?). Daarnaast zouden beide stukken code meer profiteren van de aanwezigheid van een bytecode cache dan van het wel of niet in elkaar drukken van wat code.
Ik weet niets van een library ala Smarty in PHP5. Zou wel vreemd zijn, aangezien in PHP de libraries meestal C++ zijn en dus niet i.t.t. Java in de eigen taal alles/veel gedefinieerd heeft. Maar mijn punt was dus dat je bovenop je normále (in PHP geschreven) templates al dus een lichte performancewinst krijgt door die templates
quote:
- qua scoping heb je gelijk als je met meer man aan een project werkt en daadwerkelijk een code-person hebt en een template-person. Voor hoeveel mensen in dit topic geldt dat?
Het gaat niet over dit topic, het gaat erom waarom je voor een dergelijk templatesysteem kiest één van de meest geprezen eigenschappen van zo'n systeem is dat je je code en templates gescheiden kunt houden, dus waarom niet gebruik maken van een systeem dat inherent is aan dat principe?
pi_41827277
quote:
Op woensdag 13 september 2006 12:13 schreef Giel83 het volgende:

[..]

Je bedoelt een ideetje voor het .htpasswd probleem?
Het ziet er goed uit, unix htpasswd maakt volgens mij ook gewoon gebruik van crypt.
$htpasswd_text .= "$user:".crypt($password],CRYPT_STD_DES)."";
alleen je $password staat tussen verkeerde haken, misschien een syntax foutje?
En volgens mij maak je op deze manier ook geen nieuwe regels aan als je een gebruiker toevoegt, dus op het eind nog een rn.
[ code verwijderd ]

Zoiets denk ik?

En staat je htpasswd file wel op de goede locatie?

Edit: Hmz... Hij verwijdert automatisch de slashes van de r n ?
Dat was het, tnx
pi_41833114
ik heb een raar probleempje met een switch.. ala
1
2
3
4
5
switch (true){
   case in_array("trigger1",$triggers):
//doe dit
   case in_array("trigger2",$triggers):
//doe dat


nou wil ik dus zeg maar dat hij voor elke waarde zijn actie uitvoert. dus als case 1 true is, moet hij die uitvoeren. en als case2 true is, moet hij die uitvoeren. is case1 en case2 allebei true, moet hij ze allebei uitvoeren. maar het lijkt nu alsof hij altijd case1 uitvoert? het zal wel een foutje zijn in de code..
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41833511
quote:
Op donderdag 14 september 2006 10:11 schreef JeRa het volgende:
Dan mis je het punt van caching, dat is namelijk overhead toevoegen om de uiteindelijke parse- of serveertijd te verlágen je spaart je processor door te cachen en dus geheugen (=snel) te gebruiken (harde schijf, RAM, etc) en dat is zeker sneller dan een script laden, alle benodigde libraries laden en vervolgens de hele boel parsen en outputten.
Ja duh. Maar smarty cached niet in het geheugen toch? Die parsed je template, maakt er een fancy php-script van en voert die uit. Of overzie ik iets.
quote:
Ik weet niets van een library ala Smarty in PHP5. Zou wel vreemd zijn, aangezien in PHP de libraries meestal C++ zijn en dus niet i.t.t. Java in de eigen taal alles/veel gedefinieerd heeft.
[quote]
Er staat me vaag bij dat er van smarty een c versie zou zijn gemaakt oid. Maar niet echt concreet hoe/wat/waar/wie/waarom verder.
[quote]
Maar mijn punt was dus dat je bovenop je normále (in PHP geschreven) templates al dus een lichte performancewinst krijgt door die templates
Maar díe caching valt nog steeds in het niet met het installeren van zend optimizer bijv. Kan je je tijd beter daaraan besteden. Mijn vraag blijft echter staan: in hoeverre is de smarty cache iets anders dan een geoptimaliseerde php file die elke run geparsed moet worden?
quote:
Het gaat niet over dit topic, het gaat erom waarom je voor een dergelijk templatesysteem kiest één van de meest geprezen eigenschappen van zo'n systeem is dat je je code en templates gescheiden kunt houden, dus waarom niet gebruik maken van een systeem dat inherent is aan dat principe?
Mja. Op een gegeven moment heeft ook iemand geprezen dat je objecten moest gebruiken in php, waardoor massa's scriptkids zonder na te denken mysql_fetch_object gingen gebruiken.
Tuurlijk is code/templates gescheiden een ideale opzet. Echter verschilt het van project tot project of je voor ideaal gaat, of dat je ook werkbaarheid, onderhoudbaarheid en development snelheid.
Zeker als je in je eentje zit te ontwikkelen voor een eigen siteje, is het een totaal ander verhaal met een productie omgeving met meerdere ontwikkelaars etc.
pi_41838634
quote:
Op vrijdag 15 september 2006 13:33 schreef Roönaän het volgende:

[..]

Ja duh. Maar smarty cached niet in het geheugen toch? Die parsed je template, maakt er een fancy php-script van en voert die uit. Of overzie ik iets.
[..]

Maar díe caching valt nog steeds in het niet met het installeren van zend optimizer bijv. Kan je je tijd beter daaraan besteden. Mijn vraag blijft echter staan: in hoeverre is de smarty cache iets anders dan een geoptimaliseerde php file die elke run geparsed moet worden?
Het heeft best wel zin om je te verdiepen in een dergelijk templatesysteem voordat je erover gaat discussiëren want Smarty voert weliswaar geen caching uit in het geheugen maar voert weldegelijk caching uit in de vorm van de gecompileerde templates (dus ná het parsen door PHP) opslaan op disk en kan ze gebruiken zodra de condities daarvoor gunstig zijn.

Daar bovenop kun je natuurlijk ook nog een optimizer pakken die de PHP-files van Smarty optimaliseert, ze compileert naar bytecode en ze direct in de Zend engine injecteert. Maar vaak zijn die optimizers te algemeen om iets als templates goed aan te pakken, daarom heeft Smarty die features aan boord
  vrijdag 15 september 2006 @ 18:33:44 #166
85514 ralfie
!Yvan eht nioj
pi_41840999
quote:
Op vrijdag 15 september 2006 13:16 schreef Desdinova het volgende:
ik heb een raar probleempje met een switch.. ala
[ code verwijderd ]

nou wil ik dus zeg maar dat hij voor elke waarde zijn actie uitvoert. dus als case 1 true is, moet hij die uitvoeren. en als case2 true is, moet hij die uitvoeren. is case1 en case2 allebei true, moet hij ze allebei uitvoeren. maar het lijkt nu alsof hij altijd case1 uitvoert? het zal wel een foutje zijn in de code..
Switch zijn alleen voor "of...of...of" constructies, geen "of...en of..." Daarvoor zul je gewoon ifjes en else ifjes voor moeten gebruiken

verder ben je waarschijnlijk break vergeten bij iedere case?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
switch(x) {
case
1:
echo
'bla';
break;
case
2:
echo
'hai';
break;
case
3:
echo
'drie';
}
?>
Zodra een case gematched is wordt de hele mik daaronder gewoon uitgevoerd, zonder naar de andere cases te kijken. Er wordt er altijd maar max 1 gematched

[ Bericht 5% gewijzigd door ralfie op 15-09-2006 19:34:22 (jaja, het moest \'switch\' zijn :\')) ]
pi_41842483
quote:
Op vrijdag 15 september 2006 18:33 schreef ralfie het volgende:

[..]

Selects zijn alleen voor "of...of...of" constructies, geen "of...en of..." Daarvoor zul je gewoon ifjes en else ifjes voor moeten gebruiken

verder ben je waarschijnlijk break vergeten bij iedere case?
[ code verwijderd ]

Zodra een case gematched is wordt de hele mik daaronder gewoon uitgevoerd, zonder naar de andere cases te kijken. Er wordt er altijd maar max 1 gematched
Bedoel je niet 'switch'? 'Select (case)' komt uit de tijd van (Quick/Visual)Basic en heeft in andere talen een compléét andere betekenis
  vrijdag 15 september 2006 @ 19:36:30 #168
85514 ralfie
!Yvan eht nioj
pi_41843188
Ja, daar heb ik altijd problemen mee uren aan het debuggen om erachter te komen dat het niet select maar switch is. Daarom zweer ik bij sintax highlighting
pi_41846821
quote:
Op vrijdag 15 september 2006 18:33 schreef ralfie het volgende:

[..]

Switch zijn alleen voor "of...of...of" constructies, geen "of...en of..." Daarvoor zul je gewoon ifjes en else ifjes voor moeten gebruiken

verder ben je waarschijnlijk break vergeten bij iedere case?
[ code verwijderd ]

Zodra een case gematched is wordt de hele mik daaronder gewoon uitgevoerd, zonder naar de andere cases te kijken. Er wordt er altijd maar max 1 gematched
hmm ik had die break dus expres weggelaten zodat hij door zou gaan met de switch. dan worden het ifjes.

primitief hoor
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41847416
quote:
Op vrijdag 15 september 2006 18:33 schreef ralfie het volgende:

[..]

Switch zijn alleen voor "of...of...of" constructies, geen "of...en of..."
1
2
3
4
5
6
7
8
9
10
11
12
<?php
switch ($x) {
    case
'a':
    case
'b':
        echo
'$x is a of b';
        break;
    case
'c':
    case
'd':
        echo
'$x is c of d';
        break;
}
?>
  vrijdag 15 september 2006 @ 22:07:20 #171
85514 ralfie
!Yvan eht nioj
pi_41847434
quote:
Op vrijdag 15 september 2006 22:06 schreef Light het volgende:

[..]
[ code verwijderd ]
dat is of of...of of
pi_41858053
quote:
Op vrijdag 15 september 2006 22:07 schreef ralfie het volgende:

[..]

dat is of of...of of
maar dat maakt niet uit.. het punt is dat hij ophoudt met de switch na de break
dus als er iets zou zijn waardoor hij dus gewoon verder blijft gaan met checken op overeenkomsten zou alles goed gaan
As a rule, I never touch anything more sophisticated and delicate than myself.
  zondag 17 september 2006 @ 12:40:11 #173
62215 qu63
..de tijd drinkt..
pi_41884564
is het mogelijk dat als script A wordt geopend, deze een soort 'ping' stuurd naar script B, waardoor script B uitgevoerd wordt(aan de hand van een aantal voorwaarden natuurlijk)?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_41885403
quote:
Op zondag 17 september 2006 12:40 schreef qu63 het volgende:
is het mogelijk dat als script A wordt geopend, deze een soort 'ping' stuurd naar script B, waardoor script B uitgevoerd wordt(aan de hand van een aantal voorwaarden natuurlijk)?
Bedoel je dat script A en script B niet op dezelfde server staan of wat?
  zondag 17 september 2006 @ 13:13:24 #175
62215 qu63
..de tijd drinkt..
pi_41885794
quote:
Op zondag 17 september 2006 13:00 schreef JeRa het volgende:

[..]

Bedoel je dat script A en script B niet op dezelfde server staan of wat?
het moet een soort alternatief voor een cronjob zijn zeg maar. ik wil dus dat script B kijkt hoe laat is het is bijvoorbeeld en dan een soort update uitvoerd..

duidelijk
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_41886532
quote:
Op zondag 17 september 2006 13:13 schreef qu63 het volgende:

[..]

het moet een soort alternatief voor een cronjob zijn zeg maar. ik wil dus dat script B kijkt hoe laat is het is bijvoorbeeld en dan een soort update uitvoerd..

duidelijk
Tja, je kunt bij de aanroep van script A er natuurlijk voor zorgen dat script B wordt uitgevoerd door middel van een exec(), maar dat is bij lange na niet hetzelfde als een cronjob
  FOK!-Schrikkelbaas zondag 17 september 2006 @ 13:46:11 #177
1972 Swetsenegger
Egocentrische Narcist
pi_41887086
Sowieso is een cronjob maar zelden nodig
pi_41887563
quote:
Op zondag 17 september 2006 13:46 schreef Swetsenegger het volgende:
Sowieso is een cronjob maar zelden nodig
De dingen die je normaal gesproken in een cronjob zou zetten kun je heel hackish ook in je scripts verwerken zodat bij één op de zoveel aanroepen op je website zo'n 'cronjob' wordt gestart. Maar dat vind ik erg lelijk in vergelijking met een nette cronjob
  zondag 17 september 2006 @ 14:39:59 #179
62215 qu63
..de tijd drinkt..
pi_41888906
quote:
Op zondag 17 september 2006 13:33 schreef JeRa het volgende:

[..]

Tja, je kunt bij de aanroep van script A er natuurlijk voor zorgen dat script B wordt uitgevoerd door middel van een exec(), maar dat is bij lange na niet hetzelfde als een cronjob
exec() werkt toch alleen lokaal?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_41889219
quote:
Op zondag 17 september 2006 14:39 schreef qu63 het volgende:

[..]

exec() werkt toch alleen lokaal?
Een cronjob ook, maar ik vroeg je zojuist of de scripts op dezelfde server stonden maar je antwoordde niet

Je kunt het in dat geval doen met een stream wrapper. Zoiets roept een remote scriptje aan:

1$result = file_get_contents('http://www.domein.nl/pad/naar/script.php');
  zondag 17 september 2006 @ 16:59:18 #181
62215 qu63
..de tijd drinkt..
pi_41893022
quote:
Op zondag 17 september 2006 14:50 schreef JeRa het volgende:

[..]

Een cronjob ook, maar ik vroeg je zojuist of de scripts op dezelfde server stonden maar je antwoordde niet

Je kunt het in dat geval doen met een stream wrapper. Zoiets roept een remote scriptje aan:


[ code verwijderd ]
en dan wordt http://www.domein.nl/pad/naar/script.php dus uitgevoerd..

zoiets moet ik hebben idd
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  FOK!-Schrikkelbaas zondag 17 september 2006 @ 17:39:14 #182
1972 Swetsenegger
Egocentrische Narcist
pi_41894261
quote:
Op zondag 17 september 2006 13:57 schreef JeRa het volgende:

[..]

De dingen die je normaal gesproken in een cronjob zou zetten kun je heel hackish ook in je scripts verwerken zodat bij één op de zoveel aanroepen op je website zo'n 'cronjob' wordt gestart. Maar dat vind ik erg lelijk in vergelijking met een nette cronjob
Ik bedoelde meer dat mensen heel vaak een cronjob gebruiken om een scipt om 12 uur 's nachts uit te voeren, terwijl een vaste tijd voor de uitvoer van het script helemaal niet nodig is.

Voorbeeldje, ik had een tijdlang een cron die bestellingen die niet bevestigd zijn uit de database verwijderde. Het doel is natuurlijk duidelijk, namelijk dat de admin alleen bevestigde bestellingen ziet.

Maar.... het is dus helemaal niet van belang dat die bestellingen elke 24 uur gewist worden. Bestellingen die niet binnen 24 uur zijn bevestigd moeten alleen weg zijn als de admin inlogt. Dus in plaats van een cron kan je simpelweg bij de inlog procedure checken op bevestigingen.
pi_41896245
Het ligt er natuurlijk aan wat die cronjob moet doen. Die bevestigingen zijn zo verwijderd, maar als je iets moet uitvoeren waar weet-ik-wat voor uitgevoerd moet worden (intensief werk), dan is het altijd wel verstandig om deze los van de scripts die je gebruikers gebruiken te laten draaien.
pi_41918777
Ik heb een veld die true of false kan zijn (1 / 0). Is het mogelijk om in 1 query te zorgen dat het veld verspringt van waarde? Dus als het veld 0 is, dat ik een query uitvoer die de waarde 1 maakt, zonder dat ik zelf eerst hoef te checken wat de waarde is en de query daar op aan pas?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41918859
UPDATE table SET veld = 1 - veld WHERE record_id = 1;

-r-
pi_41918870
quote:
Op maandag 18 september 2006 13:53 schreef Desdinova het volgende:
Ik heb een veld die true of false kan zijn (1 / 0). Is het mogelijk om in 1 query te zorgen dat het veld verspringt van waarde? Dus als het veld 0 is, dat ik een query uitvoer die de waarde 1 maakt, zonder dat ik zelf eerst hoef te checken wat de waarde is en de query daar op aan pas?
1UPDATE tabel SET value = 1 - value


edit: spuit veul
pi_41918902
ik pomp al sinds vorig jaar mijn postaantal van fok door naar een database
maar sinds de update van fok krijg mijn script geen profiel pagina meer terug maar een Error #2 met als melding Functie momenteel niet beschikbaar

ik heb mij laten vertellen in het algemene dugs na de update topic dat dit zou liggen aan de cookies die ik niet verstuur.
ik heb vervolgens dus maar firefox geinstalleerd inclusief extensie om de headers te bekijken (zodat ik de headers en de cookies kan zien)
echter als ik dit overneem in mijn script werkt het nog niet...
iemand een idee welke headers en cookie variabelen moeten worden verstuurd en hoe ik dat moet doen
mijn script ziet er nu zo uit (headers heb ik weggelaten)
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
<?php
php
include("../includes/mysql.inc");
$dbHost = 'localhost';
$dbPass = '*******';
$dbUser = '********';
$dbName = '*******';

$lines = file('http://forum.fok.nl/user/profile/77135');
$regex = '/(d+) (gemiddeld (d+) per dag)/ism';
$i=50;
$con = connectDB($dbHost,$dbUser,$dbPass,$dbName);
$query1 = RunQuery("SELECT `ID` FROM `posts` ORDER BY 'ID' DESC");
$query1 = mysql_fetch_array($query1);
$ID=$query1[0];
$ID=$ID+1;
while(
$i&lt;300)
{
preg_match_all($regex,$lines[$i],$needle);
  
$needle = split(' ',$needle[0][0]);
  if(
$needle[0] != '' && is_numeric($needle[0]))
  {
    
$query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')");
    
CloseConDB($con);
    exit;
  }
$i++;
}
?>


dit werkte dus tot na de update
iemand die me verder zou kunnen helpen?

dit zijn de headers die ik door krijg via een extensie in FF
quote:
HTTP/1.1 200 OK
Date: Mon, 18 Sep 2006 11:57:05 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-16
X-Powered-By: Replique/v0.3
Set-Cookie: sessid=be4bc33819c5cf161ca8037acb72b520; expires=Sun, 17 Dec 2006 11:57:05 GMT; path=/; domain=.fok.nl
Set-Cookie: user=0; expires=Sun, 17 Dec 2006 11:57:05 GMT; path=/; domain=.fok.nl
Content-Length: 7508
Connection: close
Content-Type: text/html
pi_41918930
@mschol

Je moet de cookies als volgt doorsturen:

Cookie: user=0; sessid=...

pi_41919296
quote:
Op maandag 18 september 2006 13:56 schreef Roönaän het volgende:
UPDATE table SET veld = 1 - veld WHERE record_id = 1;

-r-
dankuzeer
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41920176
quote:
Op maandag 18 september 2006 13:59 schreef JeRa het volgende:
@mschol

Je moet de cookies als volgt doorsturen:

Cookie: user=0; sessid=...

dus dan krijg je in php iets als dit?
1
2
3
<?php
header
("Cookie: user=0; sessid=19cdc7eb0366db98d6ce7483bf6f8b59");
?>


want ik neem aandat je perse een session id wilt hebben

--
pi_41920196
quote:
Op maandag 18 september 2006 14:38 schreef mschol het volgende:

[..]

dus dan krijg je in php iets als dit?
[ code verwijderd ]

want ik neem aandat je perse een session id wilt hebben
Dat klopt
pi_41921332
quote:
Op maandag 18 september 2006 14:38 schreef mschol het volgende:

[..]

dus dan krijg je in php iets als dit?
[ code verwijderd ]

want ik neem aandat je perse een session id wilt hebben

--
Waar zou ik moeten zoeken als ik wil leren hoe ik dit naar een andere sessie doorstuur?
OF inlog via php op een andere website?

pi_41921905
Ik heb een fileupload functie die op zich prima lijkt te werken, echter komen de verkleinde foto's er heel pixelerig uit :( weet iemand waar dat aan ligt?


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
function upload($_FILES){
   ini_set('memory_limit', '30m');
   ini_set('post_max_size', '19m');
   ini_set('upload_max_filesize', '18m');
   $dir = "/usr/home/user/domains/domain/public_html/webimg/";
   $documentname = str_replace(" ","",$_FILES['file']['name']);
   while (file_exists($dir.$documentname) != 0){
      
      $documentname = imagerename($documentname);
         
   }
   if (move_uploaded_file($_FILES['file']['tmp_name'], $dir.$documentname)){
      $ext = strtolower(substr($_FILES['file']['name'],-4));
      switch ($ext){
         case ".jpg":
         case "jpeg":
            $src_img = imagecreatefromjpeg($dir.$documentname);
         break;
         case ".png":
            $src_img = imagecreatefrompng($dir.$documentname);
         break;
         case ".gif":
            $src_img = imagecreatefromgif($dir.$documentname);
         break;
      }
      $origw = imagesx($src_img);
      $origh = imagesy($src_img);
      
      $maxwidth = 180;
      $maxheight = 180;
      $new_w = $maxwidth;
      $diff = $origh / $maxwidth;
      $new_h = $origh / $diff;
      
      $dst_img = imagecreatetruecolor($new_w,$new_h);
      imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));
      
      switch ($ext){
         case ".jpg":
         case "jpeg":
            imagejpeg($dst_img, $dir."_tn".$documentname, 100);
         break;
         case ".png":
            imagepng($dst_img, $dir."_tn".$documentname, 100);
         break;
         case ".gif":
            imagegif($dst_img, $dir."_tn".$documentname, 100);
         break;
      }
   }
   return $documentname;
}
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41922211
imagecopyresized => imagecopyresampled ?
pi_41922505
quote:
Op maandag 18 september 2006 15:44 schreef Darkomen het volgende:
imagecopyresized => imagecopyresampled ?
oh.. dat was makkelijk ty
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41922770
quote:
Op maandag 18 september 2006 14:39 schreef JeRa het volgende:

[..]

Dat klopt
helaas werkt dat dus ook niet
pi_41922811
Ik heb die fout zelf ok een keer gemaakt, vandaar dat ik het onthou.
pi_41923024
Kan iemand me uitleggen waarom
1  if( !preg_match( '/([^A-Za-z0-9_]+)/', $a ) )

niet hetzelfde is als
1  if( preg_match( '/([A-Za-z0-9_]+)/', $a ) )


-edit-
omdat er ergens anders een fout zit dus Never mind.
pi_41923094
if( !preg_match( '/([^A-Za-z0-9_]+)/', $a ) ) kijkt of het niet voldoet, de andere of het er wel aan voldoet.
pi_41923685
quote:
Op maandag 18 september 2006 16:16 schreef Darkomen het volgende:
if( !preg_match( '/([^A-Za-z0-9_]+)/', $a ) ) kijkt of het niet voldoet, de andere of het er wel aan voldoet.
mm je vergeet het dakje voor de A..
As a rule, I never touch anything more sophisticated and delicate than myself.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')