• User Attivo

    [PHPBB] Indicizzazione senza Sessioni

    mi allaccio a questo thread anche se mi pare che di phpbb si parli diffusamente anche da altre parti : per rimuovere le sessioni e rendere il forum indicizzabile , su phphacks.com consigliano di rimuovere brutalmente la sessione per ogni utente ospite

    #-----[ FIND ]------------------------------------------

    $SID = 'sid=' . $session_id;

    #-----[ REPLACE WITH ]------------------------------------------

    if ( $userdata['session_user_id'] != ANONYMOUS ){
    $SID = 'sid=' . $session_id;
    } else {
    $SID = '';
    }

    In questo modo però i guest non possono più postare sul forum : c'è modo di riconoscere almeno gli spider principali dall'IP e modificare la condizione dell'IF in modo che le sessioni vengano tolte solo in questo caso?


  • Community Manager

    Benvenuto Oronzo.

    Io non faccio firmare i guest.

    Io personalmente per indicizzare il forum faccio puntare i topic infatti

    http://www.giorgiotave.it/forum/viewtopic.php?t=89

    ecco il tool

    http://www.giorgiotave.it/forum/viewtopic.php?t=65

    Ora basta conoscere gli spider e mettere un if

    ecco la lista http://www.robotstxt.org/wc/active/html/index.html


  • User Attivo

    ciao ( sono l'adone79 di html.it 😄 ), però nella lista che mi hai fornito non c'è l'IP di googlebot.. l'if su che condizione dovrei farlo secondo te? :bho:


  • Community Manager

    Si avevo capito che sei tu!

    google ha molti ip forse è meglio bloccarlo dalla useragent

    non so se funziona in teoria si.

    if (stristr($HTTP_USER_AGENT, 'google')){
    $SID = '';
    } else {
    $SID = 'sid=' . $session_id;

    }

    prova e se quando ti colleghi al forum c'è la sessione vuol dire che funziona


  • User Attivo

    ho modificato la condizione dell'if in modo da togliere le sessioni per alcuni spider + diffusi :

    if ((stristr($HTTP_USER_AGENT, 'google')) || (stristr($HTTP_USER_AGENT, 'fast')) || (stristr($HTTP_USER_AGENT, 'slurp')) || (stristr($HTTP_USER_AGENT, 'scooter')) || (stristr($HTTP_USER_AGENT, 'mercator')) || (stristr($HTTP_USER_AGENT, 'teoma')) || (stristr($HTTP_USER_AGENT, 'mediapartners'))){
    $SID = '';
    } else {
    $SID = 'sid=' . $session_id;

    }

    ma qualcosa non va, visto che dai log del sito lo stesso spider di adsense becca ancora le sessioni :

    66.249.65.180 - - [05/Jan/2005:02:02:02 +0100] "GET /forum/viewtopic.php?t=73&sid=c3400500c23020b8c60dc4ed19287bb1 HTTP/1.1" 200 32613 "-" "Mediapartners-Google/2.1"

    non può dipendere dal fatto che Mediapartners può essere scritto con la maiuscola, vero? Mi pare di aver capito che stristr è case-insensitive

    :arrabbiato: :arrabbiato: :arrabbiato:


  • Community Manager

    Mi sa che non è case sensitive.

    Non capisco. Se è solo lo spider di adsense non ci sono problemi. Tanto non ti frega niente gli annunci li deve mostrare lo stesso a tema

    invece gli altri spider che dicono?


  • User Attivo

    beh per ora altri spider non si sono visti : il forum non sta sul dominio principale, ma su un nuovo dominio a pagamento in cui pian piano trasferirò il sito (per ora il PR è basso, anzi nullo.. ma appena posso gli do una bella spinta con una dose massiccia di links ).

    Però anche ADSENSE mi interessa che spiderizzi correttamente il forum.. infatti gli annunci compaiono a tema con le parti di codice fuori dal PHP. 😞

    Adesso provo a postare sul forum php di html , casomai se non mi cagassero.. mi dai qualche pseudo-risposta, giusto per non farmi gli up da solo? :sbonk:


  • Community Manager

    Si vediamo che dicono di là. 🙂


  • User Attivo

    @oronzo_canà said:

    mi allaccio a questo thread anche se mi pare che di phpbb si parli diffusamente anche da altre parti : per rimuovere le sessioni e rendere il forum indicizzabile , su phphacks.com consigliano di rimuovere brutalmente la sessione per ogni utente ospite

    #-----[ FIND ]------------------------------------------

    $SID = 'sid=' . $session_id;

    #-----[ REPLACE WITH ]------------------------------------------

    if ( $userdata['session_user_id'] != ANONYMOUS ){
    $SID = 'sid=' . $session_id;
    } else {
    $SID = '';
    }

    In questo modo però i guest non possono più postare sul forum : c'è modo di riconoscere almeno gli spider principali dall'IP e modificare la condizione dell'IF in modo che le sessioni vengano tolte solo in questo caso?
    Non ho capito bene. Se io tolgo di brutto le session a cosa vado incontro? Non è che poi gli iscritti devono continuamente rifare il login?
    Non ho capito cosa cambia.
    Scusate ma sono alle prime armi e di programmazione so ben poco.
    Grazie.


  • Community Manager

    Puoi toglierle brutalmente.

    Perchè solo se la sessione non c'è funziona, quindi quando uno è loggato la sessione funziona


  • User Attivo

    su html/forum/php non rispondono, hanno una sorta di repulsione radical-chic per phpbb e tutto ciò che non è costruito a mano riga dopo riga 😛 😛 😛


  • User Attivo

    uppato con una scusa da 4 soldi :D:D


  • Super User

    @oronzo_canà said:

    su html/forum/php non rispondono, hanno una sorta di repulsione radical-chic per phpbb e tutto ciò che non è costruito a mano riga dopo riga 😛 😛 :Pin effetti anche io...
    Cioè... Se si deve programmare che bello c'è in tutte le cose già preparate?
    Ad ogni modo... Se avete fatto una ricerca (non penso) avrete notato questo...

    Returns all of haystack from the first occurrence of needle to the end. needle and haystack are examined in a case-insensitive manner.

    in questa pagina:
    http://www.php.net/stristr

    @giò: spammizzi l'altro forum? 😄


  • User Attivo

    allora, ho un po' di risultati contraddittori da discutere:

    ho provato a modificare lo script in base alla [url=http://forum.html.it/forum/showthread.php?s=&threadid=768379&highlight=sessioni+forum+user+agent]risposta dal forum di html.it , ma l'user agent riconosciuto è lo stesso , come si vede anche da [url=http://www.ingegneria-elettronica.com/forum/prova.php]questa pagina di prova

    Il problema sembra essere piuttosto la funzione stristr : lo script è questo

    <? $valore2=$_SERVER&#91;'HTTP_USER_AGENT'&#93;;  
    $valore1=$HTTP_USER_AGENT; 
    $risultato1=&#40;stristr&#40;$_SERVER&#91;'HTTP_USER_AGENT'&#93;, 'ie'&#41;&#41;;
    print "risultato con http_user_agent=".$valore1 ;
    print  "
    risultato con server&#40;http_user_agent&#41;=".$valore2;
    print  "
    esito di stristr&#40;..,'ie'&#41;=".$risultato;
    ?>
    

    e restituisce l'esito della funzione stristr, ma è vuoto ( in questo caso cerca le occorrenze di ie quindi per testarlo usate explorer ).

    Quindi google è passato e ha indicizzato pagine con le sessioni, come si evince anche [url=http://www.ingegneria-elettronica.com/report.html]report ricavato dal log del mio sito. Poi però vado a controllare e le pagine sono presenti nella cache di Goolge senza sessioni (controllate per i post "domande d'esame" che sono linkati nella home del [url=http://digilander.libero.it/ing.elettronica]mirror principale.

    Secondo voi come si spiega? Google è in grado di riconoscere le sessioni ed eliminarle dall'url? :mmm:


  • User Attivo

    come, non detto.. la funzione stristr funziona correttamente : mi ero dimenticato un "1" in fondo alla variabile $risultato.

    Resta il problema che le pagine sono indicizzate con le sessioni e restituite in cache senza: secondo voi come si spiega?


  • Super User

    @oronzo_canà said:

    come, non detto.. la funzione stristr funziona correttamente : mi ero dimenticato un "1" in fondo alla variabile $risultato.

    Resta il problema che le pagine sono indicizzate con le sessioni e restituite in cache senza: secondo voi come si spiega?
    Ehm... una cosa: quando inizializzi valore1, gli dai $HTTP_USER_AGENT... correggi...

    Cmq devi usare le variabili come $_SERVER perchè sono globali... e le altre forse non ti vanno perchè hai un php recente...


  • User Attivo

    scusa, ma è quello che volevo fare : ad una do $http_user_agent , all'altra $server[ecc ecc perché volevo vedere se c'erano differenze di comportamento e se l'errore nel lasciare le sessioni dipendesse da quello. no? :mmm:


  • Super User

    Scusa sono fagiano 😄


  • User Attivo

    va beh, accertato che non dipendeva da quello.. secondo voi come caspita devo fare per riconoscere il bot di Google?

    E come si spiega il fatto che le pagine siano indicizzate con le sessioni, ma presenti in cache senza?


  • User Attivo

    @oronzo_canà said:

    per rimuovere le sessioni e rendere il forum indicizzabile , su phphacks.com consigliano di rimuovere brutalmente la sessione per ogni utente ospite

    #-----[ FIND ]------------------------------------------

    $SID = 'sid=' . $session_id;

    #-----[ REPLACE WITH ]------------------------------------------

    if ( $userdata['session_user_id'] != ANONYMOUS ){
    $SID = 'sid=' . $session_id;
    } else {
    $SID = '';
    }

    In questo modo però i guest non possono più postare sul forum : c'è modo di riconoscere almeno gli spider principali dall'IP e modificare la condizione dell'IF in modo che le sessioni vengano tolte solo in questo caso?

    Il problema di questa modifica sta solamente nel non permettere ai guest di postare nuovi messaggi? Se così fosse io non avrei nessun problema in quanto i guast non li faccio mai postare.
    Eseguendo questa modifica favorisco l'indicizzazione del forum o la penalizzo?

    Noto, e ne sarai ben felice, che il tuo forum Giorgio è molto ben indicizzato. Spesso cercando su google mi ritrovo su questo forum, anzi mi ritrovo anche su discussioni specifiche ed a volte anche su pagine della funzione cerca.
    Che modifiche hai fatto? Hai fatto quella qui proposta? Oppure ne hai fatte delle tue ad hoc?

    Grazie, Ciao.