Undefined index

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
mistero del sabato sera
ho questo form su diversi siti, tutti funzionanti

HTML:
<?php //riga 1
if (!isset($_SESSION)){ //riga 2
	session_start();//riga 3
 }//riga 4
 ?>
<!-- varie righe di intestasione e alcun stuli di css interni -->

<?php// riga 123

$invia=$_POST['Submit']; //************riga 125
$code=trim($_POST['code']);////************riga 126
$codeEStr=$_SESSION['estratti'];//************riga 127

if($invia=="Invia" && $code== $codeEStr){
/* varie righe  con post e per controllo dati da form ed invio con classe mailerphp*/
}
 ?>
<!-- inizio form -->
<form name="form_caTWeb_01" method="post" action="form_01.php" class="email">

<!-- 
vari campi di input dati (i soliti)
-->
<?php
/* 
estrazione numeri casuali per cpat trasmessi in sessione  vedi $codeEStr

$_SESSION['estratti']=trim($estratti);
*/
?>
 <input type="submit" name="Submit" value="Invia" class="imputEmail">
 <input type="reset" name="Reset" value="RESET" class="imputEmail">
</form>
<!-- fine form, body e html-->

oggo ho caricato un sito che ha il form uguale (salvo l'email del destinatario) e meraviglia delle meraviglie è saltato fuori questo errore

Notice: Undefined index: Submit in C:\Hostings\xyz.it\Web\emailMWsprt\form_01.php on line 125
Notice: Undefined index: code in C:\Hostings\xyz.it\Web\emailMWsprt\form_01.php on line 126
Notice: Undefined index: estratti in C:\Hostings\xyz.it\Web\emailMWsprt\form_01.php on line 127

fatto prove su prove su tutti funziona meno che su questo.
devo precisare che
1. i siti, con l'esclusione di questo, sono su aruba
2. fatta girare nella root una pagina con phpinfo() risulta php 5.1 (io ho la 5.2.3 ma credo che per quanto usato sia ininfluente)

qualcuno sa risolvermi il mistero?
grazie

p.s.
se non ci credete vi do gli indirizzi per verificare
 
ciao
d'accordo non ho usato il termine giusto, ma perchè sul server di questo sito mi da la notice mentre tutti gli altri no?
ho circa 10 siti con tale form tutti funzionano perfettamente senza notice, l'unica cosa diversa, come detto, è l'indirizzo del destinatario.
 
dimenticavo
quasta mattina ho provato a caricare il form nello spazio di un mio sito (su aruba) e chiamato il form
tutto funziona alla perfezione e l'email arriva, senza alcuna notice:confused:
 
ho provato e questo il risultato

Notice: Undefined index: Submit in C:\Hostings\xyz.it\Web\emailMWsprt\form_01.php on line 125

Notice: Undefined index: code in C:\Hostings\xyz.it\Web\emailMWsprt\form_01.php on line 126

Notice: Undefined index: estratti in C:\Hostings\xyz.it\Web\emailMWsprt\form_01.php on line 127

PHP:
$_POST['Submit']=isset($_POST['Submit'])?$_POST['Submit']:"";//riga 124
$_POST['code']=isset($_POST['code'])?$_POST['code']:"";//********************125
$_SESSION['estratti']=isset($_SESSION['estratti'])?$_SESSION['estratti']:"";//riga **********************126

$invia=$_POST['Submit'];//*********************************************************riga 127
$code=trim($_POST['code']);//riga128
$codeEStr=$_SESSION['estratti'];//riga 129

nonostante l'isset non è cambiato molto
 
ciao
eppure è così, contunua (su tale server) a dare lo stesso errore.
non so se è risolto anche
per la prima riga ($_POST['Submit'])
in quanto non vedo la pagina completa in remoto.

comunque, cosa che non capisco, caricato i medesimi identici files su aruba non da errore
 
Il problema sta nel fatto che l'error_reporting del Php.ini relativo al server in cui si visualizzano gli errori consente (giustamente) la visualizzazione dei notice.
Paradossalmente quindi è più corretto l'unico che ti restituisce le notifiche in quanto ti consente di debuggare uno script fino ai minimi particolare.

Nel tuo codice $_POST['Submit'] etc. restituiscono errore se appunto non è avvenuto l'invio della variabile tramite post.

Eviti il notice con un controllino:

PHP:
if(isset($_POST['Submit']))
  { 
    $invia=$_POST['Submit'];
  }else{ 
    $invia="";
  }
 
ciao (bannatore folle)
scusa ma quello suggerito da folippo.toso

$_POST['Submit']=isset($_POST['Submit'])?$_POST['Submit']:"";

non è la stessa cosa di quello che mi dici tu?

isset( $_POST['Submit']) "dovrebbe" ritornare FALSE o TRUE (0 o 1), quindi è gia una verifica se ho dato il submit.

potrei scrivere

$inviai=isset($_POST['Submit'])?"invia":"";

comunque proverò anche con quanto detto da te, poi ti faccio sapere
 
ciao
sembrerebbe che con l'eliox-system ci sia un miglioramento
ora delle volete funzione e delle volte da errore.

comunque, indipendentemente dall'errore l'email arriva:confused:
 

Discussioni simili