- Home
- Categorie
- Coding e Sistemistica
- PHP
- Errore: sessione non definita
-
Errore: sessione non definita
**Esce un errore che dice ******rand_code non è definito, io non c'**è l'ho come campo POST, ma è quello del codice Captcha
Codice PHP:
[LEFT]<?php
session_start();if (empty($_SESSION['rand_code'])) {
$str = "";
$length = 0;
$caratteri = "abcdefhjkmnprstuvxyz12345679"; //TIPI di caratteri che appaiono come immagine (31)
for ($i = 0; $i < 4; $i++){ //Il 4 indica il numero di caratteri-immagine che appaiono
$str .= $caratteri{rand(0,30)}; //Quanti TIPI di caratteri-immagine appaiono random ad ogni ciclo, 0+30=31
}
$_SESSION['rand_code'] = $str;
}...
//Controlla che il codice Captcha inserito corrisponda a quello che appare nell'immagine
if((isset($_POST['invia']) || !empty($_POST['invia']))) {
if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) {
$errore .= "• Codice errato!<br /><br />";
}
else {
$validator;
}
}[/LEFT]**
-
Ciao Apthu,
la prima parte del codice avviene quando generi il form? Perchè sembra che tu generi il codice quando effettui già il controllo.
-
[...]
L'errore mi esce quando invio il form e poi sparisce quando il form è stato inviato
-
Non ho capito cosa intendi, puoi postare il codice completo?
-
[...]
Quello sopra è la parte di codice interessata.
Quando invio il form esce ****rand_code non è definito a questa riga
******[LEFT]if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) {[/LEFT]
**
-
Questo l'avevo capito, ma il problema non è quella riga di codice, ma la logica di fondo.
-
@Thedarkita said:
Questo l'avevo capito, ma il problema non è quella riga di codice, ma la logica di fondo.
Come sistemo?
-
Prova a fare il controllo solo se $_SESSION['rand_code'] non è vuoto
-
@Cyrus said:
Prova a fare il controllo solo se $_SESSION['rand_code'] non è vuoto
L'errore non lo mostra sempre, ho notato che appare solo quando modifico questo codice (tolgo dei caratteri)
$caratteri = "abcdefhjknprstuvxyz12345679"; //TIPI di caratteri che appaiono come immagine (27)
-
Quando togli dei caratteri, modifichi anche la riga seguente?
**[LEFT]$str .= $caratteri{rand(0,30)}
[/LEFT]
**
-
@Cyrus said:
Quando togli dei caratteri, modifichi anche la riga seguente?
**[LEFT]$str .= $caratteri{rand(0,30)}
[/LEFT]
**Si, modifico il numero, io penso che da errore perchè nella sessione ha ancora i valori precedenti, difatti poi quando aggiorno la pagina non da più errore