Visualizzazione risultati 1 fino 19 di 19
Like Tree1Likes
  • 1 Post By

Discussione: Refresh codice captcha

  1. #1
    Guest

    Predefinito Refresh codice captcha

    Non mi funziona, cioè, non ricarica l'immagine e non da errore.

    Nel file esterno.js
    Codice PHP:
    function reloadCaptcha() {
    document.getElementById("cap").src = "Captcha/captcha-image.php?123";
    }
    Nel form
    Codice PHP:
    <img style="width: 70px; height: 30px;" id="cap" src="Captcha/captcha-image.php">
    <
    img style="width: 30px; height: 30px; cursor:pointer" src="immagini/refresh.png" onclick="reloadCaptcha();">
    Ultima modifica di gruppoalveo : 27-05-2014 alle ore 23.04.16

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Puoi indicare l'indirizzo della pagina in questione?

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Puoi indicare l'indirizzo della pagina in questione?
    http://gruppoalveo.altervista.org/successi.php

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Il problema non è che il codice javascript non funziona. Il problema e che il PHP non genera un captcha diverso.
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Il problema non è che il codice javascript non funziona. Il problema e che il PHP non genera un captcha diverso.
    Se invio il form, poi il codice cambia, perciò funziona, inoltre ho notato che se cancello il cookie PHPSESSID il codice si aggiorna. Io però quel cookie li non ce l'ho, non so come fa a generarsi.

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Potresti risolvere inserendo all'inizio del file "captcha-image.php" questo:

    Codice PHP:
    session_regenerate_id();
    In questo modo forsi il file al cambio del PHPSESSID che viene automaticamente generato da PHP quando si crea una sessione.
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Potresti risolvere inserendo all'inizio del file "captcha-image.php" questo:

    Codice PHP:
    session_regenerate_id();
    In questo modo forsi il file al cambio del PHPSESSID che viene automaticamente generato da PHP quando si crea una sessione.
    All'inizio ho questo <?php session_start(); lo tolgo?

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    No. Però dopo questa riga aggiungi la mia funzione e vedi cosa succede.
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    No. Però dopo questa riga aggiungi la mia funzione e vedi cosa succede.
    Se tolgo session_start(); e aggiorno la pagina, il codice cambia, ma se clicc o sul refresh captcha, l'immagine cambia una sola volta anche se clicco molte volte.

    Se invece lascio session_start() e session_regenerate_id(); l'immagine non cambia mai.
    Ultima modifica di gruppoalveo : 28-05-2014 alle ore 00.19.37

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Prova a cambiare:
    Codice:
    document.getElementById("cap").src = "Captcha/captcha-image.php?123";
    Con:
    Codice:
    document.getElementById("cap").src = "Captcha/captcha-image.php?"+Math.random();
    Nel caso in cui continui a non funzionare posta il tuo codice PHP.
    Ultima modifica di miki92 : 28-05-2014 alle ore 00.23.12
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Prova a cambiare:
    Codice:
    document.getElementById("cap").src = "Captcha/captcha-image.php?123";
    Con:
    Codice:
    document.getElementById("cap").src = "Captcha/captcha-image.php?"+Math.random();
    Nel caso in cui continui a non funzionare posta il tuo codice PHP.
    Bene, adesso funziona
    miki92 likes this.

  12. #12
    Guest

    Predefinito

    Codice PHP:
    <?php
    //Permette al codice captcha di cambiare quando si clicca sulla rotellina-refresh
    session_regenerate_id();

    if (empty(
    $_SESSION['rand_code'])) {
    $str = "";
    $length = 0;
    $caratteri = "abcdefknprstuvxyz12345679"; //TIPI di caratteri che appaiono come immagine (25)
    for ($i = 0; $i < 4; $i++) { //Il 4 indica il numero max di caratteri-immagine che appaiono
    $str .= $caratteri {
    rand(0,25) //Quanti TIPI di caratteri-immagine appaiono random ad ogni ciclo, 0+25=26
    };
    }
    $_SESSION['rand_code'] = $str;
    }
    $imgX = 57; //Sposta a dx i caratteri-immagine
    $imgY = 19; //Sposta in alto-basso i caratteri-immagine
    $image = imagecreatetruecolor(60, 20); //Sposta dx-sx alto-basso l'immagine coi caratteri
    $backgr_col = imagecolorallocate($image, 238,239,239); //Colore background dei caratteri #eeefef
    $border_col = imagecolorallocate($image, 208,208,20); //Colore del bordo #d0d014
    $text_col = imagecolorallocate($image, 46,60,31); //Colore dei caratteri-immagine #2e3c1f
    imagefilledrectangle($image, 0, 0, 60, 20, $backgr_col); //Cambiando i 4 valori appare un'ombra nera e si può creare un'effetto rilievo o incassato del rettangolo
    imagerectangle($image, 0, 0, 59, 19, $border_col); //Sposta il bordino colorato del rettangolo

    $font = "verdana.ttf"; //Font che si trova nella cartella Captcha e che appare come immagine
    $font_size = 14; //Dimensione dei caratteri-immagine
    $angle = 0; //Ruota obliqui i caratteri-immagine
    $box = imagettfbbox($font_size,$angle,$font,$_SESSION['rand_code']);
    $x = (int)($imgX - $box[4]) / 2; //Sposta a sx i caratteri-immagine
    $y = (int)($imgY - $box[5]) / 2; //Sposta in alto i caratteri-immagine
    imagettftext($image,$font_size,$angle,$x,$y,$text_col,$font,$_SESSION['rand_code']);

    header("Content-type: image/jpeg");
    imagejpeg($image);
    imagedestroy ($image);

    //Fine Captcha-image
    ?>

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Scusa non ho capito perchè hai postato il codice ora. Funziona o no la soluzione indicata?
    Apprezzi l'aiuto? Offrimi un caffè!

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Scusa non ho capito perchè hai postato il codice ora. Funziona o no la soluzione indicata?
    funziona ma entra in conflitto con il form dei messaggi (quello a destra con l'icona della lettera)

    Ho creato 2 codici separati ma entra in conflitto solo se seno nella pagina successi.php

  15. #15
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ma ora perchè hai tolto il session_start();?
    Ultima modifica di miki92 : 28-05-2014 alle ore 00.47.25
    Apprezzi l'aiuto? Offrimi un caffè!

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Ma ora perchè hai tolto il session_start();?
    l'ho rimesso ma non va, prova, all'invio da sempre errore di codice

  17. #17
    Guest

    Predefinito

    a destra della pagina c'è l'icona dei contatti (la busta-lettera)

    Mi da anche un errore:

    Undefinited index: rand_code...

    Codice PHP:
    //Controlla che il codice Captcha inserito corrisponda a quello che appare nell'immagine
    if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) {
    $errore .= "&bull;&nbsp;&nbsp;Codice errato!<br><br>";
    }
    PS: qui non visualizzo tutti i post che mi mandi, l'ultimo che mi è arrivato in Mail è "Mi spiace non ho capito cosa intendi. Puoi spiegarti meglio?" ma qui non lo vedo
    Ultima modifica di gruppoalveo : 28-05-2014 alle ore 09.14.50 Motivo: Modifica

  18. #18
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ieri mentre io scrivevo tu postavi il secondo tuo post e quindi modificavo il mio per darti una soluzione e quindi ecco il motivo per cui non visualizzi certi post.

    Comunque in entrambi i files deve esserci session_start(); se il problema persiste posta l'errore per intero e preferibilmente anche il codice in uso.
    Apprezzi l'aiuto? Offrimi un caffè!

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Ieri mentre io scrivevo tu postavi il secondo tuo post e quindi modificavo il mio per darti una soluzione e quindi ecco il motivo per cui non visualizzi certi post.

    Comunque in entrambi i files deve esserci session_start(); se il problema persiste posta l'errore per intero e preferibilmente anche il codice in uso.
    E' quasi tutto a posto, c'è un form che non aggiorna l'immagine SITO

    Se apri @mail il reload del captcha funziona, invece Guest non si reload. Tieni presente che la cartella Captcha si trova in un'altra directory, è per quello che ci sono i 2 puntini ../Captcha/captcha-image.php?, ma lo sapevi già


    Codice PHP:
    function reloadCaptcha() {
    document.cookie = "PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
    document.getElementById("cap").src = "../Captcha/captcha-image.php?"+Math.random();
    }
    ...
    <
    img style="width: 70px; height: 30px;" id="cap" src="⋅⋅/Captcha/captcha-image.php" alt="CAPTCHA image" title="CAPTCHA image">
    <
    img style="width: 30px; height: 30px; cursor:pointer;" src="⋅⋅/immagini/refresh.png" alt="Refresh CAPTCHA image" title="Refresh CAPTCHA image" onclick="reloadCaptcha()">
    Ultima modifica di gruppoalveo : 29-05-2014 alle ore 12.16.00 Motivo: Aggiornamento

Regole di scrittura

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