Visualizzazione risultati 1 fino 16 di 16

Discussione: contatore di link

  1. #1
    Guest

    Predefinito contatore di link

    Salve a tutti. Avrei bisogno di un aiuto. Ho scritto in questa sezione perché penso che la soluzione possa essere PHP:

    allora io voglio creare dei sondaggi (sfide) così fatti:

    ci sono 2 immagini a confronto e l'utente dovrà cliccare sull'immagine che più gli piace.
    Una volta che ha cliccato sull'immagine si aprirà una nuova pagina html con altre 2 immagini a confronto.
    e così via...
    Per sapere i risultati della sfida, dunque, mi servirebbe "semplicemente" un CONTATORE DI LINK che mi permetta di sapere quale delle 2 immagini (per ogni sfida) è stata più cliccata (e magari mi posta i risultati su file di testo a parte) .
    Solo che ho provato a cercare qualcosa su internet ma niente, ho trovato solo contatori di pagine ma non di link.

    Spero di essere stato chiaro ;)
    Grazie anticipatamente.
    Ultima modifica di animeNOD : 03-03-2012 alle ore 15.02.12

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ciao, dovresti usare il database che ti offre Altervista.
    L'hai attivato?

  3. #3
    Guest

    Predefinito

    ho un database di classe 3.

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Non dovrebbe attivare il database. Se lo vuole usare ok, ma potrebbe essere una complicazione non necessaria.

    Più che un "contatore di link", direi che stai cercando un "contatore di click". Di quelli ne trovi un buon numero già pronti. Guarda in giro su google, e poi facci sapere.

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Se vuoi provarlo a farlo da te, avrei pensato ad un modo (sicuramente ce ne son altri, ma a me è venuto in mente così):

    Codice PHP:
    [...]
    <?php
    function incrementa_voto($img) //incrementa il voto dell'immagine $img
    {
    #[...]
    }
    function
    esistono($img1,$img2) //ritorna true se entrambe le immagini esistono, altrimenti false (bisognerebbe gestire anche il caso che una esista e l'altra no, ma occorre modificare lo script sotto)
    {
    #[...]
    #if()
    #else
    return true;
    }
    if(isset(
    $_POST['voto']))
    incrementa_voto($_POST['voto']);
    if(isset(
    $_GET['img1'],$_GET['img2']))
    {
    $img1 = $_GET['img1'] + 2;
    $img2 = $_GET['img2'] + 2;
    }
    else
    {
    $img1 = 1;
    $img2 = 2;
    }
    if(
    esistono($img1,$img2))
    {
    ?>
    [...]
    <div><form action="<?= $_SERVER['PHP_SELF'] ?>?img1=<?= $img1 ?>&img2=<?= $img2 ?>" method="post">
    <img src="<?= $img1 ?>.jpg">
    <input type="hidden" name="voto" value="<?= $img1 ?>">
    <input type="submit" value="Vota questa immagine">
    </form>
    </div>
    [...]
    <div><form action="<?= $_SERVER['PHP_SELF'] ?>?img1=<?= $img1 ?>&img2=<?= $img2 ?>" method="post">
    <img src="<?= $img2 ?>.jpg">
    <input type="hidden" name="voto" value="<?= $img2 ?>">
    <input type="submit" value="Vota questa immagine">
    </form>
    </div>
    [...]
    <?php
    }
    else echo
    'Tutte le immagini sono state votate.';
    ?>
    [...]
    Ovviamente è molto semplificato (andrebbe sviluppato non poco), ma è solo per dare un'idea.

    I dati potresti salvarli nel database mysql, in uno sqlite, oppure in generale in un file di testo gestendolo da PHP. Ti consiglierei sqlite, perché è una via di mezzo tra gli altri due: non hai la limitazione delle query, ma è comunque un database, quindi gestibile "facilmente" (con le query).

    Ciao!

  6. #6
    Guest

    Predefinito

    alemoppo grazie mille per l'impegno che hai messo per rispondermi ma purtroppo non è ciò che voglio io... a me piacerebbe che il voto consiste nel votare sull'immagine e non su un pulsante "vota questa immagine".

    dreadnaut sto cercando dappertutto un contatore di click ma ancora niente... appena trovo qualcosa ti aggiorno subito ;)

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

  8. #8
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Dovresti creare 2 pagina: una con le 2 immagini (che chiamerai immagini.php) e un'altra che registra il voto (voto.php).
    Intanto nel db inserisci gli ID di tutte le immagini, e ogni immagine avrà un suo ID.
    Quindi ecco come dovrà essere immagini.php:
    Codice PHP:
    //ricavi i valori delle 2 immagini
    <?
    $id1
    = // ID immagine 1
    $id2 = // ID immagine 2
    $percorso1 = // ad esempio: "http://forum.it.altervista.org/images/photo1.jpg";
    $percorso2 = // IDEM
    ?>
    <table><tr>
    <td>
    <a href="voto.php?id=<?=$id1?>"><img src="<?=$percorso1?>" /></a>
    </td>
    <td>
    <a href="voto.php?id=<?=$id2?>"><img src="<?=$percorso2?>" /></a>
    </td>
    </tr></table>
    A questo punto dovrai costruire la pagina voto.php in questo modo:
    Codice PHP:
    <?
    $id
    = (int) $_GET['id'];
    $query = mysql_query("UPDATE tabella SET voti = voti + 1 WHERE id = '$id'");
    if(
    $query){
    header("Location: immagini.php");
    }else{
    echo
    "<script>alert('Errore nella query: ".mysql_query()."')</script><noscript>Errore nella query: ".mysql_error()."</noscript>";
    echo
    "<br />";
    echo
    "<a href=\"immagini.php\">Continua a votare</a>";
    }
    ?>
    Dovrebbe funzionare.
    Questo è per sapere quale immagine è la più votata. Se invece vuoi sapere quale immagine è stata scelta fra 2 è tutt'altra cosa.
    Ciao!
    Ultima modifica di dreadnaut : 03-03-2012 alle ore 19.12.47 Motivo: + tag [php]

  9. #9
    Guest

    Predefinito

    Radiodelmomento SEI STATO GENTILISSIMO però ieri avevo già trovato una soluzione e stavo cercando di capirla. Stamattina sono arrivato ad un primo risultato:

    http://animenod.altervista.org/prova1/sfida1.html

    potete notare che sta venendo tutto molto bene ;)

    i risultati vengono inoltre mostrati sia in una pagina PHP visibile solo a me, sia in un file di testo (clicks.txt, creato nella stessa cartella prova1), i cui contenuti sono:

    Codice:
    1%%2012/03/03%%http://animenod.altervista.org/prova1/sfida2.html%%2%%Minato
    2%%2012/03/03%%http://animenod.altervista.org/prova1/sfida2.html%%3%%Gogeta
    3%%2012/03/03%%http://animenod.altervista.org/prova1/sfida3.html%%3%%Barbanera
    4%%2012/03/03%%http://animenod.altervista.org/prova1/sfida3.html%%2%%Mihawk
    5%%2012/03/03%%http://animenod.altervista.org/prova1/sfida4.html%%3%%Tobi
    6%%2012/03/03%%http://animenod.altervista.org/prova1/sfida4.html%%2%%Gohan
    La mia nuova domanda (dopodiché ho finalmente finito) è QUESTA:

    voglio mostrare ai miei fans i risultati ogni volta che votano, cioè vorrei mostrare il file di testo di cui sopra però in maniera più leggibile per i fans.
    E' possibile?
    Mi basta anche un semplice elenco con scritto:
    Minato 2
    Gogeta 3
    Barbanera 3
    Mihawk 2
    ecc...

    io non so proprio come manipolare i file di testo...
    GRAZIE ANCORA A TUTTI ;)

  10. #10
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Di niente!
    Comunque se salvassi i risultati nel database ti verrebbe molto meglio gestirli.
    Ad esempio, invece di salvare i risultati da 2 parti diverse, le salveresti in un unico posto e poi le estrarresti da varie parti nel modo più semplice possibile.
    Se vuoi fare così ti potrei aiutare, nell'altro modo nemmeno io ho ben capito come modificare i file.

  11. #11
    Guest

    Predefinito

    in realtà il salvataggio su 2 parti diverse non l'ho fatto io, ma fa tutto parte di codici che cho scaricato da internet.
    Comunque è possibile fare la seguente cosa?
    in una pagina html io scrivo:
    <p>
    Minato ha ricevuto ("voto preso dalla prima riga del file di testo") voti.
    </p>
    <p>
    Gogeta ha ricevuto ("voto preso dalla seconda riga del file di testo") voti.
    </p>
    ecc...

    Io lo saprei fare con Excel (usando le formule SINISTRA e DESTRA)
    ma con l'html non so proprio come muovermi per fare ciò.
    Se non si può, cosa altro si può fare?
    Grazie.

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Citazione Originalmente inviato da animeNOD Visualizza messaggio
    in realtà il salvataggio su 2 parti diverse non l'ho fatto io, ma fa tutto parte di codici che cho scaricato da internet.
    Comunque è possibile fare la seguente cosa?
    in una pagina html io scrivo:
    <p>
    Minato ha ricevuto ("voto preso dalla prima riga del file di testo") voti.
    </p>
    <p>
    Gogeta ha ricevuto ("voto preso dalla seconda riga del file di testo") voti.
    </p>
    ecc...

    Io lo saprei fare con Excel (usando le formule SINISTRA e DESTRA)
    ma con l'html non so proprio come muovermi per fare ciò.
    Se non si può, cosa altro si può fare?
    Grazie.
    Codice PHP:
    <p>
    Minato ha ricevuto <?= ricava_voti('Minato') ?> voti.
    </p>
    <p>
    Gogeta ha ricevuto <?= ricava_voti('Gogeta') ?> voti.
    </p>
    Dove la definizione della funzione ricava_voti($utente) dipende da come e dove salvi i dati (dovrebbe ritornare il numero di voti di $utente).


    -----

    alemoppo grazie mille per l'impegno che hai messo per rispondermi ma purtroppo non è ciò che voglio io... a me piacerebbe che il voto consiste nel votare sull'immagine e non su un pulsante "vota questa immagine".
    Beh, pulsante o immagine è la stessa cosa. È sufficiente modificare un attimo il form, ma il resto va comunque bene ugualmente.

    Ciao!

  13. #13
    Guest

    Predefinito

    alemoppo purtroppo non sono un esperto con il PHP :( quindi modificare il form per me sarebbe stato troppo impegnativo, spero non di non averti fatto perdere tempo...

    per il resto ora provo il tuo nuovo codice... ti aggiorno subito ;)

  14. #14
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Perché non utilizzi il database con il mio metodo?
    Dato che le sfide sono sempre le stesse è molto più semplice costruire lo script.

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Perché non utilizzi il database con il mio metodo?
    Dato che le sfide sono sempre le stesse è molto più semplice costruire lo script.
    OK proverò il tuo metodo.. però potresti dirmi passo passo come si inseriscono nel db gli ID di tutte le immagini?

    Sono ancora alle prime armi.
    Grazie a priori ;)

  16. #16
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Intanto devi creare una tabella che chiamiamo, per convenzione, "sfide".
    Quindi creiamo la tabella in questo modo:
    "nome campo" / tipo / lunghezza
    "id" / int / 11 / extra: auto increment / altro: primary key
    "sfida" / int / 5
    "img1" / varchar / 200
    "img2" / varchar / 200
    "voti1" / int / 5
    "voti2" / int / 5
    Quindi avremo: l'ID della sfida, i 2 percorsi delle immagini (ad esempio "/images/img1.jpg") e i voti alle due immagini.
    Se vuoi aggiungere qualche nota da fare leggere all'utente o altro dimmelo che sarebbe meglio modificare 1 cosa adesso anziché 100 dopo.

Regole di scrittura

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