modulo registrazione utenti, cicli if di verifica

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve, ho creato un modulo per la registrazione degli utenti su di un sito. Il modulo prevede nome, password, email, squadra, avatar. Per l'avatar avevo previsto un modulo per il caricamento del file nel server. Il tutto funziona correttamente, ma vorrei che l'avatar non sia necessario per la registrazione. Il problema è che se non inserisco l'avatar, e quindi non carico il file, il processo di registrazione si blocca su una pagina bianca. Come posso fare?

questo è il codice
PHP:
<?php

$nome_utente = $_POST['nome_utente'];
$password_utente = $_POST['password_utente'];
$password_criptata = md5($password_utente);
$email_utente = $_POST['email_utente'];
$squadra_utente = $_POST['squadra_utente'];
$avatar_utente = $_POST['avatar_utente'];

//dati database
$host = "localhost";
$username = "torneoborgonara";
$password = "";
$database = "my_torneoborgonara";
$tabella = "utenti";

//connessione e invio al DB
$connessione = mysql_connect($host, $username, $password) or die("Connessione DB fallita");
mysql_select_db($database, $connessione) or die("Selezione DB fallita");

//controllo che i campi obbligatori non siano vuoti
if(!$nome_utente) {
			  $msg = "
<table>
	<tr>
		<td><img src=\"ico/error.png\"></td>
        <td class='mess'><b>Non hai inserito un nome utente!</b><br>Torna indietro e modifica i tuoi dati</td>
    </tr>
</table>";

} else {
	
	if(!$password_utente) {		
				  $msg = "
	<table>
		<tr>
			<td><img src=\"ico/error.png\"></td>
			<td class='mess'><b>Non hai inserito una password!</b><br>Torna indietro e modifica i tuoi dati</td>
		</tr>
	</table>";

	} else {
	
		if(!$email_utente) {		
					  $msg = "
		<table>
			<tr>
				<td><img src=\"ico/error.png\"></td>
				<td class='mess'><b>Non hai inserito una email!</b><br>Torna indietro e modifica i tuoi dati</td>
			</tr>
		</table>";
	
		} else {
		
			//controllo email
			function chkEmail($email)
			{
				// elimino spazi, "a capo" e altro alle estremità della stringa
				$email = trim($email);
			
				// se la stringa è vuota sicuramente non è una mail
				if(!$email) {
					return false;
				}
			
				// controllo che ci sia una sola @ nella stringa
				$num_at = count(explode( '@', $email )) - 1;
				if($num_at != 1) {
					return false;
				}
			
				// controllo la presenza di ulteriori caratteri "pericolosi":
				if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
					return false;
				}
			
				// la stringa rispetta il formato classico di una mail?
				if(!preg_match( '/^[\w\.\-][email protected]\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
					return false;
				}
			
				return true;
			}

			$email = $email_utente;
	
			if(chkEmail($email)) {
			
				if (!$avatar_utente) {

				$target2 = "avatar/standard.png"	

//carico i dati con avatar standard
$commenti = "INSERT INTO $tabella (id,nome,pass,avatar,email,squadra) VALUES('','$nome_utente','$password_criptata','$target2','$email_utente','$squadra_utente')"; 
mysql_query($commenti) or die("Errore...\n<br />Query: " . $commenti . "<br />\nDettagli: (" . mysql_errno() . ") " . mysql_error()); 			
				
//header("refresh:3; url=".$_SERVER['HTTP_REFERER']);
header("refresh:3; url=index.php");	

				} else {
			
					do {
						if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
							
							// Controllo che il file non superi i 18 KB
							if ($_FILES['avatar']['size'] > 18432) {
								  $msg = "
					<table>
						<tr>
							<td><img src=\"ico/error.png\"></td>
							<td class='mess'><b>Il file caricato non deve superare i 18 KB!</b><br>Torna indietro e carica un nuovo file/td>
						</tr>
					</table>";
								  break;
							}
							
							// Realizzo un nuovo nome casuale per il file. 
							$ran = rand () ;
							$ran2 = $ran.".";
							$target = "avatar/";
							$ext = "jpg";
							$target2 = $target . $ran2.$ext; 
							
							echo" il file si chiama ".$target2;
							
							// Funzione per separare l'estensione dal resto del nome file 
							//function findexts ($filename) 
							//{ 
								//$filename = strtolower ($filename); 
								//$exts = split("[/\\.]", $filename); 
								//$n = count($exts)-1; 
								//$exts = $exts[$n]; 
								//return $exts; 
								
								//echo $filename;		
							//} 

							
							// Ottengo le informazioni sull'immagine
							list($width, $height, $type, $attr) = getimagesize($_FILES['avatar']['tmp_name']);
							
							// Controllo che le dimensioni (in pixel) non superino 160x180
							if (($width > 160) || ($height > 180)) {
								  $msg ="
					<table>
						<tr>
							<td><img src=\"ico/error.png\"></td>
							<td class='mess'><b>Le dimensioni del file non possono superare i 160x180!</b><br>Torna indietro e carica un nuovo file</td>
						</tr>
					</table>";
								  break;
							}
							
							// Controllo che il file sia in uno dei formati GIF, JPG o PNG
							//if (($type!=1) && ($type!=2) && ($type!=3)) {
								  //$msg = "<p>Formato non corretto!!</p>";
								  //break;
							//}
							
							// Verifico che sul sul server non esista già un file con lo stesso nome
							//if (file_exists('avatar/'.$_FILES['avatar']['name'])) {
							  //$msg = "File già esistente sul server. Rinominarlo e riprovare.";
							  //break;
							//}

							//$ext = findexts ($_FILES['uploaded']['name']); 
						
							// Sposto il file nella cartella da me desiderata rinominandolo come in precedenza
							if (move_uploaded_file($_FILES['avatar']['tmp_name'], $target2)) {
								  $msg = "
					<table>
						<tr>
							<td><img src=\"ico/ok.png\"></td>
							<td class='mess'><b>Registrazione avvenuta con successo!</b><br>Verrai rindizzato alla home page tra 3 secondi</td>
						</tr>
					</table>";
					
//carico i dati con avatar scelto
$commenti = "INSERT INTO $tabella (id,nome,pass,avatar,email,squadra) VALUES('','$nome_utente','$password_criptata','$target2','$email_utente','$squadra_utente')"; 
mysql_query($commenti) or die("Errore...\n<br />Query: " . $commenti . "<br />\nDettagli: (" . mysql_errno() . ") " . mysql_error()); 			
					
							//header("refresh:3; url=".$_SERVER['HTTP_REFERER']);
							header("refresh:3; url=index.php");				

								  break;
							} else {
								$msg = "Errore caricamento file";
							}
							
						}
					} while (false);
				 			
				
				
			} else {
				 
				$msg = "
				<table>
					<tr>
						<td><img src=\"ico/error.png\"></td>
						<td class='mess'><b>Formato email errato!</b><br>Torna indietro e modifica i tuoi dati</td>
					</tr>
				</table>";
	
			}
		}
	}
}	

echo $msg;

?>
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
volevo aggiungere che l'errore che mi viene dato è il seguente

Parse error: syntax error, unexpected T_VARIABLE in /membri/torneoborgonara/conferma_registrazione.php on line 110

relativo alla riga

PHP:
$commenti = "INSERT INTO $tabella (id,nome,pass,avatar,email,squadra) VALUES('','$nome_utente','$password_criptata','$target2','$email_utente','$squadra_utente')";
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Guarda di solito non si chiede l'avatar alla registrazione oppure se si chiede è facoltativo (come vuoi fare tu).
Intanto prova a stampare la query (echo $commenti) e commenta l'esecuzione della stessa, copia quello che ti che ottieni in phpmyadmin e vedi che errore ti da, se te ne da.
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
infatti era mia intenzione non rendere indispensabile l'utilizzo dell'avatar per la registrazione, ma volevo comunque utilizzarlo come opzione. Il problema è che se procedo alla registrazione senza inserire l'avatar mi da quel problema che ho riportato. Credo proprio che il problema sia proprio nella quary (la prima), infatti l'errore fa riferimento proprio a $commenti
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Prova a stampare la query. Prendi il risultato e metti lo direttamente in phpmyadmin e vedi che dice.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
PHP:
echo $commenti;
Poi metti direttamente la query dove hai e vedi il db (phpmyadmin) premi sql e li dentro metti la query che ti stampa. Dai invio e vedi gli errori che ti da.
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
non posso stampare $commenti, l'errore sta proprio li, mi dice che è unexpected T_VARIABLE
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
ho provato a fare anche in un altro modo, ovvero inserendo una if prima del ciclo do per l'inserimento dell'immagine. Come condizioni ho messo $avatar_utente == "" (ovvero quando la stringa della variabile è vuota), ma in questo anche se carico l'immagine poi nel db non viene registrata (al suo posto $target2 = "avatar/standard.png", che dovrebbe invece verificarsi solo quando la stringa è vuota, e non sempre).

PHP:
$nome_utente = $_POST['nome_utente'];
$password_utente = $_POST['password_utente'];
$password_criptata = md5($password_utente);
$email_utente = $_POST['email_utente'];
$squadra_utente = $_POST['squadra_utente'];
$avatar_utente = $_POST['avatar_utente'];

//dati database
$host = "localhost";
$username = "torneoborgonara";
$password = "";
$database = "my_torneoborgonara";
$tabella = "utenti";

//connessione e invio al DB
$connessione = mysql_connect($host, $username, $password) or die("Connessione DB fallita");
mysql_select_db($database, $connessione) or die("Selezione DB fallita");

//controllo che il campo nome non sia già usato

//controllo che i campi obbligatori non siano vuoti
if(!$nome_utente) {
			  $msg = "
<table>
	<tr>
		<td><img src=\"ico/error.png\"></td>
        <td class='mess'><b>Non hai inserito un nome utente!</b><br>Torna indietro e modifica i tuoi dati</td>
    </tr>
</table>";

} else {
	
	if(!$password_utente) {		
				  $msg = "
	<table>
		<tr>
			<td><img src=\"ico/error.png\"></td>
			<td class='mess'><b>Non hai inserito una password!</b><br>Torna indietro e modifica i tuoi dati</td>
		</tr>
	</table>";

	} else {
	
		if(!$email_utente) {		
					  $msg = "
		<table>
			<tr>
				<td><img src=\"ico/error.png\"></td>
				<td class='mess'><b>Non hai inserito una email!</b><br>Torna indietro e modifica i tuoi dati</td>
			</tr>
		</table>";
	
		} else {
		
			//controllo email
			function chkEmail($email)
			{
				// elimino spazi, "a capo" e altro alle estremità della stringa
				$email = trim($email);
			
				// se la stringa è vuota sicuramente non è una mail
				if(!$email) {
					return false;
				}
			
				// controllo che ci sia una sola @ nella stringa
				$num_at = count(explode( '@', $email )) - 1;
				if($num_at != 1) {
					return false;
				}
			
				// controllo la presenza di ulteriori caratteri "pericolosi":
				if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
					return false;
				}
			
				// la stringa rispetta il formato classico di una mail?
				if(!preg_match( '/^[\w\.\-][email protected]\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
					return false;
				}
			
				return true;
			}

			$email = $email_utente;
	
			if(chkEmail($email)) {
			
				if ($avatar_utente == "") {
							
							$target2 = "avatar/standard.png";
							
//carico i dati con avatar scelto
$commenti = "INSERT INTO $tabella (id,nome,pass,avatar,email,squadra) VALUES('','$nome_utente','$password_criptata','$target2','$email_utente','$squadra_utente')"; 
mysql_query($commenti) or die("Errore...\n<br />Query: " . $commenti . "<br />\nDettagli: (" . mysql_errno() . ") " . mysql_error());	
					
//header("refresh:3; url=".$_SERVER['HTTP_REFERER']);
header("refresh:3; url=index.php");	

								  $msg = "
							<table>
								<tr>
									<td><img src=\"ico/ok.png\"></td>
									<td class='mess'><b>Registrazione avvenuta con successo!</b><br>Verrai rindizzato alla home page tra 3 secondi</td>
								</tr>
							</table>";
				
				} else {
					
					do {
						if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
							
							// Controllo che il file non superi i 18 KB
							if ($_FILES['avatar']['size'] > 18432) {
								  $msg = "
							<table>
								<tr>
									<td><img src=\"ico/error.png\"></td>
									<td class='mess'><b>Il file caricato non deve superare i 18 KB!</b><br>Torna indietro e carica un nuovo file</td>
								</tr>
							</table>";
								  break;
							}
							
							// Realizzo un nuovo nome casuale per il file. 
							$ran = rand () ;
							$ran2 = $ran.".";
							$target = "avatar/";
							$ext = "jpg";
							$target2 = $target . $ran2.$ext; 
							
							//echo" il file si chiama ".$target2;
							
							// Funzione per separare l'estensione dal resto del nome file 
							//function findexts ($filename) 
							//{ 
								//$filename = strtolower ($filename); 
								//$exts = split("[/\\.]", $filename); 
								//$n = count($exts)-1; 
								//$exts = $exts[$n]; 
								//return $exts; 
								
								//echo $filename;		
							//} 
								
							// Ottengo le informazioni sull'immagine
							list($width, $height, $type, $attr) = getimagesize($_FILES['avatar']['tmp_name']);
							
							// Controllo che le dimensioni (in pixel) non superino 160x180
							if (($width > 160) || ($height > 180)) {
								  $msg ="
							<table>
								<tr>
									<td><img src=\"ico/error.png\"></td>
									<td class='mess'><b>Le dimensioni del file non possono superare i 160x180!</b><br>Torna indietro e carica un nuovo file</td>
								</tr>
							</table>";
								  break;
							}
							
							// Controllo che il file sia in uno dei formati GIF, JPG o PNG
							//if (($type!=1) && ($type!=2) && ($type!=3)) {
								  //$msg = "<p>Formato non corretto!!</p>";
								  //break;
							//}
							
							// Verifico che sul sul server non esista già un file con lo stesso nome
							//if (file_exists('avatar/'.$_FILES['avatar']['name'])) {
							  //$msg = "File già esistente sul server. Rinominarlo e riprovare.";
							  //break;
							//}
								//$ext = findexts ($_FILES['uploaded']['name']); 
						
							// Sposto il file nella cartella da me desiderata rinominandolo come in precedenza
							if (move_uploaded_file($_FILES['avatar']['tmp_name'], $target2)) {
								  $msg = "
							<table>
								<tr>
									<td><img src=\"ico/ok.png\"></td>
									<td class='mess'><b>Registrazione avvenuta con successo!</b><br>Verrai rindizzato alla home page tra 3 secondi</td>
								</tr>
							</table>";
							
//carico i dati con avatar scelto
$commenti = "INSERT INTO $tabella (id,nome,pass,avatar,email,squadra) VALUES('','$nome_utente','$password_criptata','$target2','$email_utente','$squadra_utente')"; 
mysql_query($commenti) or die("Errore...\n<br />Query: " . $commenti . "<br />\nDettagli: (" . mysql_errno() . ") " . mysql_error());	
					
//header("refresh:3; url=".$_SERVER['HTTP_REFERER']);
header("refresh:3; url=index.php");				

								break;
							} else {
								$msg = "Errore caricamento file";
							}
						}
					} while (false);
				} 	 				
					
			} else {
				 
				$msg = "
				<table>
					<tr>
						<td><img src=\"ico/error.png\"></td>
						<td class='mess'><b>Formato email errato!</b><br>Torna indietro e modifica i tuoi dati</td>
					</tr>
				</table>";
	
			}
		}
	}
}	

echo $msg;
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Per stamparla basta commentare l'istruzione di esecuzione della query.
 
Discussioni simili
Autore Titolo Forum Risposte Data
B Dreamweaver modulo registrazione nuovi utenti PHP 10
M Problema con modulo registrazione e inserimento dati in database PHP 8
G Inserimento array proveniente da un modulo di registrazione con PHP e MySQL PHP 6
Z Modulo login e registrazione PHP 3
S Upload di un file all'interno di un modulo di registrazione PHP 10
M esiste un modulo per registrazione nuove email ? PHP 3
N Modulo registrazione PHP 1
X-Zeus Modulo di registrazione Javascript 12
C modulo registrazione Database 4
E modulo di registrazione con psw Javascript 2
L Ricezione dei dati su file php da modulo html PHP 6
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
R passaggio variabili tra modulo genitore a figlio jQuery 3
C prestashop paragamento contrassegno aiuto modulo E-Commerce 0
ANDREA20 [PHP] Modulo email invio PHP 5
ANDREA20 [PHP] form modulo contattp PHP 5
V [Visual Basic] Richiamare funzione su modulo per restituire list Visual Basic 0
A [PHP] Modulo mail PHP 3
B Errore PDOException: SQLSTATE[42000] modulo aggiuntivo Drupal Content Management System (CMS) 0
Eugene [Joomla] Problemi con modulo per strutture alberghiere JHotelreservation starter Joomla 6
L [ASP.Net] Realizzare modulo contatti PopUp ! ASP.NET 1
K Joomla: Modulo contatti in SP simple portfolio Joomla 0
F [HTML] Modulo d'ordine che arriva tramite email editabile ed inviabile. HTML e CSS 6
P modulo option php PHP 1
T [PHP] modulo inserimento in DB e apostrofi... PHP 1
D [WordPress] [PHP] Pulsante per auto riempire i campi in un modulo WordPress 1
giuseppe_123 [Magento] Creazione modulo statico sotto header Magento 0
E [PHP] creazioni nuove variabili per modulo di stampa PHP 1
Tony Recchia [PHP] Modulo mail HTML PHP 4
E Modulo PHP con campi Select PHP 7
L PHP e modulo PDF PHP 1
zorro modulo di iscrizione PHP 5
deleran [HTML] Modulo di ricerca adobe muse Windows e Software 7
ecosito [HTML ][PHP] rendere attivo il modulo contatti di un template HTML e CSS 9
R [PHP] [HTML] Creare script invio modulo contatti PHP 2
G Modulo PostePay E-Commerce 1
zorro Modulo login PHP 13
Benix89 Modulo per pagamento con la risposta ad alcune domande Magento 1
Benix89 Modulo per pagamento con la risposta ad alcune domande PHP 2
C modulo tipo banner Content Management System (CMS) 0
L Problema Bootstrap Modulo Email + php PHP 1
asevenx Realizzare modulo per selezionare elementi da una lista PHP 1
MarcoGrazia [PDO][PHP[MySQL] Piccolo modulo di ricerca in un sito tramite l'operatore LIKE Snippet PHP 0
ecosito Collegare un modulo contatti PHP su un modulo contatti HTML HTML e CSS 1
Z creazione modulo e pagina invio php per invio dati al db PHP 2
C Problemi con l'invio di un modulo web PHP 5
M Form dinamico in modulo nella pagina HTML HTML e CSS 2
N Input html, modulo salvato HTML e CSS 6
A Modulo custom Drupal e applicazione java Content Management System (CMS) 0
A Compilazione modulo pdf o word con dati estratti da db PHP 2

Discussioni simili