giovedì 14 giugno 2012

Session variables disappearing....

Nel sito a cui sto lavorando mi è capitata una cosa strana.

Dopo aver effettuato il login, venivo buttata fuori. Se ripetevo il login, entravo.

Analizzando meglio il problema mi sono accorta che in alcune pagine la mia sessione c'era. In altre no.
Sapete cos'era?  Il dominio.
Io per rapidità chiamo pippo.com, ma poi i miei redirect sono impostati con www.pippo.com.
Peccato che la sessione dipende fortemente da come hai chiamato il dominio. Anche se è apparentemente uguale, la sessione si perde se chiami il tuo sito in maniera diversa.

Soluzione: mettere nell'htaccess queste istruzioni



RewriteCond %{HTTP_HOST} !^www\.pippo\.it
RewriteRule ^(.*)$ http://www.pippo.it/$1 [R=permanent,L]

mercoledì 30 maggio 2012

Tutorial jquery for slideshow

Per chi come me trova più interessante creare da zero piuttosto che prendere cose già fatte, un bel tutorial che spiega come funzionano le gallerie di foto in slideshow!
Un po' complesso perchè incrocia uno slide orizzontale e uno verticale, ma nel complesso molto utile!
http://www.queness.com/post/443/jquery-image-gallerynews-slider-with-caption-tutorial

martedì 29 maggio 2012

LIST FTP not working on windows 7

Ho scoperto perchè non riuscivo a lavorare via FTP dal  mio pc su un sito. Ho dato la colpa a router, server ftp, santi e angeli... e poi la soluzione era più semplice del previsto!

Pannello di controllo > Windows Firewall > Consenti programma o funzionalità con Windows Firewall


Cerchi il programma che stai usando (nel mio caso FireFTP) e aggiungi le spunte sulla colonna "Pubblica"

lunedì 23 aprile 2012

z-index bug on IE7

Internet explorer non finisce mai di stupirmi: oggi scopro che la proprietà z-index non viene minimamente considerata .... ma neanche ci prova!!
Per fortuna ho trovato una chiarissima spiegazione in questo blog: http://brenelz.com/blog/squish-the-internet-explorer-z-index-bug/.

Praticamente quando posizioniamo un elemento (es. position:relative) internet explorer gli assegna un nuovo z-index pari a 0. Bah ...
La soluzione è simpatica: dare all`elemento parent uno z-indez ancora più alto! E funziona!

domenica 22 aprile 2012

Jquery rtrigger event on resize of window

Quelli del Jquery ne sanno una più del diavolo: questa funzione mi ha letteralmente risparmiato ore e ore di tempo!


Unwanted margin bottom on images (Internet Explorer)

Pensavo di fare un blog per raccogliere la mia breve ma intensa esperienza con il web desing e web programming ... invece mi trovo a scrivere un tema su quanto odio Internet Explorer!
Per chi come me si è trovato dei margini insulsi sotto alle immagini visualizzando le proprie pagine in Internet Explorer, la risposta è scritta qui: http://www.webmasterworld.com/forum83/8013.htm


img{
display:block;
}


e fate attenzione a non lasciare un "vertical-align:top", come ho fatto io, altrimenti non funziona!

venerdì 20 aprile 2012

Table width not working on IE

La prossima volta che perdo ore a capire come mai Internet Explorer non capisce il significato di width:50% in una cella di una tabella, ricordatemi di leggere questo post e inserire una magica proprietà css alla mia tabella:

table-layout: fixed;


lunedì 16 aprile 2012

HTML maps on images

So che potrà sembrare vecchio stile ma...
ecco  un comodo strumento on line per creare le mappe sulle nostre immagini!


L'ho usato stasera per la classica mappa sull'Italia, devo aver perso almeno 2/3 diottrie ma il risultato è stato soddisfacente! ;)

IE7 slow in manipulating HTML DOM

Ma perchè ogni volta che apro la mia web application su Internet Explorer mi tocca passare per una ragazza poco fine... 

La novità di oggi è una lentezza tremenda nel manipolare gli elementi HTML della mia pagina in seguito ad una chiamata ajax che ritorna un json.

Dopo aver commentato gradualmente circa 300 righe di codice javascript, ho trovato finalmente l'istruzione che inchioda definitivamente il caro vecchio IE.

$('.'+oggetto).children(".details").append("<span>"+status+"</span><br />");

La sostituzione di append con il caro vecchio innerHTML non è servita a niente, per la cronaca.
Nemmeno evitare quella minima ricorsione che c'è ha avuto effetto:
$('.'+oggetto).children(".details").html("<span>"+status+"</span><br />");


Concatenare la stringa alla fine del ciclo e fare l'append alla fine ha ridotto abbastanza i tempi ma non in maniera sufficiente.


La soluzione? Nessuna soluzione. 
Ho cercato una via alternativa di mostrare i dati.


Thank you Mr. Internet Explorer


Central alignment solution


(function ($) {
  $.fn.ObjectAlign = function() {
      return this.each(function(i){
       
        var ah = $(this).height();
        var ph = $(this).parent().height();
        var mh = Math.ceil((ph-ah) / 2);
        var aw = $(this).width();
        var pw = $(this).parent().width();
          
        if(Math.ceil(aw)>Math.ceil(pw)){
            pw=aw;
            $(this).parent().width(aw);
        }
        var mw = Math.ceil((pw-aw) / 2);
        $(this).css('top', mh);
        $(this).css('left', mw);  
                
      });
  };
})(jQuery);


Questo è il plugin che mi ha salvata durante la spasmodica ricerca di una soluzione al mio problema: non si può centrare verticalmente un elemento TD che come attributo css "display:inline-block". (No, nemmeno vertical-align:middle!)
Questo attributo mi serviva perchè all'interno dei miei TD dovevo posizionare una immagine in alto a destra e quindi al td metto "position:relative" e all'immagine "position:absolute".
Per far questo, la proprietà "display:inline-block" è fondamentale, ma su Firefox non permette alcun tipo di allineamento verticale, nemmeno usando margin-top.


Quindi ho deciso di mettere al mio testo da centrare la proprietà "position:absolute" e ci pensa il plugin sopra a metterlo nella posizione giusta! Il plugin originale è qui, io l'ho adattato perchè faccia anche allineamento orizzontale e controllo dell'overflow del contenuto!


Wheeeew! 

venerdì 13 aprile 2012

Ragioniamo...
Ho una tabella che deve avere per forza 


td{
    position:relative;
    display:inline-block;
    height:55px;
    margin-right:1px;
    margin-left:1px;
    width:auto;
    min-width:75px;
    vertical-align:middle;  
}





td 1
td 2td 3


Tutto bene se non che nella mia interfaccia vertical-align:middle non funziona!
Eppure la mia cella è definita come inline-block e secondo questo articolo dovrebbe funzionare alla perfezione!
Quindi siccome la classe è la stessa di questo esempio, il problema risiede da qualche altra parte!

giovedì 12 aprile 2012

Css position relative/absolute in td.

La prima cosa che devo ricordarmi assolutamente prima di strippare ancora con immagini che galleggiano per il browser è che


Firefox e Internet explorer vogliono le celle di una tabella con la proprietà


 display:block 

per interpretare correttamente le proprietà position (relative, absolute ecc)


Quindi



td.test{
   display:block;
   position:relative;
   border:1px solid blue;
   height:60px;
   width:150px;
}
td.test div{
   position:absolute;
   top:10px;
   left:20px;
   border:1px solid red;
   width:150px;
   height:30px;
}




<table>
   <tr>
     <td class="test">&nbsp;<br />
         <div>&nbsp;</div>
     </td>
   </tr>
</table>

Risulta così: