Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    non registra la SESSION...

    Ciao,
    ho trovato su http://www.computerflash.net/index.p...&cat=11&id=162
    uno script per creare una immagine che contiene un codice ed evitare lo spam.

    Ho fatto il seguente script:

    <?php
    $numero = 6;
    // numero caratteri da usare per il codice

    $data = date("Y-m-d H:i:s");
    $codice = substr(md5($data),10,$numero);
    // ho generato un codice casuale legato all'orario

    $_SESSION['codice'] = $codice;
    //setcookie('nomec',$codice);
    // lo memorizzo per poterlo poi controllare

    // controllo se la libreria è attiva
    if (!function_exists('gd_info')) print "Occorre attivare la libreria grafica";
    else {
    header("Content-type: image/png");
    $percorso = "../img/imgcodice.jpg";
    $image = ImageCreatefromJPEG($percorso);
    $green = imagecolorallocate($image,150,150,150);
    ImageString($image, 5, 17, 3, $codice, $green);
    Imagepng($image);
    ImageDestroy($image);
    }
    ?>

    che viene richiamato all'interno del tag IMG di un'altra pagina e mi mostra l'immagine.

    Il problema è che non registra la session 'codice'... come mai?

    P.S. - session start(); è già presente nella index (che include tutte le altre pagine).

  2. #2

  3. #3
    index.pxp
    codice:
    <?php
    session_start();
    include('contatti.php');
    (ho eliminato la parte ininfluente)

    contatti.php
    codice:
    <form name="contatti" action="script/_mail.php" method="POST">
    <table cellspacing="5" cellpadding="0" border="0" align="center" id="contatti">
      <tr>
        <td colspan="3">mittente:
    <input type="text" name="mittente" size="53"></td>
      </tr>
      <tr>
        <td colspan="3">oggetto:
    <input type="text" name="oggetto" size="53"></td>
      </tr>
      <tr>
        <td colspan="3">testo:
    <textarea name="testo" rows="10" cols="40"></textarea></td>
      </tr>
      <tr>
        <td align="center">[img]script/_codice.php[/img]</td>
        <td align="center">copia il codice:</td>
        <td align="center"><input type="text" name="codice" size="10"></td>
      </tr>
      <tr>
        <td colspan="3"></td>
      </tr>
      <tr>
        <td colspan="3" align="center"><input type="reset" value="cancella"><input type="submit" value="invia"></td>
      </tr>
    </table>
    </form>
    script/_codice.php
    codice:
    <?php
        $numero = 6;
        // numero caratteri da usare per il codice
    
        $data = date("Y-m-d H:i:s");
        $codice = substr(md5($data),10,$numero);
        // ho generato un codice casuale legato all'orario
        
        $_SESSION['codice'] = $codice;
        //setcookie('nomec',$codice);
        // lo memorizzo per  poterlo poi controllare
    
        // controllo se la libreria è attiva
        if (!function_exists('gd_info')) print "Occorre attivare la libreria grafica";
        else {
            header("Content-type: image/png");
            $percorso = "../img/imgcodice.jpg";
            $image = ImageCreatefromJPEG($percorso);
            $green = imagecolorallocate($image,150,150,150);
            ImageString($image, 5, 17, 3, $codice, $green);
            Imagepng($image);
            ImageDestroy($image);
        }
    ?>
    script/_mail.php
    codice:
    <?php
    session_start();
    if (isset($_SESSION['codice'])) {
      $codice1 = $_SESSION['codice'];
    } else {
      $codice1 = "no sesison!";
    }
    $mittente = $_POST["mittente"];
    $oggetto = $_POST["oggetto"];
    $testo = $_POST["testo"];
    $codice2 = $_POST["codice"];
    
    echo $mittente;
    echo "
    ";
    echo $oggetto;
    echo "
    ";
    echo $testo;
    echo "
    ";
    echo $codice1;
    echo "
    ";
    echo $codice2;
    ?>
    e qui ovviamente $codice1 è "no sesison!"

    P.S. - script/_mail.php non viene inclusa in index.php e quindi ho messo all'inizio session_start();

  4. #4
    Apri il file script/_codice.php ed inserisci all'inizio del file (prima di qualsiasi output) il seguente codice:

    Codice PHP:
    session_start(); 
    Prima di controbattere con "session start(); è già presente nella index", esegui quanto suggerito.

  5. #5
    Funziona!

    Ma la pagina script/_codice.php è inclusa in contatti.php che è inclusa in index.php dove c'è session_start();

    lo so che è un po' contorto ma a livello teorico pensavo funzionasse... c'è qualche particolare che non conosco?

    Comunque grazie mille

  6. #6
    Dove è che includi script/_codice.php in contatti.php?

  7. #7
    ops... Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.