abonnement Unibet Coolblue Bitvavo
  donderdag 26 juli 2007 @ 16:36:53 #201
62215 qu63
..de tijd drinkt..
pi_51858424
hmz, http://www.w3schools.com/php/php_sessions.asp helpt me wel een beetje verder, maar hoe zorg ik er voor dat ik dezelfde gegevens ook op andere pagina's kan gebruiken?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  donderdag 26 juli 2007 @ 16:37:33 #202
71919 wonderer
Hung like a My Little Pony
pi_51858441
quote:
Op donderdag 26 juli 2007 16:31 schreef Geqxon het volgende:
wonderer, dump eens een lap code waarvan je denkt dat het korter kan. :)
You asked for it... :')
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?php
function profile_form($user,$element)
{
 global 
$days$months;

 
$d=connectDB();
 
$result1=runquery("SELECT * FROM user_profile WHERE username=".quote_smart($user,$d),$d);
 
$result2=runquery("SELECT * FROM user_data WHERE username=".quote_smart($user,$d),$d);
 
$result3=runquery("SELECT * FROM user_prefs WHERE username=".quote_smart($user,$d),$d);
 
$result4=runquery("SELECT * FROM users WHERE username=".quote_smart($user,$d),$d);
 
$result5=runquery("SELECT * FROM user_extras WHERE username=".quote_smart($user,$d),$d);

 
$row1=mysql_fetch_array($result1);
 
$row2=mysql_fetch_array($result2);
 
$row3=mysql_fetch_array($result3);
 
$row4=mysql_fetch_array($result4);
 
$row5=mysql_fetch_array($result5);

 
$bd=explode("-",$row2["birthday"]);
 
$day=$bd[2];
 
$month=$bd[1];
 
$year=$bd[0];

 
$days=select_list('profileform[user_day]',$day,$days);
 
$months=select_list('profileform[user_month]',$month,$months);

 if(
$row2["user_sex"]=="f"){$sf='checked';}
 elseif(
$row2["user_sex"]=="m"){$sm='checked';}
 elseif(
$row2["user_sex"]=="t"){$st='checked';}

 if(
$row3["email_public"]=='1'){
  
$pb=' checked';
 }
 else{
  
$pv=' checked';
 }

 if(
$row3["smilies"]=='1'){
  
$sb=' checked';
 }
 else{
  
$sv=' checked';
 }

 
$res=runquery("SELECT * FROM user_avatars WHERE username=".quote_smart($user,$d),$d);
 while(
$av=mysql_fetch_array($res)){
  
$ava=$av["avatar_ID"].'.'.$av["extension"];
  if(
$av["avatar_ID"]==$row2["user_avatar"]){
    
$checked=' selected';
  }
  else{
    
$checked='';
  }
  
$select .= '<option value="'.$ava.'"'.$checked.'>'.$ava.'</option>';
 }

 if(
mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='3' AND username=".quote_smart($user,$d),$d))=='1'){
  
$fe_custom_color='<select name="profileform[custom_color]" id="kleur" style="background-color:#000000;color:#ffeeee;">'.generate_colors($row5["custom_color"]).'</select> Eigen kleurtje <br />';
 }
 else{
  
$fe_custom_color='Eigen kleurtje: <span style="color:#'.$row5["custom_color"].'">'.$row5["custom_color"].' (<a href="shop.php">aanpassen</a>)</span><br />';
 }
 if(
mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='4' AND username=".quote_smart($user,$d),$d))=='1'){
  
$fe_custom_tag='<input type="text" class="text" name="profileform[custom_tag]"> Eigen tag <br />';
 }
 else{
  
$fe_custom_tag='Eigen tag: '.$row5["custom_tag"].' (<a href="shop.php">aanpassen</a>)<br />';
 }
 if(
mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='7' AND username=".quote_smart($user,$d),$d))=='1'){
  
$fe_custom_sig='In je handtekening mogen plaatjes van maximaal 400 pixels breed en 60 pixels hoog. Het totaal aantal tekens mag de 250 niet overschrijden, inclusief BBCode. Op de inhoud zijn de algemene voorwaarden van toepassing. <br />';
  
$fe_custom_sig.='<textarea name="profileform[custom_sig]" style="width:285px;height:60px;" class="sig">'.stripslashes($row5["custom_sig"]).'</textarea>';
 }
 else{
  
$fe_custom_sig='Je hebt geen handtekening. Ga naar de <a href="shop.php">shop</a> om deze mogelijkheid te benutten.<br />';
 }
 if(
mysql_num_rows(runquery("SELECT * FROM user_inventory WHERE item_ID='6' AND username=".quote_smart($user,$d),$d))=='1'){
  
$change_name='1';
 }

 if(
$row2["user_alias"]==$user || $row2["user_alias"]==''){
  
$fe_alias='<input type="text" class="text" name="profileform[user_alias]" value="'.$user.'"> Chatnaam <br />';
 }
 elseif(
$change_name=='1'){
  
$fe_alias='<input type="text" class="text" name="profileform[user_alias]" value="'.$row2["user_alias"].'"> Chatnaam <br />';
 }
 else{
  
$fe_alias=format_username($user).' (Chatnaam <a href="">veranderen</a>)<br />';
 }


 
$fe_avatar='<select class="actielijst" name="profileform[user_avatar]"><option value="">Geen avatar</option> '.$select.'</select> <a href="members.php?c=avatars">Upload nieuwe avatar</a><br />';

 
$fe_color='<select name="profileform[user_color]" id="kleur" style="background-color:#000000;color:#ffeeee;">'.generate_colors($row2["user_color"]).'</select> Chatkleur <br />';

 
$fe_bio='Vertel hier iets over jezelf. Geen chatlogs, geen ASCII geknutsel, geen verhalen, gedichten, songteksten etc.<br />';
 
$fe_bio.=show_toolbar('user_bio');
 
$fe_bio.='<textarea id="user_bio" class="user_bio" name="profileform[user_bio]">'.stripslashes($row1["user_bio"]).'</textarea>';
 
$fe_bio.='<script>write_toolbar('user_bio');</script>';

 
$fe_homepage='<input type="text" class="text" name="profileform[user_page]" value="'.$row1["user_page"].'"> URL van je homepage <br />';
 
$fe_msn='<input type="text" class="text" name="profileform[user_msn]" value="'.$row1["user_msn"].'"> Je MSN-adres <br />';
 
$fe_wp='<input type="text" class="text" name="profileform[user_whatpulse]" value="'.$row1["user_whatpulse"].'"> Whatpulse username <br />';
 
$fe_email='<input type="text" class="text" name="profileform[email]" value="'.$row4["email"].'"> E-mailadres<br />';

 
$fe_first_name='<input type="text" class="text" name="profileform[first_name]" value="'.$row2["first_name"].'"> Voornaam<br />';
 
$fe_last_name='<input type="text" class="text" name="profileform[last_name]" value="'.$row2["last_name"].'"> Achternaam<br />';
 
$fe_location='<input type="text" class="text" name="profileform[location]" value="'.$row2["location"].'"> Woonplaats<br />';
 
$fe_country='<input type="text" class="text" name="profileform[country]" value="'.$row2["country"].'"> Land<br />';

 
$fe_birthday=$days.' - '.$months.' - <input type="text" class="text" size="4" maxlength="4" name=profileform[user_year]" value="'.$year.'"><br />';
 
$fe_sex='<input type="radio" name="profileform[user_sex]" value="m" '.$sm.'> Jongen <input type="radio" name="profileform[user_sex]" value="f" '.$sf.'> Meisje<br /><input type="radio" name="profileform[user_sex]" value="t" '.$st.' style="display:none;">';

 
$fe_prefs='
 <table class="prefs">
 <tr><td>Email-adres</td> <td><input type="radio" value="1" name="profileform[email_public]"'
.$pb.'> Openbaar</td> <td><input type="radio" value="0" name="profileform[email_public]"'.$pv.'> Priv&eacute;</td></tr>
 <tr><td>Smilies</td> <td><input type="radio" value="1" name="profileform[smilies]"'
.$sb.'> Aan</td> <td><input type="radio" value="0" name="profileform[smilies]"'.$sv.'> Uit</td></tr>
 </table>'
;


 
$formheader='<form class="profile_form" method="post" action="?c=submit_profile">';
 
$submit='<input type="hidden" name="profileform[username]" value="'.$user.'"><input type="submit" class="submit" name="submit_profile" value="opslaan" accesskey="s">';
 
$formfooter='</form>';

 
$link='<a href="?c=profile&user='.$user.'">Bekijk je profiel</a>';

 switch(
$element){
  case 
'1'#bio
   
$form=$formheader.$fe_bio.$submit.$formfooter;
   break;
  case 
'2'#contact
   
$form=$formheader.$fe_homepage.$fe_msn.$fe_wp.$fe_email.$submit.$formfooter;
   break;
  case 
'3'#persoonlijk
   
$form=$formheader.$fe_first_name.$fe_last_name.$fe_location.$fe_country.$submit.$formfooter;
   break;
  case 
'4'#geb. datum/sexe
   
$form=$formheader.$fe_birthday.$fe_sex.$submit.$formfooter;
   break;
  case 
'5'#chatstuff
   
$form=$formheader.$fe_alias.$fe_avatar.$fe_color.$submit.$formfooter;
   break;
  default:
   
$form=$formheader.'<div class="prof_left">
   <fieldset class="prof"><legend>Contactgegevens</legend>'
.$fe_homepage.$fe_msn.$fe_wp.$fe_email.'</fieldset>
   <fieldset class="prof"><legend>Persoonlijk</legend>'
.$fe_first_name.$fe_last_name.$fe_location.$fe_country.$fe_birthday.$fe_sex.'</fieldset>
   <fieldset class="prof"><legend>Chatstuff</legend>'
.$fe_alias.$fe_avatar.$fe_color.'</fieldset>
   <fieldset class="prof"><legend>Instellingen</legend>'
.$fe_prefs.'</fieldset>
   <fieldset class="prof"><legend>Extra'
s</legend>'.$fe_custom_tag.$fe_custom_color.$fe_custom_sig.'</fieldset>
   
'.$submit.'</div>
   <
div class="prof_right"><fieldset class="prof"><legend>Biografie</legend>'.$fe_bio.'</fieldset></div>'.$formfooter;
   break;
 }
return $form;
}
?>


Dat bouwt het formulier op voor een gebruikersprofiel. De switch is voor stukjes formulier: als je op je eigen profiel zit, zie je per gedeelte (persoonlijke info, biografie etc een linkje "bewerk" dat in een popupje het betreffende stukje form laat zien zodat je het makkelijk en snel kan aanpassen).

Ik heb alle userdata in verschillende tabellen gestopt vanwege het overzicht. Dit leek me makkelijker dan een grote tabel met wel 50 fields. Als ik nu bijvoorbeeld alleen een voornaam nodig heb, hoef ik niet in een hele grote tabel te gaan zoeken (hoewel, met een SELECT first_name zou dat ook niet veel uitmaken? Is het misschien toch slimmer om alles in een tabel te proppen?).
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
  donderdag 26 juli 2007 @ 16:38:40 #203
71919 wonderer
Hung like a My Little Pony
pi_51858473
Dit voelt echt net als iemand een verhaal laten lezen Ben echt bang dat er zometeen iemand komt die me keihard uitlacht omdat de code zo knullig is

Met dat verschil dat ik weet dat ik goed verhalen kan schrijven, maar dat mijn codeer-niveau nog in groep drie zit
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
  donderdag 26 juli 2007 @ 16:40:51 #204
71919 wonderer
Hung like a My Little Pony
pi_51858525
Deze is ook wel leuk trouwens:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function breadcrumb($id){
 
$d=connectDB();
 
$r1=runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID='".$id."'",$d);
 
$pid=mysql_result($r1,0,"parent_ID");
 
$topic=mysql_result($r1,0,"forum_subject");
 
$r2=runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID='".$pid."'",$d);
 
$pid2=mysql_result($r2,0,"parent_ID");
 
$subforum=mysql_result($r2,0,"forum_subject");
 
$r3=runquery("SELECT forum_subject FROM forum WHERE ID='".$pid2."'",$d);
 
$forum=mysql_result($r3,0,"forum_subject");

 
$crumb='<a href="forum.php">Griezelforum</a> > '.$forum.': <a href="forum.php?c=forum&id='.$pid.'">'.$subforum.'</a> > '.stripslashes($topic);

 return 
$crumb;
}
?>

Breadcrumb voor forum->subforum->topic
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
  donderdag 26 juli 2007 @ 16:43:56 #205
84926 WyriHaximus
Release the hounds smithers!
pi_51858605
quote:
Op donderdag 26 juli 2007 16:38 schreef wonderer het volgende:
Dit voelt echt net als iemand een verhaal laten lezen Ben echt bang dat er zometeen iemand komt die me keihard uitlacht omdat de code zo knullig is

Met dat verschil dat ik weet dat ik goed verhalen kan schrijven, maar dat mijn codeer-niveau nog in groep drie zit
Dat blijf je altijd houden . Maar de meeste hier zullen best willen helpen .
phluphy for president!
  donderdag 26 juli 2007 @ 16:48:02 #206
62215 qu63
..de tijd drinkt..
pi_51858719
quote:
Op donderdag 26 juli 2007 16:36 schreef qu63 het volgende:
hmz, http://www.w3schools.com/php/php_sessions.asp helpt me wel een beetje verder, maar hoe zorg ik er voor dat ik dezelfde gegevens ook op andere pagina's kan gebruiken?
opgelöst!
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_51858764
quote:
Op donderdag 26 juli 2007 16:36 schreef qu63 het volgende:
hmz, http://www.w3schools.com/php/php_sessions.asp helpt me wel een beetje verder, maar hoe zorg ik er voor dat ik dezelfde gegevens ook op andere pagina's kan gebruiken?
Pagina 1:
1
2
3
4
5
<?php
session_start
();

$_SESSION["Voornaam"] = "Dieter";
?>


Pagina 2:
1
2
3
4
5
6
<?php
session_start
();

echo
$_SESSION["Voornaam"];
// Dieter
?>
pi_51860668
quote:
Op donderdag 26 juli 2007 16:40 schreef wonderer het volgende:
Deze is ook wel leuk trouwens:
[ code verwijderd ]

Breadcrumb voor forum->subforum->topic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function breadcrumb($id){
    
$d connectDB();

    
$result runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID = '" mysql_real_escape_string($id) . "'");
    
$topic mysql_fetch_assoc($result);
    
    
$result runquery("SELECT forum_ID, forum_subject, parent_ID FROM forum WHERE ID = '" $topic['parent_ID'] . "'");
    
$subforum mysql_fetch_assoc($result);
    
    
$result runquery("SELECT forum_subject FROM forum WHERE ID = '" $subforum['parent_ID'] . "'");
    
$forum mysql_fetch_assoc($result);
    
    
$breadcrumb_html '<a href="forum.php">Griezelforum</a> &raquo; ' $forum['forum_subject'] . ': ';
    
$breadcrumb_html .= '<a href="forum.php?c=forum&id='.$subforum['forum_ID'].'">'.$subforum['forum_subject'].'</a> &raquo; ';
    
$breadcrumb_html .= stripslashes($topic['forum_subject']);
    
    return 
$breadcrumb_html;
}
?>


Qua structuur iets overzichtelijker gemaakt. Je hebt nu drie arrays, een array met alle data van het topic, een array met alle data van het subforum, en een array met alle data van het forum zelf. En daar bouw je dan vervolgens je breadcrumb mee op.

'forum_ID' heb ik zelf verzonnen, daar zul je mogelijk nog wat aan moeten doen.

En als je het een heel stuk korter wilt hebben:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function breadcrumb($id){
    
$d connectDB();

    
$topic mysql_fetch_assoc(runquery("SELECT forum_subject, parent_ID FROM forum WHERE ID = '" mysql_real_escape_string($id) . "'",$d));
    
$subforum mysql_fetch_assoc(runquery("SELECT forum_ID, forum_subject, parent_ID FROM forum WHERE ID = '" $topic['parent_ID'] . "'",$d));
    
$forum mysql_fetch_assoc(runquery("SELECT forum_subject FROM forum WHERE ID = '" $subforum['parent_ID'] . "'",$d));
    
    
$breadcrumb_html '<a href="forum.php">Griezelforum</a> &raquo; ' $forum['forum_subject'] . ': ';
    
$breadcrumb_html .= '<a href="forum.php?c=forum&id='.$subforum['forum_ID'].'">'.$subforum['forum_subject'].'</a> &raquo; ';
    
$breadcrumb_html .= stripslashes($topic['forum_subject']);
    
    return 
$breadcrumb_html;
}
?>


Aan jou de keus wat je netter vind. :)
pi_51860729
ik vind de html opbouwen met sprintf() netter dan dit.
1
2
3
4
<?php
$format 
'<a href="forum.php">Griezelforum</a> &raquo; %s <a href="forum.php?c=forum&id=%s">&s</a> &raquo; %s';
$breakcrumb_html sprintf($format$forum['forum_subject'], $subforum['forum_ID'], $subforum['forum_subject'], stripslashes($topic['forum_subject']););
?>


[ Bericht 40% gewijzigd door super-muffin op 26-07-2007 18:16:29 ]
pi_51861081
quote:
Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
ik vind de html opbouwen met sprintf() netter dan dit.
[ code verwijderd ]
Dat is inderdaad een stuk netter.
  donderdag 26 juli 2007 @ 19:43:48 #211
71919 wonderer
Hung like a My Little Pony
pi_51863424
quote:
Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
ik vind de html opbouwen met sprintf() netter dan dit.

[ code verwijderd ]
Waarom? In principe doe je toch hetzelfde? Bij een sprintf moet ik steeds weer opnieuw nadenken wat waar precies komt, op de "normale" manier gaat dat vanzelf

Geq, ik zie dat je steeds "$result" gebruikt. Geeft dat niet? Dat ie hem overschrijft? Of is dat juist handiger omdat hij dan steeds maar een result in het geheugen heeft zitten in plaats van drie verschillende?
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
  donderdag 26 juli 2007 @ 20:08:01 #212
85514 ralfie
!Yvan eht nioj
pi_51864169
ik gebruik het liefste haakjes om mijn strings op te bouwen:

"Hallo {$gebruiker}, je hebt als naam opgegeven {$_GET['naam']}<br/>";

sprintf vind ik een beetje overdreven om zoiets op te bouwen, maarja, whatever floats your boat...
pi_51864322
quote:
Op donderdag 26 juli 2007 19:43 schreef wonderer het volgende:

[..]

Geq, ik zie dat je steeds "$result" gebruikt. Geeft dat niet? Dat ie hem overschrijft? Of is dat juist handiger omdat hij dan steeds maar een result in het geheugen heeft zitten in plaats van drie verschillende?
Je hebt het hier maar 1 keer nodig, dus vandaar dat ik altijd dezelfde gebruik. Dat is wat netter dan $result_topic en $result_subforum.
  donderdag 26 juli 2007 @ 20:14:13 #214
71919 wonderer
Hung like a My Little Pony
pi_51864391
Oh, dat kan ook? Ik was al trots dat ik tegenwoordig single quotes gebruik voor strings en de variabelen er buiten laat
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51864484
quote:
Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
ik vind de html opbouwen met sprintf() netter dan dit.
[ code verwijderd ]
HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.
  donderdag 26 juli 2007 @ 20:16:47 #216
71919 wonderer
Hung like a My Little Pony
pi_51864502
quote:
Op donderdag 26 juli 2007 20:12 schreef Geqxon het volgende:

[..]

Je hebt het hier maar 1 keer nodig, dus vandaar dat ik altijd dezelfde gebruik. Dat is wat netter dan $result_topic en $result_subforum.
Hm, maar qua performance maakt het niet uit? Ik meen me te herinneren dat ik geleerd heb dat je steeds een nieuwe variabele moet gebruiken. Maar dat is alweer zo lang geleden, misschien heb ik het mezelf wel aangeleerd omdat het ergens een keer fout ging of zo.

Ik heb in 1999 een LAMP cursus gevolgd, daarna stage gelopen bij een internetbedrijfje waar ik alle begin leerde en daarna heb ik daar nog een tijdje gewerkt met een OO systeem dat ik niet zelf gebouwd had.

Dus ik modder al ruim zes jaar maar een beetje aan met vallen opstaan Het werkt allemaal best maar het kan dus een stuk beter. Eigenlijk heb ik iemand nodig die samen met me door alle code gaat en hier en daar wat verbetert of me laat zien hoe het ook/beter kan.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51864581
quote:
Op donderdag 26 juli 2007 20:08 schreef ralfie het volgende:
ik gebruik het liefste haakjes om mijn strings op te bouwen:

"Hallo {$gebruiker}, je hebt als naam opgegeven {$_GET['naam']}<br/>";

sprintf vind ik een beetje overdreven om zoiets op te bouwen, maarja, whatever floats your boat...
Voor zo iets als dit is sprintf misschien wel overdreven, maar over het algemeen is het wel iets netter. Ook wel iets waar ik waarde aan hecht in mijn code.
pi_51865858
quote:
Op donderdag 26 juli 2007 20:16 schreef Farenji het volgende:

[..]

HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.
Ook voor een functie die puur gebaseerd voor het outputten van HTML bestaat?
pi_51865950
quote:
Op donderdag 26 juli 2007 20:16 schreef Farenji het volgende:
HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.
PHP is een prima template engine
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51866333
quote:
Op donderdag 26 juli 2007 20:56 schreef SuperRembo het volgende:

[..]

PHP is een prima template engine
Het idee van een template engine die gebruik maakt van een sandbox om templates te renderen vind ik toch wat prettiger dan zelf in de gaten te houden welke variabelen er allemaal in het presentatiedeel van m'n applicatie terecht komen (white listing versus black listing van variabelen).
  donderdag 26 juli 2007 @ 21:24:36 #221
71919 wonderer
Hung like a My Little Pony
pi_51866834
Als ik met serialize() iets in een tabel wil opslaan, moet dat veld dan binary safe zijn of kan dat ook gewoon text zijn?
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51866955
quote:
Op donderdag 26 juli 2007 21:08 schreef JeRa het volgende:

[..]

Het idee van een template engine die gebruik maakt van een sandbox om templates te renderen vind ik toch wat prettiger dan zelf in de gaten te houden welke variabelen er allemaal in het presentatiedeel van m'n applicatie terecht komen (white listing versus black listing van variabelen).
Ja, een template engin kan best handig zijn, afhankelijk van de grootte van het project. Het was vooral een opmerking om aan te geven dat een functie die wat html terug geeft niet per definitie "niet netjes" is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51867176
quote:
Op donderdag 26 juli 2007 21:24 schreef wonderer het volgende:
Als ik met serialize() iets in een tabel wil opslaan, moet dat veld dan binary safe zijn of kan dat ook gewoon text zijn?
Dat ligt eraan wat je serializet. Alle taalelementen van PHP zijn zonder meer in een ASCI-compatible veld op te slaan, maar als jij variabelen met binary data gaat serializen kan het een heel goed idee zijn om een binary safe veld te gebruiken. Sterker nog, ik raad je aan om een binary veld te gebruiken, puur omdat je verder geen character sets oid nodig hebt voor het resultaat van een serialize()
  donderdag 26 juli 2007 @ 21:38:43 #224
71919 wonderer
Hung like a My Little Pony
pi_51867322
quote:
Op donderdag 26 juli 2007 21:34 schreef JeRa het volgende:

[..]

Dat ligt eraan wat je serializet. Alle taalelementen van PHP zijn zonder meer in een ASCI-compatible veld op te slaan, maar als jij variabelen met binary data gaat serializen kan het een heel goed idee zijn om een binary safe veld te gebruiken. Sterker nog, ik raad je aan om een binary veld te gebruiken, puur omdat je verder geen character sets oid nodig hebt voor het resultaat van een serialize()
Waarschijnlijk een stel arrays (ik sla nu arrays als string met delimiters op, dan is een ge-serialize-de toch wel een stukkie sneller, in plaats van explode dit en join dat enzo) maar als het verder niet uitmaakt, kan ik het net zo goed in binary doen. Met de hand aanpassen in bijv. phpMyAdmin schiet toch niet op.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
  donderdag 26 juli 2007 @ 21:39:21 #225
71919 wonderer
Hung like a My Little Pony
pi_51867356
Goh, ik leer zoveel vandaag

Nou nog allemaal toepassen
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51867405
quote:
Op donderdag 26 juli 2007 21:08 schreef JeRa het volgende:

[..]

Het idee van een template engine die gebruik maakt van een sandbox om templates te renderen vind ik toch wat prettiger dan zelf in de gaten te houden welke variabelen er allemaal in het presentatiedeel van m'n applicatie terecht komen (white listing versus black listing van variabelen).
Hoe moet ik dat black/whitelisten van variablen zien? Zit me af te vragen hoe je zoiets zou doen. Of bedoel je dat je de values van de variablen sanitized?
pi_51867530
quote:
Op donderdag 26 juli 2007 21:40 schreef slakkie het volgende:

[..]

Hoe moet ik dat black/whitelisten van variablen zien? Zit me af te vragen hoe je zoiets zou doen. Of bedoel je dat je de values van de variablen sanitized?
De scheiding tussen je model in PHP en je view (óók in PHP) vervaagt doordat je voor een goede overgang tussen de twee moet zorgen. Zo kan het dus het geval zijn dat er een losse variabele die je in je model hebt gebruikt terugvindt in je view et vice versa. Door een template engine te gebruiken (zoals Smarty) begin je, waar je het view dan ook aanspreekt in je model, met een lege sandbox waarin je variabelen kunt toevoegen. Die sandbox kun je vervolgens ook netjes debuggen. Ik zie zoiets als preventief fouten voorkomen
  donderdag 26 juli 2007 @ 22:10:21 #228
84926 WyriHaximus
Release the hounds smithers!
pi_51868608
quote:
Op donderdag 26 juli 2007 21:43 schreef JeRa het volgende:

[..]

De scheiding tussen je model in PHP en je view (óók in PHP) vervaagt doordat je voor een goede overgang tussen de twee moet zorgen. Zo kan het dus het geval zijn dat er een losse variabele die je in je model hebt gebruikt terugvindt in je view et vice versa. Door een template engine te gebruiken (zoals Smarty) begin je, waar je het view dan ook aanspreekt in je model, met een lege sandbox waarin je variabelen kunt toevoegen. Die sandbox kun je vervolgens ook netjes debuggen. Ik zie zoiets als preventief fouten voorkomen
Precies . Template engines besparen je zo veel werk. o.a. omdat je heel erg makkelijk designs en indelingen kunt veranderen etc zonder je code te moeten aanpassen .
phluphy for president!
pi_51868857
Ik werk met hobbyprojectjes niet met templates. Meestal gewoon eerst de data uit MySQL ophalen, dan HTML (buiten de PHP tags), en waar nodig bijvoorbeeld:

1
2
3
4
5
<?php
<select name="user_timezone">
echo
drawDropdownItems($timezone_array,$user['Timezone']);
</
select>
?>


Voor kleinschalige projecten toch niet al te fout?
  donderdag 26 juli 2007 @ 22:22:53 #230
71919 wonderer
Hung like a My Little Pony
pi_51869186
quote:
Op donderdag 26 juli 2007 22:10 schreef WyriHaximus het volgende:

[..]

Precies . Template engines besparen je zo veel werk. o.a. omdat je heel erg makkelijk designs en indelingen kunt veranderen etc zonder je code te moeten aanpassen .
Daar hebben ze toch CSS voor uitgevonden?

template engines doe ik wel voor versie 4 van deze site. Zoiets als geqxon doe ik ook regelmatig, maar alleen als ik die bepaalde dropdown vaker dan eenmaal nodig heb.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51871178
quote:
Op donderdag 26 juli 2007 20:56 schreef SuperRembo het volgende:

[..]

PHP is een prima template engine
Meer is het eigenlijk ook niet he.
  donderdag 26 juli 2007 @ 23:11:33 #232
84926 WyriHaximus
Release the hounds smithers!
pi_51871255
quote:
Op donderdag 26 juli 2007 22:22 schreef wonderer het volgende:

[..]

Daar hebben ze toch CSS voor uitgevonden?

template engines doe ik wel voor versie 4 van deze site. Zoiets als geqxon doe ik ook regelmatig, maar alleen als ik die bepaalde dropdown vaker dan eenmaal nodig heb.
Niet alles kan met CSS . Maar als je echt dat kant op wil dat je document alleen maar data bestaat en design in andere dan moet je eens naar XML en XLST (ofzo) kijken . Mooi voorbeeldje daar van is me wow char in de armory van blizzard:
http://armory.wow-europe.com/character-sheet.xml?r=Skullcrusher&n=Wyrihaximus
phluphy for president!
  donderdag 26 juli 2007 @ 23:19:31 #233
63192 ursel
"Het Is Hier Fantastisch!
pi_51871499
quote:
Op donderdag 26 juli 2007 23:11 schreef WyriHaximus het volgende:

[..]

Niet alles kan met CSS . Maar als je echt dat kant op wil dat je document alleen maar data bestaat en design in andere dan moet je eens naar XML en XLST (ofzo) kijken . Mooi voorbeeldje daar van is me wow char in de armory van blizzard:
http://armory.wow-europe.com/character-sheet.xml?r=Skullcrusher&n=Wyrihaximus
Begreep juist tijdens mijn cursus dat XSLT het 2 jaar geleden leek te worden, maar dat het niet on voldoen aan de verwachtingen en dat Smarty die plaats nu heeft ingenomen. In het boek staat dan nog wel XSLT beschreven, maar is uit de cursus zelf geschrapt en vervangen door Smarty..

XML daarentegen is er nog wel..
  donderdag 26 juli 2007 @ 23:42:38 #234
84926 WyriHaximus
Release the hounds smithers!
pi_51872283
quote:
Op donderdag 26 juli 2007 23:19 schreef ursel het volgende:

[..]

Begreep juist tijdens mijn cursus dat XSLT het 2 jaar geleden leek te worden, maar dat het niet on voldoen aan de verwachtingen en dat Smarty die plaats nu heeft ingenomen. In het boek staat dan nog wel XSLT beschreven, maar is uit de cursus zelf geschrapt en vervangen door Smarty..

XML daarentegen is er nog wel..
Tsja XSLT is gewoon nog traag. Smarty (en andere template engines) is stuk rapper is mijn ervaring . Daar tegenover staat is dat XSLT gewoon erg tof is .
phluphy for president!
  vrijdag 27 juli 2007 @ 01:03:09 #235
71919 wonderer
Hung like a My Little Pony
pi_51874719
XML heb ik op school nog gehad.

Maar 't is allemaal niet zo'n halszaak. Ik maak dingen vooral voor mezelf. Als ik echt ingewikkelde applicaties voor iemand anders zou maken en daar geld mee zou verdienen, zou het wat anders zijn. Met dit soort hobbydingen leer ik weer veel bij dat ik later kan gebruiken, maar om er echt mijn werk van te maken kom ik toch een en ander tekort, helaas.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51879569
Het maakt ook weinig uit als je gewoon dingen voor jezelf maakt idd. Maar zodra je applicaties groter worden dan een paar scriptjes die bij elkaar horen dan wordt het iets anders dan "het hoort zo" maar dan wordt het "als je het niet doet kom je uiteindelijk zwaar in de shit". Ik heb een keer een grote applicatie moeten onderhouden waarvan de php vol stond met (non-css) html incl presentatietags. En toen ging het bedrijf over op een nieuwe huisstijl dus moest alles omgegooid worden. Dat was echt kut met peren vooral omdat het toen al veel te laat was om alsnog op een template engine over te gaan.
  vrijdag 27 juli 2007 @ 12:24:37 #237
84926 WyriHaximus
Release the hounds smithers!
pi_51883045
quote:
Op vrijdag 27 juli 2007 10:18 schreef Farenji het volgende:
Het maakt ook weinig uit als je gewoon dingen voor jezelf maakt idd. Maar zodra je applicaties groter worden dan een paar scriptjes die bij elkaar horen dan wordt het iets anders dan "het hoort zo" maar dan wordt het "als je het niet doet kom je uiteindelijk zwaar in de shit". Ik heb een keer een grote applicatie moeten onderhouden waarvan de php vol stond met (non-css) html incl presentatietags. En toen ging het bedrijf over op een nieuwe huisstijl dus moest alles omgegooid worden. Dat was echt kut met peren vooral omdat het toen al veel te laat was om alsnog op een template engine over te gaan.
En alleen daarom is het een goed idee om een template engine te gebruiken . Ook voor kleine projectjes is het erg handig, tenzij je met 1 pagina scripts werkt .
phluphy for president!
pi_51887551
Hoe goed zijn jullie met mod_rewrite?

Ik probeer namelijk een of meer characters in m'n URL te replacen voordat ik em ga rewriten ( / (slash) door _ (underscore). Maar daar lijkt mod_rewrite niet zo op gebouwd te zijn. Nu is het mogelijk met rewriteMap, maar daar heb ik weer een apart txt-bestandje voor nodig, en dat vind ik niet mooi

Kan dit makkelijker? Bij voorkeur in m'n .htaccess
pi_51888171
quote:
Op vrijdag 27 juli 2007 10:18 schreef Farenji het volgende:
Het maakt ook weinig uit als je gewoon dingen voor jezelf maakt idd. Maar zodra je applicaties groter worden dan een paar scriptjes die bij elkaar horen dan wordt het iets anders dan "het hoort zo" maar dan wordt het "als je het niet doet kom je uiteindelijk zwaar in de shit". Ik heb een keer een grote applicatie moeten onderhouden waarvan de php vol stond met (non-css) html incl presentatietags. En toen ging het bedrijf over op een nieuwe huisstijl dus moest alles omgegooid worden. Dat was echt kut met peren vooral omdat het toen al veel te laat was om alsnog op een template engine over te gaan.
Herkenbaar. Sindsdien gebruik ik ten allen tijde mijn eigen template engine, en nog belangrijker: ik zet ALLES, maar dan ook ALLES wat enigzins configureerbaar is in constanten.
  vrijdag 27 juli 2007 @ 15:22:21 #240
84926 WyriHaximus
Release the hounds smithers!
pi_51888302
quote:
Op vrijdag 27 juli 2007 15:00 schreef Xcalibur het volgende:
Hoe goed zijn jullie met mod_rewrite?

Ik probeer namelijk een of meer characters in m'n URL te replacen voordat ik em ga rewriten ( / (slash) door _ (underscore). Maar daar lijkt mod_rewrite niet zo op gebouwd te zijn. Nu is het mogelijk met rewriteMap, maar daar heb ik weer een apart txt-bestandje voor nodig, en dat vind ik niet mooi

Kan dit makkelijker? Bij voorkeur in m'n .htaccess
Heb je voorbeeldje van wat naar wat je wilt hebben?
phluphy for president!
pi_51889563
quote:
Op vrijdag 27 juli 2007 15:19 schreef Scorpie het volgende:

[..]

Herkenbaar. Sindsdien gebruik ik ten allen tijde mijn eigen template engine, en nog belangrijker: ik zet ALLES, maar dan ook ALLES wat enigzins configureerbaar is in constanten.
Daar heb ik een settings-tabel in de database voor. Waarbij alles via getSetting($instelling) op te vragen is.
pi_51889593
Gewoon alle slashes vervangen door underscores :)

1category-1/subcategory-2/subsubcategorie-3 -> category-1_subcategory-2_subsubcategorie-3


De verdere mod_rewrite afhandeling werkt prima...
pi_51889642
quote:
Op vrijdag 27 juli 2007 15:51 schreef Geqxon het volgende:
Daar heb ik een settings-tabel in de database voor. Waarbij alles via getSetting($instelling) op te vragen is.
Ik gebruik liever een configfile, omdat je niet altijd een database hebt, en de configvariabelen over het algemeen niet veranderen
pi_51890183
quote:
Op vrijdag 27 juli 2007 15:53 schreef Xcalibur het volgende:

[..]

Ik gebruik liever een configfile, omdat je niet altijd een database hebt, en de configvariabelen over het algemeen niet veranderen
Mwa, userfriendly wil ik het niet noemen, om over de snelheid maar te zwijgen. Het is toch niet zoveel werk om een formulier in elkaar te knutsellen waar gebruikers deze opties kunnen wijzigen?
  vrijdag 27 juli 2007 @ 16:23:03 #245
84926 WyriHaximus
Release the hounds smithers!
pi_51890735
quote:
Op vrijdag 27 juli 2007 15:52 schreef Xcalibur het volgende:
Gewoon alle slashes vervangen door underscores
[ code verwijderd ]

De verdere mod_rewrite afhandeling werkt prima...
Hmmm dit moet nog voor mod_rewrite gebeuren of tijdens PHP of nog voor mod_rewrite, want dat was me nog niet helemaal duidelijk . * WyriHaximus is niet echt wakker vandaag
phluphy for president!
pi_51891949
quote:
Op vrijdag 27 juli 2007 15:53 schreef Xcalibur het volgende:

[..]

Ik gebruik liever een configfile, omdat je niet altijd een database hebt, en de configvariabelen over het algemeen niet veranderen
Ik gebruik het allebei, configfile voor de statische instellingen zoals database gegevens, en een tabel in de db voor de dynamische instellingen die aangepast moeten kunnen worden. En beide lees ik in in een Config class wat een singleton is die overal aan te roepen is.
pi_51892049
quote:
Op vrijdag 27 juli 2007 16:56 schreef Farenji het volgende:

[..]

Ik gebruik het allebei, configfile voor de statische instellingen zoals database gegevens, en een tabel in de db voor de dynamische instellingen die aangepast moeten kunnen worden. En beide lees ik in in een Config class wat een singleton is die overal aan te roepen is.
Een config class om de configuratie op te vragen? Voor iets dat in vijf regeltjes code kan?
pi_51892079
quote:
Op vrijdag 27 juli 2007 16:08 schreef Geqxon het volgende:

[..]

Mwa, userfriendly wil ik het niet noemen, om over de snelheid maar te zwijgen. Het is toch niet zoveel werk om een formulier in elkaar te knutsellen waar gebruikers deze opties kunnen wijzigen?
Een configfile lees je natuurlijk maar 1 keer in, bij initialisatie, en dan stop je alles in een object waarna je het gewoon uit het geheugen trekt. Dat is echt geen performanceissue... van sommige configvars wil je toch niet dat users ze kunnen zien laat staan wijzigen.
pi_51892196
quote:
Op vrijdag 27 juli 2007 16:59 schreef Geqxon het volgende:

[..]

Een config class om de configuratie op te vragen? Voor iets dat in vijf regeltjes code kan?
Die config class hoeft ook niet groot te zijn. Maar je wil het wel scheiden in een object, in een aparte namespace dus, met een uniforme interface om vars uit te lezen, en dynamische vars aan te passen.
Ik spreek je nog wel eens als je echt een applicatie van formaat hebt gemaakt.
pi_51892286
Ik zit ook maar te grappen.

Ben ik trouwens de enige die binnen PHP niet Object Oriented werkt? Ik vind het, mede door het 'loosely typed' karakter van PHP, en het feit dat PHP met een totaal andere gedachtengang ontwikkeld is, nog niet handig werken.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')