- Home
- Categorie
- Coding e Sistemistica
- PHP
- [PHPBB] Indicizzazione senza Sessioni
-
[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?
-
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
-
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:
-
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
-
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
-
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?
-
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?
-
Si vediamo che dicono di là.
-
@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.
-
Puoi toglierle brutalmente.
Perchè solo se la sessione non c'è funziona, quindi quando uno è loggato la sessione funziona
-
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
-
uppato con una scusa da 4 soldi :D:D
-
@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?
-
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['HTTP_USER_AGENT']; $valore1=$HTTP_USER_AGENT; $risultato1=(stristr($_SERVER['HTTP_USER_AGENT'], 'ie')); print "risultato con http_user_agent=".$valore1 ; print " risultato con server(http_user_agent)=".$valore2; print " esito di stristr(..,'ie')=".$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?
-
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?
-
@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...
-
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?
-
Scusa sono fagiano
-
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?
-
@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.