Notice: Undefined index ma non trovo l'errore

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Il codice è questo
PHP:
if(!empty($_POST['invia'])) { 
if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) {
$errore .= "&bull;&nbsp;&nbsp;Codice errato!<br><br>";
}
 }
puoi fare una prova qui http://gruppoalveo.it/index.php?ritorna_scrivimi

invia il form con un codice captcha errato, nell'action vedrai in alto:

Notice: Undefined index: rand_code in /membri/gruppoalveo/scrivimi2.php on line 66
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Ciao,
A me nn da nessun errore ne se lo scrivo giusto ne se lo scrivo sbagliato

Cmq il problema potrebbe essere al rigo 65 del codice ti consiglio di postarlo tutto se puoi
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
La prova devi farla con Firefox, tra l'altro non mi tiene nemmeno le sessioni in caso di errore

PHP:
<?php
session_start();
include ("funzioni.php"); 

if(isset($_POST['invia'])) {
$data_locale = time();
$nome = stripslashes(htmlspecialchars(ucfirst(trim($_POST['nome']))));
$citta = stripslashes(htmlspecialchars(ucfirst(trim($_POST['citta']))));
$suoemail = htmlspecialchars(strtolower($_POST['suoemail']));
$suoemail = str_replace(" ","",$suoemail); // Toglie gli spazi interni nella email
$messaggio = stripslashes(htmlspecialchars(ucfirst(trim($_POST['messaggio'])))); 
$validator = htmlspecialchars(trim($_POST['validator']));

$_SESSION['nome'] = $nome;
$_SESSION['citta'] = $citta; 
$_SESSION['suoemail'] = $suoemail;
$_SESSION['messaggio'] = $messaggio;

//dichiaro la variabile e la rendo vuota, altrimenti da errore
$errore = ''; 

//strlen = numero max di caratteri inseribili 
if (strlen($nome) > 20) { 
$errore .= "&bull;&nbsp;&nbsp;NOME: max 20 caratteri<br><br>";
}
if (strlen($citta) > 20) { 
$errore .= "&bull;&nbsp;&nbsp;CITTÀ: max 20 caratteri<br><br>";
} 
if (strlen($suoemail) > 320) { 
$errore .= "&bull;&nbsp;&nbsp;EMAIL: max 320 caratteri<br><br>";
}
// Non conteggia le new line
if (strlen(str_replace(array("\n", "\r"),"", $messaggio)) > 1000) { 
$errore .= "&bull;&nbsp;&nbsp;MESSAGGIO: max 1000 caratteri<br><br>";
}
if (strlen($validator) > 4 ) { 
$errore .= "&bull;&nbsp;&nbsp;VALIDATORE: max 4 caratteri<br><br>";
}

//Nome (Campo obbligatorio)
if(!empty($_POST['invia'])) { 
if ($nome == "") { 
$errore .= "&bull;&nbsp;&nbsp;Inserire il Nome<br><br>";
}
 }
//Valida email (Campo non obbligatorio)
if ($suoemail) { 
if (!preg_match("/^[^.-]([.]?[^.-]+)*([-][^.-])?([.]?[^.-])*@(.*)[^.](\.[a-z]{2,6})$/",$suoemail)) {  
$errore .= "&bull;&nbsp;&nbsp;Inserire un'email valida<br><br>";
 }
}
//Messaggio (Campo obbligatorio)
if(!empty($_POST['invia'])) { 
if($messaggio == "") {
$errore .= "&bull;&nbsp;&nbsp;Inserire il Messaggio<br><br>";
}
 }
//Validatore (Campo obbligatorio)
if(!empty($_POST['invia'])) { 
if ($validator == "") {  
$errore .= "&bull;&nbsp;&nbsp;Inserire il Codice<br><br>"; 
}
 }
//Controlla che il codice Captcha inserito corrisponda a quello che appare nell'immagine
if(!empty($_POST['invia'])) { 
if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) {
$errore .= "&bull;&nbsp;&nbsp;Codice errato!<br><br>";
}
 }
if ($errore) {
$ritenta ="<div class=\"alert\"><div style=\"padding-top:25px; padding-bottom:30px; text-align:center;\"><img src=\"immagini/alert.png\" width=\"70\" height=\"70\" alt=\"Alert\" title=\"Alert\"></div>$errore</div>"; 
$ritenta .="<meta http-equiv=\"refresh\" content=\"1; url=index.php?ritorna_scrivimi\">"; 
}
else {
$meta = "<div class=\"trasp\"></div><div class=\"inviato\"><div style=\"margin-top:25px; margin-bottom:30px; text-align:center;\"><img src=\"immagini/ok.png\" width=\"60\" height=\"60\" alt=\"Ok\" title=\"Ok\"></div>Messaggio inviato!</div>"; 
$meta .= "<meta http-equiv=\"refresh\" content=\"1; url=index.php\">"; 
$_SESSION=array();

//nl2br, Quando si preme il tasto-Invio manda a capo nel testo, in php: nl2br è come il <br> dell'html  
$messaggio = nl2br($messaggio);

//Formattazione testo
$messaggio = str_replace("[G]","<b>",$messaggio);
$messaggio = str_replace("[/G]","</b>",$messaggio);
$messaggio = str_replace("[C]","<i>",$messaggio);
$messaggio = str_replace("[/C]","</i>",$messaggio);
$messaggio = str_replace("[S]","<u>",$messaggio);
$messaggio = str_replace("[/S]","</u>",$messaggio);

//Colora il testo selezionato
$messaggio = str_replace("[COLOR=cayenne]","<span style=\"color:#800000\">",$messaggio);
$messaggio = str_replace("[COLOR=rosso]","<span style=\"color:#ff0000\">",$messaggio);
$messaggio = str_replace("[COLOR=verde]","<span style=\"color:#008000\">",$messaggio);
$messaggio = str_replace("[COLOR=grigio]","<span style=\"color:#808080\">",$messaggio);
$messaggio = str_replace("[/COLOR]","</span>",$messaggio);

//Faccine, vanno messe in QUESTO PUNTO DELLA PAG.
$messaggio = str_replace(":CONFUSO:","<img src=\"http://gruppoalveo.it/faccine/cxonfuso.gif\" alt=\"Confuso\" title=\"Confuso\">",$messaggio);
$messaggio = str_replace(":IMPOSSIBILE:","<img src=\"http://gruppoalveo.it/faccine/ixmpossibile.gif\" alt=\"Impossibile\" title=\"impossibile\">",$messaggio);
$messaggio = str_replace(":TESTARDO:","<img src=\"http://gruppoalveo.it/faccine/txestardo.gif\" alt=\"Testardo\" title=\"Testardo\">",$messaggio);
$messaggio = str_replace(":PIANGE:","<img src=\"http://gruppoalveo.it/faccine/pxiange.gif\" alt=\"Piange\" title=\"Piange\">",$messaggio);
$messaggio = str_replace(":BACIO:","<img src=\"http://gruppoalveo.it/faccine/bxacio.gif\" alt=\"Bacio\" title=\"Bacio\">",$messaggio);
$messaggio = str_replace(":FELICE:","<img src=\"http://gruppoalveo.it/faccine/fxelice.gif\" alt=\"Felice\" title=\"Felice\">",$messaggio);
$messaggio = str_replace(":RIDE:","<img src=\"http://gruppoalveo.it/faccine/rxide.gif\" alt=\"Ride\" title=\"Ride\">",$messaggio);
$messaggio = str_replace(":OCCHIOLINO:","<img src=\"http://gruppoalveo.it/faccine/oxcchiolino.gif\" alt=\"Occhiolino\" title=\"Occhiolino\">",$messaggio);
$messaggio = str_replace(":CIAO:","<img src=\"http://gruppoalveo.it/faccine/cxiao.gif\" alt=\"Ciao\" title=\"Ciao\">",$messaggio);
$messaggio = str_replace(":PAURA:","<img src=\"http://gruppoalveo.it/faccine/pxaura.gif\" alt=\"Paura\" title=\"Paura\">",$messaggio);

$messaggio = str_ireplace("alveo","ALVEO",$messaggio);

//Questo codice se il campo è vuoto mette a video la barretta
if ($citta == '') {
$citta ="&nbsp;-";
}

//Questo codice se il campo è vuoto mette a video la barretta
if ($suoemail == '') {
$suoemail = "-";
}

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "content-type: text/html; charset=utf-8\r\n";
$headers .= "X-Mailer: PHP\n"; 
$headers .= "From: Gruppoalveo <[email protected]>\r\n"; 

$headers1  = "MIME-Version: 1.0\r\n";
$headers1 .= "content-type: text/html; charset=utf-8\r\n";
$headers1 .= "X-Mailer: PHP\n"; 
$headers1 .= "From: $suoemail\r\n"; 

//Messaggio del Visitatore a me 
$me = "Me <[email protected]>";  
$oggetto = "Messaggio del visitatore ALVEO by Akuna";  //Le email vanno formattate con HTML
$messaggioM = "<html>
<head>
</head>
<body>
<table>
<tr>
<td>
<p style=\"font-family:arial;font-size:17px;color:#000080;font-weight:bold;\">
MESSAGGIO DEL VISITATORE</p>
</td>
</tr>
<tr>
<td>
<p style=\"font-family:arial;font-size:11px;color:#000080;\">".crea_data($data_locale)."</p>
</td>
</tr>
<tr>
<td>
<p style=\"font-family:arial;font-size:14px;color:#000080;\">
<br>
<div style=\"width:auto;height:4px;\"><span style=\"color:#666666;\">Nome:</span>&nbsp;&nbsp;$nome</div>
<br>
<div style=\"width:auto;height:4px;\"><span style=\"color:#666666;\">Citt&agrave;:</span>&nbsp;&nbsp;&nbsp;$citta</div>
<br>
<div style=\"width:auto;height:4px;\"><span style=\"color:#666666;\">Email:</span>&nbsp;&nbsp;$suoemail</div>
<br>
<div style=\"width:auto;height:4px;\"><span style=\"color:#666666;\">Ip:</span>&nbsp;&nbsp;<span style=\"font-family:arial;font-size:13px;\">$ip</span>&nbsp;&nbsp;<img style=\" border-right:1px solid #9c9e95; border-bottom:1px solid #9c9e95; width:16px; height:12px; vertical-align:-13%;\" src=\"http://gruppoalveo.it/$file_to_check\" alt=\"".$countries[$two_letter_country_code][1]."\" title=\"".$countries[$two_letter_country_code][1]."\">&nbsp;&nbsp;".$countries[$two_letter_country_code][1]."</div>
<br>
<br>
<p style=\"color:#666666;margin-bottom:10px;\">Messaggio:</p>
<i>$messaggio</i>
<br>
<br>
<br>
</p>
</td>
</tr>
</table> 
</body>
</html>";
//Invio dell'email 
mail($me,$oggetto,$messaggioM,$headers1); 

//Invio email di ringraziamento al Visitatore
$visitor1 = "$suoemail";
$oggetto1 = "Ringraziamento"; 
$messaggioM1 = "<html>
<head>
</head>
<body>
<table>
<a href=\"http://gruppoalveo.it\" target=\"_blank\"><img style=\"width:680px; height:139px;\" src=\"http://gruppoalveo.it\immagini/alveo_680x139.jpg\" alt=\"Gruppoalveo\" title=\"ALVEO by Akuna\"></a> 
<tr>
<td>
<p style=\"font-family:arial;font-size:14px;color:#000080;padding-top:10px;\">
<br>
Ciao&nbsp;<b>$nome</b>,
<br>
<br>
grazie per avermi scritto.
<br>
<br>
Ti risponderò appena possibile.
<br>
<br>
<br>
A presto
<br> 
<a href=\"http://gruppoalveo.it\" style=\"font-family:arial;font-size:13px;color:#0000ff;text-decoration:none;\">www.gruppoalveo.it</a>
</p>
</td>
</tr>
</table>
<table>
<br>
<tr>
<td>
<p style=\"background-color:#e6e6e6;width:1000px;height:20px;line-height:20px;font-family:arial;font-size:12px;color:#9e0001;\">
----- Original Message -----</p>
</td>
</tr>
<tr>
<td>
<p style=\"background-color:#f2f2f2;width:1000px;\">
<br>
$messaggioM</p>
</td>
</tr>
</table>
</body>
</html>";
//Invio dell'email 
mail($visitor1,$oggetto1,$messaggioM1,$headers); 
}
 }
?>
  
<!DOCTYPE html> 
<head>
<meta charset="utf-8">
<script src="script.js"></script>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<title>Scrivimi2</title>
</head>
	
<body id="scriv2">

<?php
if(isset($ritenta)) echo $ritenta;
if(isset($meta)) echo $meta;
?>  

</body>
</html>
 
Ultima modifica:

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Premetto che ho provato e funziona. Lo script funziona a prescindere del browser al massimo potrei avere problemi con i css.

Detto questo hai provato a sostituire
PHP:
if(!isset($_POST['invia']))
diventa
PHP:
if(!isset($_POST['invia'])) {  
if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) { 
$errore .= "&bull;&nbsp;&nbsp;Codice errato!<br><br>"; 
} 
 }
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Premetto che ho provato e funziona. Lo script funziona a prescindere del browser al massimo potrei avere problemi con i css.

Detto questo hai provato a sostituire
PHP:
if(!isset($_POST['invia']))
diventa
PHP:
if(!isset($_POST['invia'])) {  
if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) { 
$errore .= "•**Codice errato!<br><br>"; 
} 
 }
Non ho capito questo ultimo post
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
A me funziona sia con IE, Chrome e Firefox!
non mi da nessun errore
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Il codice è questo
PHP:
if(!empty($_POST['invia'])) { 
if ($_SESSION['rand_code'] != strtolower(trim($_POST['validator']))) {
$errore .= "•**Codice errato!<br><br>";
}
 }
puoi fare una prova qui http://gruppoalveo.it/index.php?ritorna_scrivimi

invia il form con un codice captcha errato, nell'action vedrai in alto:

Notice: Undefined index: rand_code in /membri/gruppoalveo/scrivimi2.php on line 66
Tu hai detto se si sbaglia captcha code! io li ho sbagliati e nella pagina scrivimi2.php non vedo errori!