Visualizzazione risultati 1 fino 18 di 18

Discussione: php5 da problemi

  1. #1
    Guest

    Predefinito php5 da problemi

    Come annunciato dal webmaster il server passerà a php5, ho provato ad impostare php5 ma mi da problemi con l'invio del form, più precisamente con il codice captca che anche inserito correttamente esce l'alert.

    Che modifica devo fare?

    Codice PHP:
    <?php

    //Captca-image

    session_start();

    if (empty(
    $_SESSION['rand_code'])){
    $str = "";
    $length = 0;
    $caratteri = "abcdefghijkmnprstuvwxyz123456789"; /* Caratteri che appaiono come immagine */
    for ($i = 0; $i < 4; $i++){ /* il 4 indica il numero di caratteri-immagine che appaiono */
    $str .= $caratteri{rand(0,32)};
    }
    $_SESSION['rand_code'] = $str;
    }
    $imgX = 60;//Sposta a dx i caratteri-immagine
    $imgY = 18;//Sposta in alto i caratteri-immagine
    $image = imagecreatetruecolor(60, 20);
    $backgr_col = imagecolorallocate($image, 238,239,239);//Colore di sfondo
    $border_col = imagecolorallocate($image, 208,208,20);//Colore del bordo
    $text_col = imagecolorallocate($image, 46,60,31);//Colore dei caratteri-immagine

    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 = "courbi.ttf";
    $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 Captca-image


    //Controlla che il codice Captca inserito corrisponda a quello che appare nell'immagine
    if ($_SESSION['rand_code'] != $_POST['validator'])
    $errore .= "Codice errato!";
    if (
    $errore)
    echo
    $errore;
    ?>

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ma esattamente che stringa errore ti viene visualizzato?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Non viene visualizzata una stringa di errore, esce l'alert "Codice errato!" anche se il codice captca viene scritto giusto perchè php5 non riconosce qualcosa, ho poi rimesso php4 (default) e tutto funziona.

    Per vedere il form vai alla mia home http://www.photoman.altervista.org/ e clicca su @mail

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Proverei a fami stampare in un file le due variabili $_SESSION['rand_code'] e $_POST['validator'] per vedere cosa sta succedendo.

    Ricorda che puoi attivare PHP5 anche solo su una sottocartella. In questo modo puoi provare a capire e risolvere il problema lasciando il resto del sito funzionante sotto PHP4.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Proverei a fami stampare in un file le due variabili $_SESSION['rand_code'] e $_POST['validator'] per vedere cosa sta succedendo.

    Ricorda che puoi attivare PHP5 anche solo su una sottocartella. In questo modo puoi provare a capire e risolvere il problema lasciando il resto del sito funzionante sotto PHP4.
    Spiegami come fare a far stampare le 2 variabili

  6. #6
    Guest

    Predefinito

    echo $_SESSION['rand_code'].' '.$_POST['validator'];


    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    echo $_SESSION['rand_code'].' '.$_POST['validator'];


    Ciao!
    Ho fatto la prova:

    con php4 il form parte e a video (nella pagina che dice "messaggio inviato") appare anche il codice captca che ho inserito.

    Ma se imposto php5 il form non parte ed esce la scritta Codice errato

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da photoman Visualizza messaggio
    Ho fatto la prova:
    con php4 il form parte e a video (nella pagina che dice "messaggio inviato") appare anche il codice captca che ho inserito.
    Non compare 2 volte?

    Citazione Originalmente inviato da photoman Visualizza messaggio
    Ma se imposto php5 il form non parte ed esce la scritta Codice errato
    Il form "parte" in entrambi i casi. Solo che per qualche motivo con php5 i dati si perdono per strada. Che si perda sia il dato in sessione che quello via POST è ben strano. Che codice c'è esattamente nel PHP che controlla?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Non compare 2 volte?



    Il form "parte" in entrambi i casi. Solo che per qualche motivo con php5 i dati si perdono per strada. Che si perda sia il dato in sessione che quello via POST è ben strano. Che codice c'è esattamente nel PHP che controlla?
    Si compare 2 volte, il codice Captca l'ho messo nel mio primo post

  10. #10
    Guest

    Predefinito

    ho praticamente lo stesso problema
    Ho un form per area riservata dove l'autenticazione avviene tramite user password e codice captcha.

    nessun errore nel mio caso viene visualizzato, e neanche avviene il reindirizzamento nella pagina che mi avverte che il login è fallito

    ma mi viene visualizzata nuovamente la pagina di login
    Qualcuno sa il perchè?

  11. #11
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Si compare 2 volte, il codice Captca l'ho messo nel mio primo post
    Se quello che hai postato è tutto quello che c'è direi che sicuramente manca almeno lo session_start().

    Citazione Originalmente inviato da culummara Visualizza messaggio
    Qualcuno sa il perchè?
    No. Purtroppo non abbiamo la sfera di vetro e se non ci mostri il codice che usi non si può fare niente. A meno che non usi esattamente lo stesso captcha di "photoman" apri un altro thread, così evitiamo inutile casino.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  12. #12
    Guest

    Predefinito

    session_start() c'è, ora ho messo così e non esce più l'errore originale Codice errato!

    Codice PHP:
    //Controlla che il codice Captca inserito corrisponda a quello che appare nell'immagine
    if ($_SESSION['rand_code'] != $_POST['validator'])
    $errore .= "Codice errato! Rand_code = $_SESSION[rand_code] - Validator = $_POST[validator]";
    ma esce l'alert Inserire il Codice

    Codice PHP:
    if (empty($validator))
    $errore .= "Inserire il Codice";

  13. #13
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Per favore, posta TUTTO il codice che usi per verificare il captcha, altrimenti non posso trovare cosa non va. Quell'ultimo pezzo che hai postato da dove esce?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Per favore, posta TUTTO il codice che usi per verificare il captcha, altrimenti non posso trovare cosa non va. Quell'ultimo pezzo che hai postato da dove esce?
    Questo pezzo fa parte del file che elabora il form posto la parte:

    Codice PHP:
    ...
    //Campi obbligatori
    if( $nome == '' ) // anche se inserito un solo 0 (zero) viene riconosciuto come carattere
    $errore .= "Inserire il Nome";
    else
    //Valida l'Email
    //valida pippo@email.{2,4}//pip.po@email.{2,4}//pip_po@email.{2,4}//pip-po@email8.{2,4} info@bncf.rom1eo.sbn.it
    if( $suoemail == '' )
    $errore .= "Inserire l'Email";
    else
    if (!
    ereg("^([-_.#$&a-z0-9])+[@][a-z0-9]+(\.[-_#$&a-z0-9]{2,})*(\.[a-z]{2,4})$",$suoemail))
    $errore .= "Inserire un'Email valida";
    else
    if(
    $messaggio == '' )
    $errore .= "Inserire il Messaggio";
    else
    if (empty(
    $validator))
    $errore .= "Inserire il Codice";
    else

    //Controlla che il codice Captca inserito corrisponda a quello che appare nell'immagine
    if ($_SESSION['rand_code'] != $_POST['validator'])
    $errore .= "Codice errato! Rand_code = $_SESSION[rand_code] - Validator = $_POST[validator]";
    //$errore .= "Codice errato!";
    if ($errore)
    echo
    $errore;
    if (
    $errore):
    ...

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Per favore, posta TUTTO il codice...
    Te l'ho evidenziato ancora di più...


    ciao!

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Te l'ho evidenziato ancora di più...


    ciao!
    Questa è la parte:


    Codice PHP:
    <?php
    session_start
    ();
    // Queste sessioni caricano e fanno mantenere lo scritto nel campo che (se il form torna indietro) viene poi richiamato nella $_SESSION del form
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['suoemail'] = $_POST['suoemail'];
    $_SESSION['citta'] = $_POST['citta'];

    $nome = htmlentities(stripslashes(trim($_POST['nome'])));
    $suoemail = $_POST['suoemail'];
    $citta = htmlentities(stripslashes(trim($_POST['citta'])));
    $ip = $_SERVER['REMOTE_ADDR'];
    $messaggio = htmlentities(stripslashes(trim($_POST['messaggio'])));
    $giorni = array ("Domenica","Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato");
    $data = date("w", time()); //scrive il giorno dell'array
    $data1 = date("d / m / Y");
    $orario = date("H:i");

    //strlen = numero max di caratteri inseribili
    if (strlen($nome) > 15){
    $errore = true;
    echo
    "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">NOME: max 15 caratteri</font></center><br />";
    }
    if (
    strlen($suoemail) > 30){
    $errore = true;
    echo
    "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">EMAIL: max 30 caratteri</font></center><br />";
    }
    if (
    strlen($citta) > 15){
    $errore = true;
    echo
    "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">CITTA': max 15 caratteri</font></center><br />";
    }
    if (
    strlen($messaggio) > 500){
    $errore = true;
    echo
    "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">MESSAGGIO: max 500 caratteri</font></center><br />";
    }

    include(
    "guestbook/parole-proibite.php");
    //parole proibite (vedi guestbook/parole-proibite.php)
    $stringa = $_POST['messaggio'].' '.$nome.' '.$suoemail.' '.$citta;
    foreach(
    $parole_proibite as $parola){
    if (
    stristr($stringa, $parola) !== false){
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\">La parola \"<font color=\"red\">$parola</font>\" non è ammessa</font></center><br />";
    }
    }

    //Alert "caratteri non ammessi" anche per Email
    if ($nome.$suoemail.$citta.$messaggio){
    if (
    ereg("[\]+",$nome.$suoemail.$citta.$messaggio)){
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\">Il carattere \"<font color=\"red\"><b> \ </b></font>\" non è ammesso</font></center><br />";
    }
    }
    //Campi obbligatori
    if( $nome == '' ) // anche se inserito un solo 0 (zero) viene riconosciuto come carattere
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Inserire il Nome</font></center><br />";
    else
    //Valida l'Email
    //valida pippo@email.{2,4}//pip.po@email.{2,4}//pip_po@email.{2,4}//pip-po@email8.{2,4} info@bncf.rom1eo.sbn.it
    if( $suoemail == '' )
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Inserire l'Email</font></center><br />";
    else
    if (!
    ereg("^([-_.#$&a-z0-9])+[@][a-z0-9]+(\.[-_#$&a-z0-9]{2,})*(\.[a-z]{2,4})$",$suoemail))
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Inserire un'Email valida</font></center><br />";
    else
    if(
    $messaggio == '' )
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Inserire il Messaggio</font></center><br />";
    else
    if (empty(
    $validator))
    $errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Inserire il Codice</font></center><br />";
    else

    //Controlla che il codice Captca inserito corrisponda a quello che appare nell'immagine
    if ($_SESSION['rand_code'] != $_POST['validator'])
    $errore .= "Codice errato! Rand_code = $_SESSION[rand_code] - Validator = $_POST[validator]";
    //$errore .= "<br /><br /><br /><br /><br /><br /><br /><br /><tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Codice errato!</font></center><br />";
    if ($errore)
    echo
    $errore;
    if (
    $errore):
    $ritenta="<META http-equiv=\"REFRESH\" content=\"2; url=http://www.photoman.altervista.org?ritorna_Scrivimi1=1\">";
    else:
    $meta;
    $meta = "<table bgcolor=\"#55b05a\" width=\"300\" height=\"120\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" bordercolor=\"#008000\" style=\"border:3px solid;\">";
    $meta .= "<tr><td valign=\"bottom\"><center><font family=\"arial\" color=\"white\" size=\"4\">GRAZIE</font><font family=\"arial\" color=\"white\" size=\"5\">&nbsp;".$nome."</font></td></tr></center><br /><tr><td valign=\"top\"><center><font family=\"arial\" color=\"white\" size=\"4\">MESSAGGIO INVIATO!</font></center>";
    $meta .= "</td></tr></table><br /><br /><br /><br /><center><font family=\"arial\" color=\"#0000ff\" size=\"4\">...fra pochi secondi la finestra si chiuder&agrave;</font></center></table>";
    $meta .= "<META http-equiv=\"REFRESH\" content=\"2; url=http://www.photoman.altervista.org\">";
    session_destroy();

  17. #17
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ma la variabile $validator dov'è che viene valorizzata?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Ma la variabile $validator dov'è che viene valorizzata?
    Ho risolto, ho rimesso tutto come all'origine ed ho sostituito solo questo


    Codice PHP:
    if (empty($validator))
    con questo:


    Codice PHP:
    if (empty($_POST['validator']))

Regole di scrittura

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