Vapaa kuvaus

Harrastuksena www-suunnittelu, ristikoiden ratkonta ja kuntoliikunta. Digipiirtämistäkin pitäisi ehtiä harrastamaan, mutta se on jäänyt.

Aloituksia

267

Kommenttia

7703

  1. Tämä+kommentti+jäi+huomioimatta+kun+tuli+kirjoitettua+loppuun+(tämä+on+sisäkkäisten+kommenttien+perusongelma).Tavallaan+tutkin,+onko+evästeeni+olemassa+tällä+koodilla:elseif(!isset($_COOKIE["intro"]))+setcookie......Eikö+järkevintä+ole+kysyä+heti+alkuun,+hyväksyykö+käyttäjä+evästeet+ts.+onko+ennestään+evästeitä+if+(!(count($_COOKIE)+==+0)){//your+code}tai+vainif($_COOKIE){}jos+evästeitä+ei+ole,+$_COOKIE+on+tyhjä+ja+saa+arvon+false.Jos+ennestään++on+evästeitä,+asetetaan+uusi.Jos+evästeitä+ei+hyväksytä,+ei+ole+katastrofi.+Asetukset+vaan+eivät+tallennu+-+ja+intro-tekstiä+pukkaa.Toki+jos+evästeitä+ei+löydy,+voisin+lisätä+koodia+siten,+että+ei+anneta+intro-tekstiä.if(count($_COOKIE)+==+0){taiif(!$_COOKIE){...olisi+olestusasetukset+vähän+eriSivujen+päivitystarve+on+kyllä+olemassa+evästeillä.+Ja+tuon+ikuisen+loopin+saaminen.++Ongelmana+on+tässä+se,+että+sivun+uudelleen+latausta+tarvitaan+vain+kun+on+tietyt+get-parametrit,+mutta+jos+niitä+on+ja+ladataan+sivu+tällöin+uudestaan,+syntyy+se+ikuinen+silmukka+koska+samat+parametrit+on+taas+esillä.+Toki+jos+testaa,+että+kaikki+arvot+on+entiset,+ja+jos+on+entiset+arvot+ja+sitten+ladataan+uudestaan,+ei+synny+silmukkaa.Ehkä+se+ohjeteksti+on+hyvä+ts.+muistutus,+että+käyttäjän+pitää+ladata+sivu+uudestaan,+jos+haluaa+heti+nähdä+muutokset.
  2. Jotta+evästeissä+ja+tietokannassa+olisi+sama+tieto,+jos+evästeet+eivät+ole+oletusarvoissa,+funktiosta+täytyi+tehdä+mutkikkaampi.+Jos+on+kirjautumatta+tehnyt+muutoksia+ja+kirjautuu,+seuraavan+funktion+pitäisi+päivittää+data:Koodi:function+getLayoutSettings($userLayoutSettings_ar){if(is_user_logged_in()){++++if(intval($_COOKIE['sivupalkki'])+===2+||+!(intval($_COOKIE['paavalikonsijainti'])===3)+||+intval($_COOKIE['nuolet'])+===1+||+!(intval($_COOKIE['lisavalikko'])===1))++++{+//+oletusasetuksia+on+muutettu+ja+ne+ovat+evästeissä$userLayoutSettings=$_COOKIE['intro'].','.$_COOKIE['sivupalkki'].','.$_COOKIE['paavalikonsijainti'].','.$_COOKIE['nuolet'].','.$_COOKIE['lisavalikko'];+//+käytetään+evästeitä++++$userLayoutSettings_ar+=+explode(',',+$userLayoutSettings);++++$current_user+=+wp_get_current_user();++++$userLayouts+=+explode(',',+$current_user->user_layout_settings);++++++++if(!($_COOKIE['intro']==$userLayouts[0]+&&+$_COOKIE['sivupalkki']==$userLayouts[1]+&&+$_COOKIE['paavalikonsijainti']==$userLayouts[2]+&&+$_COOKIE['nuolet']+===$userLayouts[3]+&&+$_COOKIE['lisavalikko']==$userLayouts[4]))++++++++{+//+jos+tietokannassa+on+eri+tieto+kuin+evästeissä,+päivitetään+tietokanta+++++++++$updateValue+=+$_COOKIE['intro'].','.$_COOKIE['sivupalkki'].','.$_COOKIE['paavalikonsijainti'].','.$_COOKIE['nuolet'].','.$_COOKIE['lisavalikko'];++++++++update_user_meta($current_user->ID,'user_layout_settings',+$updateValue);++++++++}++++}else{+//+ei+ole+ennestään+tietokannassa+tietoa+tai+se+on+sama+kuin+evästeissä++++$current_user+=+wp_get_current_user();++++$userLayoutSettings=$current_user->user_layout_settings;++++++++if(!$userLayoutSettings){$userLayoutSettings='2,1,3,2,1';}+//+asetetaan+oletustiedot++++$userLayoutSettings_ar+=+explode(',',+$userLayoutSettings);++++}}elseif($_COOKIE['sivupalkki']){//+löytyy+evästeet$userLayoutSettings=$_COOKIE['intro'].','.$_COOKIE['sivupalkki'].','.$_COOKIE['paavalikonsijainti'].','.$_COOKIE['nuolet'].','.$_COOKIE['lisavalikko'];}else{+//+evästeitä+ei+ole+koska+käyttäjä+on+poistanut+ne++++$userLayoutSettings='2,1,3,2,1';}++++$userLayoutSettings_ar+=+explode(',',+$userLayoutSettings);return+$userLayoutSettings_ar;}Tuon+pitäisi+taata+se,+että+jos+muutat+tietoa+kirjautumatta,+muutos+on+voimassa+kun+kirjaudut.+Samoin+jos+kirjaudut,+muutos+on+voimassa+jos+kirjaudut+ulos.+Vain+jos+poistat+evästeet+etkä+kirjaudu,+menetät+asetukset.+Testasin,+että+toimii.