You asked for it... :')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. :)
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 | 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é</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; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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; } ?> |
Dat blijf je altijd houdenquote:Op donderdag 26 juli 2007 16:38 schreef wonderer het volgende:
Dit voelt echt net als iemand een verhaal laten lezenBen 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
opgelöst!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: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?
1 2 3 4 5 | session_start(); $_SESSION["Voornaam"] = "Dieter"; ?> |
1 2 3 4 5 6 | session_start(); echo $_SESSION["Voornaam"]; // Dieter ?> |
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 | 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> » ' . $forum['forum_subject'] . ': '; $breadcrumb_html .= '<a href="forum.php?c=forum&id='.$subforum['forum_ID'].'">'.$subforum['forum_subject'].'</a> » '; $breadcrumb_html .= stripslashes($topic['forum_subject']); return $breadcrumb_html; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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> » ' . $forum['forum_subject'] . ': '; $breadcrumb_html .= '<a href="forum.php?c=forum&id='.$subforum['forum_ID'].'">'.$subforum['forum_subject'].'</a> » '; $breadcrumb_html .= stripslashes($topic['forum_subject']); return $breadcrumb_html; } ?> |
1 2 3 4 | $format = '<a href="forum.php">Griezelforum</a> » %s <a href="forum.php?c=forum&id=%s">&s</a> » %s'; $breakcrumb_html = sprintf($format, $forum['forum_subject'], $subforum['forum_ID'], $subforum['forum_subject'], stripslashes($topic['forum_subject']);); ?> |
Dat is inderdaad een stuk netter.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 vanzelfquote:Op donderdag 26 juli 2007 18:11 schreef super-muffin het volgende:
ik vind de html opbouwen met sprintf() netter dan dit.
[ code verwijderd ]
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.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?
HTML in je code is verre van net. Het hoort er niet. Daar zijn template engines voor.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 ]
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.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.
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.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...
Ook voor een functie die puur gebaseerd voor het outputten van HTML bestaat?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 enginequote: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.
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).quote:Op donderdag 26 juli 2007 20:56 schreef SuperRembo het volgende:
[..]
PHP is een prima template engine
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.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).
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()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?
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.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()
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |