Pagina 3 di 4 PrimoPrimo 1234 UltimoUltimo
Visualizzazione risultati 61 fino 90 di 102

Discussione: Mettere nel sito "I più visti"

  1. #61
    Guest

    Predefinito

    I colori dei link aggiustali solo tramite css...

    Se la funzione contatore() la richiami dopo piu_visitate() la visita corrente non viene conteggiata nella lista

  2. #62
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    I colori dei link aggiustali solo tramite css...

    Se la funzione contatore() la richiami dopo piu_visitate() la visita corrente non viene conteggiata nella lista
    contatore() viene dopo più_visitate(), eppure mi conteggia la home tutte le volte
    Codice PHP:
    ...
    <!--MENU DX-->
    <?php
    include("menuDX.php"); // IN QUESTO FILE C'è include("visitate.php"); CHE A SUA VOLTA CONTIENE piu_visitate(4);
    ?>
    <!--FINE MENU DX-->
    </div> <!-- container -->
    <?php
    contatore
    ("Home");
    ?>
    </body>
    </html>
    Ultima modifica di gruppoalveo : 30-03-2014 alle ore 22.05.27

  3. #63
    Guest

    Predefinito

    Lo script lavora in questo ordine:

    Legge nel db il numero di visite

    Crea la lista

    Aumenta il numero nel db...

    E poi, se tra un po riceverai 1000 visite al giorno, un numero in più non farà la differenza

  4. #64
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Lo script lavora in questo ordine:

    Legge nel db il numero di visite

    Crea la lista

    Aumenta il numero nel db...

    E poi, se tra un po riceverai 1000 visite al giorno, un numero in più non farà la differenza
    Se si può sistemare è meglio, vorrei un conteggio realistico

  5. #65
    Guest

    Predefinito

    Il css è a posto, ora si tratta ancora di 2 cose: se puoi sistemarmi il problema "home" e poi come vedi appare sempre 1 vicino al link, bisognerebbe fare 1,2,3,4.
    <ol> potrebbe andar bene, ma sposta a destra tutto

    Codice PHP:
    function piu_visitate($n) {
    $mysqli = new mysqli("localhost", "root", "root", "gruppoalveo");
    $visti = $mysqli->query("SELECT * FROM visitate ORDER BY visite DESC LIMIT 0,$n");
    if (
    $visti->num_rows > 0) {
    while (
    $link = $visti->fetch_array(MYSQLI_ASSOC)) {
    echo
    "<div style=\"background-color:#f0f7f7; margin-bottom:5px; line-height:22px; text-align:left; font-size:12px; color:#437e7e;\">&nbsp;&nbsp;1.&nbsp;&nbsp;<a class=\"visti\" href='" . $link['url'] . "'>" . $link['pagina'] . "</a></div>";
    }
    }
    }
    piu_visitate(4);
    ?>
    Ultima modifica di gruppoalveo : 31-03-2014 alle ore 01.11.11

  6. #66
    Guest

    Predefinito

    Puoi modificare margin e padding di ol e li per spostarli a sinistra, se vuoi fare con i div dammi tutta la funzione che te la metto a posto... (io sono fissato con la semantica, è un colpo al cuore per me vedere qui div per una lista )
    Per quel problema della visita in più penso questa sera come risolvere
    Ultima modifica di tampertools : 31-03-2014 alle ore 07.04.22

  7. #67
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Puoi modificare margin e padding di ol e li per spostarli a sinistra, se vuoi fare con i div dammi tutta la funzione che te la metto a posto... (io sono fissato con la semantica, è un colpo al cuore per me vedere qui div per una lista )
    Per quel problema della visita in più penso questa sera come risolvere
    In un qualche modo sono riuscito a combinare <ol> e css. Ora si tratta di togliere il contatore alla home quando si entra da lì, questo è tutto il codice.

    Codice PHP:
    //Mette i dati nel DB e aumenta il contatore ad ogni visita
    function contatore($title) {
    $mysqli = new mysqli("localhost", "root", "pwd", "gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }

    //Estrae i dati dal DB e crea la sequenza delle pagine più viste
    function piu_visitate($n) {
    $mysqli = new mysqli("localhost", "root", "pwd", "gruppoalveo");
    $visti = $mysqli->query("SELECT * FROM visitate ORDER BY visite DESC LIMIT 0,$n");
    if (
    $visti->num_rows > 0) {
    echo
    "<ol class=\"formol\"'piu_visitate'>";
    while (
    $link = $visti->fetch_array(MYSQLI_ASSOC)) {
    echo
    "<li>";
    echo
    "<a class=\"visti\" href='" . $link['url'] . "'>" . $link['pagina'] . "</a>";
    echo
    "</li>";
    }
    echo
    "</ol>";
    }
    }
    piu_visitate(4);
    ?>
    Nella home:
    Codice PHP:

    </div> <!-- container -->
    <?php
    contatore
    ("Home");
    ?>
    </body>
    </html>
    Ultima modifica di gruppoalveo : 31-03-2014 alle ore 14.06.33 Motivo: Aggiornamento

  8. #68
    Guest

    Predefinito

    Il "problema della Home" è che non vuoi che venga contata se, ad esempio, un utente ci arriva da Google?

  9. #69
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Il "problema della Home" è che non vuoi che venga contata se, ad esempio, un utente ci arriva da Google?
    Non deve essere contata se l'utente ci entra da un motore, oppure se digita l'url. Il conteggio della home deve salire solo se l'utente, essendo già nel mio sito, ha deciso di riguardarla.

  10. #70
    Guest

    Predefinito

    Prova così: il contatore considera solo se l'utente arriva da uno dei siti che ci sono nell'arrat $whitelist
    Se vuoi che funzioni anche quando l'utente arriva scrivendo a mano l'url nel browser devi aggiungere un link vuoto ( "" )

    Codice PHP:
    //Mette i dati nel DB e aumenta il contatore ad ogni visita
    function contatore($title) {
    $continua = false;
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    //Qui metti i siti che possono essere considerati nel contatore
    $whitelist = array(
    "www.gruppoalveo.altervista.org",
    "gruppoalveo.altervista.org"
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "root", "pwd", "gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }

  11. #71
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Prova così: il contatore considera solo se l'utente arriva da uno dei siti che ci sono nell'arrat $whitelist
    Se vuoi che funzioni anche quando l'utente arriva scrivendo a mano l'url nel browser devi aggiungere un link vuoto ( "" )

    Codice PHP:
    //Mette i dati nel DB e aumenta il contatore ad ogni visita
    function contatore($title) {
    $continua = false;
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    //Qui metti i siti che possono essere considerati nel contatore
    $whitelist = array(
    "www.gruppoalveo.altervista.org",
    "gruppoalveo.altervista.org"
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "root", "pwd", "gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }
    C'è qualcosa che non va, nel DB non aggiorna anche se clicc o su altre pagine

  12. #72
    Guest

    Predefinito

    Dopo
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    aggiungi
    Codice PHP:
    echo "($from)";
    e vediamo cosa salta fuori. ..

  13. #73
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Dopo
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    aggiungi
    Codice PHP:
    echo "($from)";
    e vediamo cosa salta fuori. ..
    Non funziona bene: se entro da fuori, il db mi segna 2 visite, se invece sono dentro e ci clicc o sopra non aggiorna il db.

  14. #74
    Guest

    Predefinito

    Ho capito, hai aggiunto quell echo? Serve per capire dove sta il problema

  15. #75
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Ho capito, hai aggiunto quell echo? Serve per capire dove sta il problema
    Si, come puoi vedere da errore alla linea 20

    Codice PHP:
    function contatore($title) {
    $continua = false;
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"]; //<--------------LINEA 20
    echo "($from)";
    //Qui metti tutte le pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi nel mio sito ci clicca su, ovviamente il contatore del db sale)
    $whitelist = array(
    "http://gruppoalveo.altervista.org/index.php",
    "" //Questo anche quando l'utente vi arriva scrivendo a mano qualsiasi url del mio sito nella SUA barra degli indirizzi
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "gruppoalveo", "root", "my_gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }

  16. #76
    Guest

    Predefinito

    Prova a sostituire questo
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    echo
    "($from)";
    Con questo
    Codice PHP:
    $from = $_SERVER["HTTP_REFERER"];
    echo
    $from;
    $from = parse_url($from);
    print_r($from);

  17. #77
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Prova a sostituire questo
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    echo
    "($from)";
    Con questo
    Codice PHP:
    $from = $_SERVER["HTTP_REFERER"];
    echo
    $from;
    $from = parse_url($from);
    print_r($from);
    Va meglio, ma ancora un errore e non conta nel db, prova anche a cliccare su qualche pagina.

    Codice PHP:
    function contatore($title) {
    $continua = false; //-----------LINEA 19
    $from = $_SERVER["HTTP_REFERER"];
    echo
    $from;
    $from = parse_url($from);
    print_r($from);
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "http://gruppoalveo.altervista.org",
    "gruppoalveo.it",
    "" //Questo anche quando l'utente vi arriva scrivendo a mano qualsiasi url del mio sito nella SUA barra degli indirizzi
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "gruppoalveo", "pwd", "my_gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }
    Ultima modifica di gruppoalveo : 01-04-2014 alle ore 13.01.40

  18. #78
    Guest

    Predefinito

    Per togliere l'errore sostituisci
    Codice PHP:
    $from = $_SERVER["HTTP_REFERER"];
    echo
    $from;
    $from = parse_url($from);
    print_r($from);
    Con
    Codice PHP:
    if (isset($_SERVER["HTTP_REFERER"]) && $_SERVER["HTTP_REFERER"] != "") {
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    }
    else {
    $from = "";
    }
    echo
    "($from)";
    Inoltre nella whitelist non mettere "http://gruppoalveo.altervista.org", tanto la funzione parse_url toglie l http da davanti.
    Metti invece sia "www.gruppoalveo.altervista.org" che "gruppoalveo.altervista.org" che sono i due indirizzi che i tuoi visitatori useranno di più
    Ultima modifica di tampertools : 01-04-2014 alle ore 15.35.12

  19. #79
    Guest

    Predefinito

    E' ancora tutto come prima

    Codice PHP:
    function contatore($title) {
    $continua = false;
    if (isset(
    $_SERVER["HTTP_REFERER"]) && $_SERVER["HTTP_REFERER"] != "") {
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    }
    else {
    $from = "";
    }
    echo
    "($from)";
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "www.gruppoalveo.altervista.org",
    "gruppoalveo.altervista.org",
    "www.gruppoalveo.it",
    "gruppoalveo.it",
    "" //Questo anche quando l'utente vi arriva scrivendo a mano qualsiasi url del mio sito nella SUA barra degli indirizzi
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "gruppoalveo", "pwd", "my_gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }

  20. #80
    Guest

    Predefinito

    Non l'ho mai provato, ma prova a sostituire questa riga
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    Con
    [PHP]
    $from = parse_url($_SERVER["HTTP_REFERER"]);
    $from = $from["host"];

  21. #81
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Non l'ho mai provato, ma prova a sostituire questa riga
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"])["host"];
    Con
    Codice PHP:
    $from = parse_url($_SERVER["HTTP_REFERER"]);
    $from = $from["host"];
    Se tolgo echo "($from)"; non da errori ma mi conteggia la home nel db quando entro, praticamente è come il codice originale.

    Codice PHP:
    function contatore($title) {
    $continua = false;
    if (isset(
    $_SERVER["HTTP_REFERER"]) && $_SERVER["HTTP_REFERER"] != "") {
    $from = parse_url($_SERVER["HTTP_REFERER"]);
    $from = $from["host"];
    }
    else {
    $from = "";
    }
    //echo "($from)";
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "www.gruppoalveo.altervista.org",
    "gruppoalveo.altervista.org",
    "www.gruppoalveo.it",
    "gruppoalveo.it",
    "" //Questo anche quando l'utente vi arriva scrivendo a mano qualsiasi url del mio sito nella SUA barra degli indirizzi
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "gruppoalveo", "pwd", "my_gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }
    Scusa, perché fai togliere http://? Uno può anche digitarlo.
    Ultima modifica di gruppoalveo : 02-04-2014 alle ore 01.15.24 Motivo: Aggiornamento

  22. #82
    Guest

    Predefinito

    Faccio togliere l'http:// per via della funzione parse_url...

    Non so perché ma quando uno arriva da Google la variabile $_SERVER["HTTP_REFERER"] (quella che indica da dove arriva l'utente) è vuota...
    Prova a guardare se cercando il tuo sito in un altro motore di ricerca (ad es yahoo o Bing) lo conteggia lo stesso

    echo "($from)" mi serviva proprio per vedere perché non andava

  23. #83
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Faccio togliere l'http:// per via della funzione parse_url...

    Non so perché ma quando uno arriva da Google la variabile $_SERVER["HTTP_REFERER"] (quella che indica da dove arriva l'utente) è vuota...
    Prova a guardare se cercando il tuo sito in un altro motore di ricerca (ad es yahoo o Bing) lo conteggia lo stesso

    echo "($from)" mi serviva proprio per vedere perché non andava
    Ho fatto delle prove con Google, Bing e Yahoo: se entro nella home, non conteggia nel db e nella home stampa il nome del motore tra le parentesi, se invece sono già nel mio sito e entro nella home, lo conteggia. Non ho ancora capito la faccenda di parse_url

    Codice PHP:
    function contatore($title) {
    $continua = false;
    if (isset(
    $_SERVER["HTTP_REFERER"]) != "") {
    $from = parse_url($_SERVER["HTTP_REFERER"]);
    $from = $from["host"];
    }
    else {
    $from = "";
    }
    echo
    "($from)";
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "www.gruppoalveo.altervista.org",
    "gruppoalveo.altervista.org",
    "www.gruppoalveo.it",
    "gruppoalveo.it",
    "" //Questo anche quando l'utente vi arriva scrivendo a mano qualsiasi url del mio sito nella SUA barra degli indirizzi
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "gruppoalveo", "pwd", "my_gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }

    //Estrae i dati dal DB e crea la sequenza delle pagine più viste
    function piu_visitate($n) {
    $mysqli = new mysqli("localhost", "gruppoalveo", "root", "my_gruppoalveo");
    $pag_viste = $mysqli->query("SELECT * FROM visitate ORDER BY visite DESC LIMIT 0,$n");
    if (
    $pag_viste->num_rows > 0) {
    echo
    "<ol class=\"formol\"'piu_visitate'>";
    while (
    $link = $pag_viste->fetch_array(MYSQLI_ASSOC)) {
    echo
    "<li>";
    echo
    "<a class=\"visti\" href='".$link['url']."'>".$link['pagina']."</a>";
    echo
    "</li>";
    }
    echo
    "</ol>";
    }
    }
    piu_visitate(4);
    ?>
    Ultima modifica di gruppoalveo : 03-04-2014 alle ore 12.28.12

  24. #84
    Guest

    Predefinito

    Quindi ora funziona?

    Parse url serve a questo:
    Il contatore deve contare solo se l'utente arriva da una pagina del tuo sito. Ma le paginesono tante, ssarebbe lungo scrivele tutte in $whitelist. E allora io recupero solo l'url del sito senza le informazioni su protocollo, pagina e variabile e porta
    Quindi ad esempio...
    da ottengo
    http://www.gruppoalveo.altervista.org/home.php www.gruppoalveo.altervista.org
    https://www.google.it:433/search.php?q=gruppoalveo www.google.it
    ... ...
    Ultima modifica di tampertools : 02-04-2014 alle ore 14.24.59

  25. #85
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    Quindi ora funziona?

    Parse url serve a questo:
    Il contatore deve contare solo se l'utente arriva da una pagina del tuo sito. Ma le paginesono tante, ssarebbe lungo scrivele tutte in $whitelist. E allora io recupero solo l'url del sito senza le informazioni su protocollo, pagina e variabile e porta
    Quindi ad esempio...
    da ottengo
    http://www.gruppoalveo.altervista.org/home.php www.gruppoalveo.altervista.org
    https://www.google.it:433/search.php?q=gruppoalveo www.google.it
    ... ...
    Ora funziona, perciò posso togliere echo "($from)";. Io il mio sito l'ho messo anche nei Preferiti, se ci clicco da li, il contatore sale, non si può evitare?
    In locale invece mi segna 2 volte ogni entrata esterna, poi quando sono dentro non segna più niente localhost:8888/MIEI%20SITI/Alveo

    Domanda: se l'utente nel suo browser digita http://gruppoalveo.altervista.org come fa ad arrivare a me visto che parse_url toglie http://?
    Ultima modifica di gruppoalveo : 02-04-2014 alle ore 21.20.28 Motivo: Aggiornamento

  26. #86
    Guest

    Predefinito

    In locale non ti funziona perché l'url non è piu gruppoalveo.altervista.org ma localhst.

    Per togliere il contatore se uno arriva dai preferiti devi togliere dall array $whitelist "".

    Per la tua domanda: parse_url lavora su una STRINGA contenente l'url della pagina cda cui arriva l'utente

  27. #87
    Guest

    Predefinito

    Citazione Originalmente inviato da tampertools Visualizza messaggio
    In locale non ti funziona perché l'url non è piu gruppoalveo.altervista.org ma localhst.

    Per togliere il contatore se uno arriva dai preferiti devi togliere dall array $whitelist "".

    Per la tua domanda: parse_url lavora su una STRINGA contenente l'url della pagina cda cui arriva l'utente
    Ok, ora sembra tutto a posto, quando aggiorno qualsiasi pagina il contatore sale, però questo mi sembra logico perché è come che dal mio sito entro nella pagina stessa. L'unica cosa che non va è in locale, i codici sono identici, cambia solo questo

    Codice PHP:
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "localhost:8888/MIEI SITI/Alveo/index.php",
    );
    ...
    Questo è il codice completo

    Codice PHP:
    //Mette i dati nel DB e aumenta il contatore ad ogni visita
    function contatore($title) {
    $continua = false;
    if (isset(
    $_SERVER["HTTP_REFERER"]) != "") {
    $from = parse_url($_SERVER["HTTP_REFERER"]);
    $from = $from["host"];
    }
    else {
    $from = "";
    }
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "localhost:8888/MIEI SITI/Alveo/index.php",
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    if (
    $continua) {
    $mysqli = new mysqli("localhost", "root", "pwd", "gruppoalveo");
    $url = $_SERVER['PHP_SELF'];
    $esiste = $mysqli->query ("SELECT * FROM visitate WHERE url='$url'");
    if (
    $esiste->num_rows == 0) {
    $mysqli->query ("INSERT INTO visitate VALUES ('$title', '$url', 1)");
    }
    else {
    $old = $esiste->fetch_array(MYSQLI_ASSOC);
    $visite = $old['visite'] + 1;
    $mysqli->query("UPDATE visitate SET pagina='$title', visite=$visite WHERE url='$url'");
    }
    }
    }

    //Estrae i dati dal DB e crea la sequenza delle pagine più viste
    function piu_visitate($n) {
    $mysqli = new mysqli("localhost", "root", "pwd", "gruppoalveo");
    $pag_viste = $mysqli->query("SELECT * FROM visitate ORDER BY visite DESC LIMIT 0,$n");
    if (
    $pag_viste->num_rows > 0) {
    echo
    "<ol class=\"formol\"'piu_visitate'>";
    while (
    $link = $pag_viste->fetch_array(MYSQLI_ASSOC)) {
    echo
    "<li>";
    echo
    "<a class=\"visti\" href='".$link['url']."'>".$link['pagina']."</a>";
    echo
    "</li>";
    }
    echo
    "</ol>";
    }
    }
    piu_visitate(4);
    ?>
    Ultima modifica di gruppoalveo : 03-04-2014 alle ore 13.53.46 Motivo: Aggiornamento

  28. #88
    Guest

    Predefinito

    Nella whitelist metti solo "localhost" senza tutta la pappardella
    (Magia del parse_url )

  29. #89
    Guest

    Predefinito

    Mi è venuto un pensiero: non mi sembra giusto che si conteggino le pagine quando sono IO a guardarle, vorrei che il conteggio venga fatto quando è un visitatore che si trova nel mio sito, ci vorrebbe un codice che riconosce il mio mac, è possibile?



    Torniamo al locale, non si aggiorna la home anche se ci clicco nel sito, le altre pagine invece si aggiornano.

    Codice PHP:
    ...
    $whitelist = array(
    //Pag. che non vuoi che il db conteggi quando l'utente vi arriva DA TERZI (se poi è nel mio sito e ci clicca su, ovviamente il contatore del db sale)
    "localhost"
    );
    foreach (
    $whitelist as $sito) {
    if (
    $from == $sito) $continua = true;
    }
    ...

    E nel DB scrive solo /index.php (il 3 l'ho messo io)

    Ultima modifica di gruppoalveo : 04-04-2014 alle ore 03.35.14 Motivo: Aggiornamento

  30. #90
    Guest

    Predefinito

    Bene, il problema in locale è risolto.
    Ora, mi è venuto un pensiero: vorrei che le pagine non si conteggino quando sono IO a guardarle, vorrei che il conteggio venga fatto quando è un visitatore che si trova nel mio sito, ci vorrebbe un codice che riconosce il mio mac, è possibile?

    Ho trovato delle sigle che identificano in modo univoco il mio mac, che dici di includerli nel codice?

    Codice PHP:
    Identificatore universale: 0D091393-0F4F-53A9-F4DF-7481BAF1A453
    N° di serie
    : C02FNAFPDH9W
    Mac Address Ethernet
    : v5:0m:14:31:04:m6
    Mac Address Wireless
    : k9:ce:8f:0f:4c:64
    Ovviamente li ho modificati
    Ultima modifica di gruppoalveo : 04-04-2014 alle ore 22.03.33

Pagina 3 di 4 PrimoPrimo 1234 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •