login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Functie en cookie

Offline X3ore - 29/06/2006 16:03 (laatste wijziging 29/06/2006 16:04)
Avatar van X3oreHTML interesse Hoi, ik ben bezig aan een soort van template systeem zodat ik snel de kleur van de website enzo kan veranderen..

Als de cookie bestaat geeft hij geen output, bestaat hij niet neemt hij ook niet de standaard waarden mee..

  1. <?PHP $theme = $_COOKIE['theme'];
  2. $theme_default = "purple"; //purlple, green, blue
  3.  
  4. function getTheme()
  5. {
  6. if(empty($theme)){
  7. $return = $theme_default; //vooraf ingesteld template
  8. }
  9. else {
  10. $return = $theme; //de cookie
  11. }
  12.  
  13. return $return;
  14. }
  15.  
  16. $site_theme = getTheme();?>


En zo plaats ik hem dan in m'n pagina:
  1. <?PHP echo "<img src=\"styles/".$site_theme."/images/gfx_01.gif\" alt=\"\" />";?>


Maar als je dan de site bekijkt en dan de bron checkt zie je dit:
  1. <img src="styles//images/gfx_01.gif" alt="" />


Kan iemand helpen? 
Bedankt

3 antwoorden

Gesponsorde links
Offline Gerard - 29/06/2006 16:05
Avatar van Gerard Ouwe rakker Je probeert binnen je functie een variabele te controleren die niet in de scope van de functie zit. Je zult ze dus als parameter door moeten geven aan de functie of in moeten laden dmv global.

  1. function getTheme()
  2. {
  3.  
  4. global $theme, $theme_default;
  5.  
  6. if(empty($theme)){
  7. $return = $theme_default; //vooraf ingesteld template
  8. }
  9. else {
  10. $return = $theme; //de cookie
  11. }
  12.  
  13. return $return;
  14. }
Offline Simon - 29/06/2006 16:08 (laatste wijziging 29/06/2006 16:20)
Avatar van Simon PHP expert dit kan volgens mij veel sneller dan die function
en ik denk dat isset beter is
  1. $site_theme = (isset($_COOKIE['theme'])) ? addslashes($_COOKIE['theme']) : 'purple' ;

dan is die function niet nodig en dus sneller

  1. <?PHP echo "<img src=\"styles/".$site_theme."/images/gfx_01.gif\" alt=\"\" />";?>

kan ook sneller/beter
  1. <?='<img src="styles/'.$site_theme.'/images/gfx_01.gif" alt="Plaatje kan niet gevonden worden" />';?>

of zelfs (als je helemaal geen html wil echo'en)
  1. <img src="styles/<?=$site_theme?>/images/gfx_01.gif" alt="Plaatje kan niet gevonden worden" />

probeer het zo eens

@fangorn hieronder: is hetgeen jij zegt niet hetzelfde als hetgeen ik zei 
Offline Thomas - 29/06/2006 16:18
Avatar van Thomas Moderator Die functie getTheme is vrij loos, je zou hem gewoon achterwege kunnen laten, en bij het bepalen van de stijl het riedeltje afdraaien (cookie geset? zoja - controleer of dit een bestaande stijl is, zonee - selecteer de default stijl).

Je gaat dit (het instellen van en het schakelen tussen stijlen) toch niet op meerdere plaatsen regelen, dus heb je hier niet echt een functie voor nodig.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.257s