Variabile Undefined

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
Ciao a tutti io sono nuovo di qui e non trovando niente sul forum e ho pensato di potervi disturbare nella speranza che possiate darmi una mano...

il mio problema è questo, cotinua ad uscirmi questo messaggio di errore: (che sarebbe la parentesi graffa)

Notice: Undefined variable: sentmail in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 86
ERRORE, link di attivazione non inviato.

PHP:
<?php

	include 'header.php';

?>

	<div id="wrapper">
	
	<?php
		
		if(!isset($_GET['passkey'])) 
		{
		
			if(!isset($_POST['invia']))
			{ 
	?>
			<form method="post" action="#" id = "formregistrazione">
			
				<label for = "username">Username</label>
				<input type ="text" name= "username" id = "username" /> <br>
				<label for = "password1">Password</label>
				<input type ="password" name= "password1" id = "password1" /> <br>
				<label for = "password2">Ripeti Password</label>
				<input type ="password" name= "password2" id = "password2" /> <br>
				<label for = "email">Email</label>
				<input type ="text" name= "email" id = "email" /> <br>
				<input type ="submit" name = "invia" id= "registrati" value= "Registrati" />
			</form>
		<?php
			} 
			else
			{
				// crezione di un codice di conferma
				$codiceconferma = md5(uniqid(rand()));
				
				//valori del form
				
				$username = mysql_real_escape_string($_POST['username']);
				$password1 = mysql_real_escape_string($_POST['password1']);
				$password2 = mysql_real_escape_string($_POST['password2']);
				$email = mysql_real_escape_string($_POST['email']);
				
				
				// controllo campi vuoti e password
				
				if($username== "" || $email == "")
					{
					echo "Devi riempire tutti i campi";
					}
				elseif($password1 == "" || $password2 =="")
					{
					echo "Devi riempire tutti i campi";
					}
				elseif($password2 != $password1)
					{
					echo "Le password devono coincidere";
					}
				else
					{
					// inserisci i dati nel dbase_add_record
					$recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email= '$email'");
					$contausermail = mysql_num_rows($recuperauseremail);
					
					if ($contausermail > 0)
						{
						echo " Nome Utente o email già utilizzato";
						}
					else
						{
						// invia dati alla tabella utenti_temp
						
						$inviautentitemp = mysql_query("INSER INTO utenti_temp(codicediconferma; username, password, email) VALUES ('$codiceconferma','$username','password2', 'email')");
						
						if($inviautentitemp)
							{
							$to=$email;
							$suject = " Conferma la Registrazione";
							$header= "Da: Amministratore";
							$message="Ecco il tuo codice di attivazione \r\n";
							$message.="Clicca sul link per confermare la registrazione \r\n";
							$message.="http://127.0.0.1/sitoultimo/register.php?passkey=$codiceconferma"; // sevirebbe sito altervista
							
							$sentmail= mail($to,$subject,$message,$header);
							}
						if ($sentmail)
linea 86						{
							echo  "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							}
						else
							{
							echo "ERRORE, link di attivazione non inviato.";
							}
						}
					}
			}
			//else
			//{
		
			//}
		
		}
		?>
	
	
	</div>
	
	
	</body>
	</html>

vi prego aiutatemi non so più dove sbattere la testa, lo so già che sarà una sciochezza ma non riesco proprio a vederla... grazie a tutti!!!
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
sarebbe opportuno che tu scrivessi quale è la riga 86 in modo da identificare la variabile e poi cercare di risalire a dove può essere l'errore
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
ciao
sarebbe opportuno che tu scrivessi quale è la riga 86 in modo da identificare la variabile e poi cercare di risalire a dove può essere l'errore

Ciao Borgo
l'ho scritto nel codice qual'è la riga 86 comunque ti incollo il pezzo di codice qui:

PHP:
if ($sentmail) 
linea 86                        { 
                            echo  "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
                             } 
                        else 
                            { 
                            echo "ERRORE, link di attivazione non inviato."; 
                            }

Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
per prima cosa verifica se mail() funziona
PHP:
<?php
//....
$message.="http://127.0.0.1/sitoultimo/register.php?passkey=$codiceconferma"; // sevirebbe sito altervista
//$sentmail= mail($to,$subject,$message,$header);
var_dump(mail($to,$subject,$message,$header));//ritorna true se ok, false se non funzia
}
//.....
?>

p.s.
poi come ho già consigliato ad altri:
abbandona mail() che spesso da più grane che successi, e usa la classe phpmailer e simile
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
ciao
per prima cosa verifica se mail() funziona
PHP:
<?php
//....
$message.="http://127.0.0.1/sitoultimo/register.php?passkey=$codiceconferma"; // sevirebbe sito altervista
//$sentmail= mail($to,$subject,$message,$header);
var_dump(mail($to,$subject,$message,$header));//ritorna true se ok, false se non funzia
}
//.....
?>

p.s.
poi come ho già consigliato ad altri:
abbandona mail() che spesso da più grane che successi, e usa la classe phpmailer e simile

Ora ci proverò a usare la classe phpmailer, più che altro ho notato che non riesce nemmeno ad inserirmi i dati nella tabella utenti_tem, penso che sia proprio li l'errore il codice mi sembra giusto però..

PHP:
$inviautentitemp = mysql_query("INSERT INTO utenti_temp(codicediconferma; username, password, email) VALUES ('$codiceconferma','$username','password2', 'email')");
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
a parte un ; al posto di una ,
PHP:
<?php
//...
$inviautentitemp = mysql_query("INSERT INTO utenti_temp(codicediconferma; username, password, email) VALUES ('$codiceconferma','$username','password2', 'email')"); 
//...
?>
correggi
PHP:
<?php
//...
$inviautentitemp = mysql_query("INSERT INTO utenti_temp(codicediconferma, username, password, email) VALUES ('$codiceconferma','$username','password2', 'email')"); 
//...
?>
poi per verificare dividi la query e metti il solito var_dump
PHP:
<?php
//...
$q = "INSERT INTO utenti_temp(codicediconferma, username, password, email) VALUES ('$codiceconferma','$username','password2', 'email')";
var_dump($q);//qui vedi se la query viene scritta come deve essere
$inviautentitemp = mysql_query($q);
var_dump($inviautentitemp);//se resource... tutto ok, se false non ha funzionato
//...
?>
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
Ho provato a fare come mi hai detto, la risposta è stata questa e non mi ha scritto nella tabella:

string(139) "INSERT INTO utenti_temp(codicediconferma, username, password, email) VALUES ('462aa21f3bdb1c69f703c1040505b44e','ciao','password2', 'email')" bool(false)
Notice: Undefined variable: sentmail in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 89
ERRORE, link di attivazione non inviato.

Grazie e 1000 per l'aiuto che mi stai dando.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
considerato che la querystringa sembrerebbe sintatticamente corretta ma non fa la query verifica per prima cosa che i nomi tabella e campi siano perfettamente uguali a quelli che usi nella querysreinga (comprese maiuscole/minuscole)
verifica anche i dati di connessione non si sa mai
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
sono io che sono babbo!!!! era codiceconferma NON codicediconferma nella tabella!!!! ora inizia a scriverci i valori :)

fatto sta che ora il messaggio di errore torna:

string(138) "INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('5a8f597c88ea2d768a8ced97867e22ba','ciao','password2', 'email')" bool(true)

Notice: Undefined variable: subject in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 86

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 86
ERRORE, link di attivazione non inviato.


la riga 86 è questa

PHP:
$sentmail= mail($to,$subject,$message,$header);
							}
						if ($sentmail)
							{
							echo  "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							}
						else
							{
							echo "ERRORE, link di attivazione non inviato.";
							}

prima mi hai detto di usare la classe phpmailer potresti aiutarmi a sostituirla che non avendola mai usata non vorrei combinare altri danni...
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
ciao
considerato che la querystringa sembrerebbe sintatticamente corretta ma non fa la query verifica per prima cosa che i nomi tabella e campi siano perfettamente uguali a quelli che usi nella querysreinga (comprese maiuscole/minuscole)
verifica anche i dati di connessione non si sa mai

ho notato che nella tabella riesce solo ad inserirmi il codiceconferma l'user ma non la password e la mail :(

sono disperato :( aiutami per favore è un progetto per la scuola :(
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
ora riesce a scrivere tutto nella tabella :) mi ero dimentica il $ nel VALUE XD

PHP:
$q = "INSERT INTO utenti_temp(codicediconferma, username, password, email) VALUES ('$codiceconferma','$username','password2', 'email')";

qui mi ero dimenticato le ""

PHP:
$sentmail= mail($to,$subject,$message,$header);

:) che babbo!!!
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
ciao
considerato che la querystringa sembrerebbe sintatticamente corretta ma non fa la query verifica per prima cosa che i nomi tabella e campi siano perfettamente uguali a quelli che usi nella querysreinga (comprese maiuscole/minuscole)
verifica anche i dati di connessione non si sa mai

Dopo aver sistemato un po' di errori nel codice continuano a uscirmi questi errori, il resto funziona tutto ma questa è la sosa più importante e non va :(

Notice: Undefined variable: subject in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 87

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 87
bool(false)
Notice: Undefined variable: sentmail in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 88

Fatal error: Function name must be a string in D:\programmi\EasyPHP-12.1\www\sitoultimo\register.php on line 88

PHP:
var_dump(mail($to,$subject,$message,$header));
							$sentmail($to,$subject,$message,$header);
							
							}
						if ($sentmail)
							{
							echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							}
						else
							{
							echo "ERRORE, link di attivazione non inviato.";
							}
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Modifica così:
PHP:
$header .= "From: [email protected]\r\n";
$sentmail = mail($to, $subject, $message, $header);

if ($sentmail) {
    echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
} else {
    echo "ERRORE, link di attivazione non inviato.";
}
 

carlettooooo

Nuovo Utente
28 Nov 2012
10
0
0
Genova
Modifica così:
PHP:
$header .= "From: [email protected]\r\n";
$sentmail = mail($to, $subject, $message, $header);

if ($sentmail) {
    echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
} else {
    echo "ERRORE, link di attivazione non inviato.";
}

è scritto nella parte prima del codice...

PHP:
if($inviautentitemp) 
							{
							$to =$email;
							$suject = " Conferma la Registrazione";
							$header = "Da: Amministratore";
							$message ="Ecco il tuo codice di attivazione \r\n";
							$message.="Clicca sul link per confermare la registrazione \r\n";
							$message.="http://127.0.0.1/sitoultimo/register.php?passkey=$codiceconferma"; // sevirebbe sito altervista
							
							//var_dump(mail($to,$subject,$message,$header));
							
							$sentmail = mail ($to,$subject,$message,$header);
							
							}
						if ($sentmail)
							{
							echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							}
						else
							{
							echo "ERRORE, link di attivazione non inviato.";
							}
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Variabile undefined Javascript 5
E Inviare variabile a PHP da ciclo in JS Javascript 0
S Variabile in post su altra pagina PHP 2
F Passare variabile a pulsante in finestra modale PHP 2
R Nome input testo+variabile PHP 1
A inserire variabile php colore in div html PHP 2
N Variabile di sessione è un array PHP7 PHP 3
A variabile non riconosciuta PHP 0
K Cambiare font size su echo stringa variabile PHP 24
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M Inserire variabile nella value di una hidden PHP 3
A Problema nel passare la variabile PHP 0
C variabile in img Javascript 9
C [RISOLTO]Inserimento variabile php in input html PHP 20
N PDF fpdi passare variabile PHP 4
F Come passare una variabile al modal di bootstrap PHP 1
F Passare una variabile php dal DB mysql alla pagina PHP 3
M [PHP] Passare variabile di sessione con metodo GET PHP 10
S [PHP] Rendere visibile variabile di un costrutto if in un altro costrutto if PHP 1
T PHP: variabile che cambia ogni 5 giorni... PHP 3
Tommy03 Variabile PHP per impostare una proprietà CSS PHP 2
L [PHP] Passare variabile PHP 3
J Passaggio variabile tra 2 file php PHP 15
Tommy03 Variabile PHP dentro a JQuery PHP 3
A [PHP] Scopo di una variabile PHP 4
M [PHP] Salvare campo di una tabella in una variabile PHP 14
B [PHP] Valore variabile non riconosciuto PHP 1
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
P [PHP] $_GET non preleva variabile nell’URL PHP 4
A Php variabile immagine inesistente PHP 4
Shyson [PHP] Personalizzare variabile PHP 0
Monital Funzione php e campo database come variabile PHP 6
N [Javascript] For-loop su thead: tempo di esecuzione variabile Javascript 1
R Come creare report dinamico/variabile in Access Presentati al Forum 1
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
E assegnare a una variabile il contenuto di un url (javascript) Javascript 0
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
Elena Lazzarini [Magento] Prezzo variabile in base alla priorità di spedizione Magento 0
K [PHP] Paginazione Wordpress: passare variabile PHP 6
A [PHP] Passaare una variabile ad un PHP 2
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
P [PHP] Query con variabile PHP 2
napuleone scrivere in un file <?php $variabile PHP 1
A [PHP] Widget Meteo con località variabile PHP 0
paloppa [PHP] Dubbio print variabile PHP 27
paloppa [PHP] Dubbio valore variabile PHP 16
B Scrivere in una casella di testo una variabile PHP PHP 9
T [PHP] passare una variabile in una finestra MODAL di bootstrap PHP 3
R gestire il ritorno di una variabile con success Ajax 2
M [PHP] Mantenere variabile con datagrid nella pagina 2 PHP 1

Discussioni simili