[RISOLTO] Upload jpeg e pdf in folder (PHP)

Nickname

Utente Attivo
18 Set 2013
122
0
0
Salve a tutti, avrei una domanda da fare, ho creato un form per la registrazione degli utenti, ed ho aggiunto anche la possibilità di caricare una propria immagine e un proprio curriculum.
Il tutto funziona bene, solo che, se non inserisco l'immagine e il curriculum, quando clicco su registra mi dà alcuni messaggi di errore che io avevo inserito,
Posto la parte del codice che riguarda l'inserimento della jpg e del pdf per spiegarmi meglio:

PHP:
if($_FILES['foto']['type'] != "image/jpeg") die ("Il formato non è supportato, inserire file .jpg");
elseif (file_exists('uploadimg/'.$_FILES['foto']['name'])) die ("File già presente nel sito, rinominare il file.");
elseif($_FILES['foto']['size'] > 2097152) die ("Il file non deve superare 2 MB");
elseif (($width > 200) || ($height > 200)) die ("Le dimensioni dell'immagine non devono superare 200 x 200 pixel.");

move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']);



if($_FILES['referenze']['type'] != "application/pdf") die ("Il formato non è supportato, inserire file .pdf");
elseif (file_exists('uploadpdf/'.$_FILES['referenze']['name'])) die ("File già presente nel sito, rinominare il file.");
elseif($_FILES['referenze']['size'] > 2097152) die ("Il file non deve superare 2 MB");

move_uploaded_file($_FILES['referenze']['tmp_name'], 'uploadpdf/' . $_FILES['referenze']['name']);

Grazie a tutti ;)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, verifica prima che sia settato e chenon sia vuoto
PHP:
if (isset($_FILES['foto']) && !empty($_FILES['foto'])) {
    // il resto del codice
}
stessa cosa per il pdf
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
Ciao, verifica prima che sia settato e chenon sia vuoto
PHP:
if (isset($_FILES['foto']) && !empty($_FILES['foto'])) {
    // il resto del codice
}
stessa cosa per il pdf

Ciao, innanzitutto grazie per aver risposto.
Ho provato come mi hai suggerito ma niente, stesso problema.
Praticamente lo script mi obbliga ad inserire sia la foto che il curriculum, quando io invece voglio che sia solo opzionale.
Precisamente mi dice
Il formato non è supportato, inserire file .jpg
e se poi magari metto la foto invece dice
Il formato non è supportato, inserire file .pdf
Se inserisco entrambi funziona.
Perché praticamente vuole che siano inseriti quei tipi di file, solo che non trova nulla e quindi riporta il messaggio.
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
ciao, proverei così (però è molto ipotetico poiché non ho controllato niente)

PHP:
/***verifico esistenza file e imposto var***/
if(isset($_FILES['foto']['type']) && empty($_FILES['foto']['type'])){$controll_1=true;}
if(isset($_FILES['referenze']['type']) && empty($_FILES['referenze']['type'])){$controll_2=true;}

if(isset($controll_1) || isset($controll2)){
/*** o la foto o il pdf esistono ***/

	if($controll_1){/**la foto esiste***/
	
		if($_FILES['foto']['type'] != "image/jpeg") die ("Il formato non è supportato, inserire file .jpg"); 

			elseif (file_exists('uploadimg/'.$_FILES['foto']['name'])) die ("File già presente nel sito, rinominare il file."); 
			elseif($_FILES['foto']['size'] > 2097152) die ("Il file non deve superare 2 MB"); 
			elseif (($width > 200) || ($height > 200)) die ("Le dimensioni dell'immagine non devono superare 200 x 200 pixel."); 

			move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']); 
	
	}
	
	if($controll_2){/**il pdf esiste**/
		
		
		if($_FILES['referenze']['type'] != "application/pdf") die ("Il formato non è supportato, inserire file .pdf"); 
		elseif (file_exists('uploadpdf/'.$_FILES['referenze']['name'])) die ("File già presente nel sito, rinominare il file."); 
		elseif($_FILES['referenze']['size'] > 2097152) die ("Il file non deve superare 2 MB"); 

		move_uploaded_file($_FILES['referenze']['tmp_name'], 'uploadpdf/' . $_FILES['referenze']['name']);  
	}

}else{
/**l'utente non ha inviato niente***/
}
?>
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
ciao, proverei così (però è molto ipotetico poiché non ho controllato niente)

PHP:
/***verifico esistenza file e imposto var***/
if(isset($_FILES['foto']['type']) && empty($_FILES['foto']['type'])){$controll_1=true;}
if(isset($_FILES['referenze']['type']) && empty($_FILES['referenze']['type'])){$controll_2=true;}

if(isset($controll_1) || isset($controll2)){
/*** o la foto o il pdf esistono ***/

	if($controll_1){/**la foto esiste***/
	
		if($_FILES['foto']['type'] != "image/jpeg") die ("Il formato non è supportato, inserire file .jpg"); 

			elseif (file_exists('uploadimg/'.$_FILES['foto']['name'])) die ("File già presente nel sito, rinominare il file."); 
			elseif($_FILES['foto']['size'] > 2097152) die ("Il file non deve superare 2 MB"); 
			elseif (($width > 200) || ($height > 200)) die ("Le dimensioni dell'immagine non devono superare 200 x 200 pixel."); 

			move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']); 
	
	}
	
	if($controll_2){/**il pdf esiste**/
		
		
		if($_FILES['referenze']['type'] != "application/pdf") die ("Il formato non è supportato, inserire file .pdf"); 
		elseif (file_exists('uploadpdf/'.$_FILES['referenze']['name'])) die ("File già presente nel sito, rinominare il file."); 
		elseif($_FILES['referenze']['size'] > 2097152) die ("Il file non deve superare 2 MB"); 

		move_uploaded_file($_FILES['referenze']['tmp_name'], 'uploadpdf/' . $_FILES['referenze']['name']);  
	}

}else{
/**l'utente non ha inviato niente***/
}
?>


Mh no non funziona :crying:
Sempre stesso problema.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
testato
PHP:
<?php
if (isset($_FILES['foto']) && !empty($_FILES['foto']['name'])) {
    var_dump($_FILES['foto']);
    if ($_FILES['foto']['type'] != "image/jpeg")
        die("Il formato non è supportato, inserire file .jpg");
    elseif (file_exists('uploadimg/' . $_FILES['foto']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['foto']['size'] > 2097152)
        die("Il file non deve superare 2 MB");
    elseif (($width > 200) || ($height > 200))
        die("Le dimensioni dell'immagine non devono superare 200 x 200 pixel.");

    move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']);
}
if (isset($_FILES['referenze']) && !empty($_FILES['referenze']['name'])) {
    if ($_FILES['referenze']['type'] != "application/pdf")
        die("Il formato non è supportato, inserire file .pdf");
    elseif (file_exists('uploadpdf/' . $_FILES['referenze']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['referenze']['size'] > 2097152)
        die("Il file non deve superare 2 MB");

    move_uploaded_file($_FILES['referenze']['tmp_name'], 'uploadpdf/' . $_FILES['referenze']['name']);
}
?>
<form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'>

    <p><input name="foto" type="file" enctype='multipart/form-data'/></p>

    <p><input name="upload" type="submit" value="Carica immagine" /></p>
</form>
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
testato
PHP:
<?php
if (isset($_FILES['foto']) && !empty($_FILES['foto']['name'])) {
    var_dump($_FILES['foto']);
    if ($_FILES['foto']['type'] != "image/jpeg")
        die("Il formato non è supportato, inserire file .jpg");
    elseif (file_exists('uploadimg/' . $_FILES['foto']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['foto']['size'] > 2097152)
        die("Il file non deve superare 2 MB");
    elseif (($width > 200) || ($height > 200))
        die("Le dimensioni dell'immagine non devono superare 200 x 200 pixel.");

    move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']);
}
if (isset($_FILES['referenze']) && !empty($_FILES['referenze']['name'])) {
    if ($_FILES['referenze']['type'] != "application/pdf")
        die("Il formato non è supportato, inserire file .pdf");
    elseif (file_exists('uploadpdf/' . $_FILES['referenze']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['referenze']['size'] > 2097152)
        die("Il file non deve superare 2 MB");

    move_uploaded_file($_FILES['referenze']['tmp_name'], 'uploadpdf/' . $_FILES['referenze']['name']);
}
?>
<form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'>

    <p><input name="foto" type="file" enctype='multipart/form-data'/></p>

    <p><input name="upload" type="submit" value="Carica immagine" /></p>
</form>


Grazie mille funziona, solo che alla fine della registrazione mi dà questo problema in ogni caso

array(5) { ["name"]=> string(10) "header.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(25) "C:\PHP\upload\php98EB.tmp" ["error"]=> int(0) ["size"]=> int(18936) }

Però l'utente viene registrato, se inserisco la foto o il pdf però, registra l'utente lo stesso, e carica correttamente i file nello spazio, solo che poi nel database, nella tabella degli utenti, il pdf e la foto sono sfalsati, dove dovrebbe esserci la foto c'è il file in pdf, e nel file pdf mi dà C:pHPuploadphp9A25.tmp.
Non so perché. Help !!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Avevo dimenticato di togliere il var_dump
PHP:
var_dump($_FILES['foto']);
l'ho messo per vedere i dati che passavano
elimina la riga e risolvi
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
Avevo dimenticato di togliere il var_dump
PHP:
var_dump($_FILES['foto']);
l'ho messo per vedere i dati che passavano
elimina la riga e risolvi

Ok perfetto non dà più quella scritta, però rimane sempre lo stesso problema.
Cioè, come detto prima, l'utente viene registrato, se inserisco la foto o il pdf però, registra l'utente lo stesso, e carica correttamente i file nello spazio, solo che poi nel database, nella tabella degli utenti, il pdf e la foto sono sfalsati, dove dovrebbe esserci la foto c'è il file in pdf, e nel file pdf mi dà C:pHPuploadphp9A25.tmp.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Avrai invertito i valori nell query che non vedo nel codice che hai postato
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Il codice in esame serve solo per caricare i file sul server
quindi non è qui il problema, posta anche la query
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
Il codice in esame serve solo per caricare i file sul server
quindi non è qui il problema, posta anche la query

Posto tutto che è meglio, anche perché ci saranno sicuramente svariati errori xD

PHP:
<?php 

if(!isset($_GET['passkey'])){
		
if(!isset($_POST['invia'])){ ?>
			
<form method="post" action='<?php echo $_SERVER['PHP_SELF'] ?>' id="formregistrazione" enctype="multipart/form-data">

<table width="364" align="center">
   <tr>
    <td align="right" id="gestione" for="foto">Foto</td>
    <td align="center"><input type="file" name="foto" enctype='multipart/form-data' id="foto" /></td>
  </tr>
   <tr>
    <td align="right" id="gestione" for="referenze">Referenze</td>
    <td align="center"><input type="file" name="referenze" id="referenze" /></td>
  </tr>
</table>

<br /><br />
<span style="color: #F00; font-weight: bold; font-family: 'Rosario'; margin-left: 260px;">I campi contrassegnati con * sono obbligatori.</span><br /><br />
<input style="margin-left: 370px;" type="submit" name="invia" id="registrati" value="Registra" />
</form>
			
           
<?php	} else {

$codiceconferma = md5(uniqid(rand()));


$foto = mysql_real_escape_string($_FILES["foto"]["name"]);
$foto = mysql_real_escape_string($_FILES["referenze"]["name"]);


if($password1 == "" || $password2 == ""){
echo "Devi riempire tutti i campi contrassaegnati con *";
}elseif($password2 != $password1){
echo "Le password devono coincidere";
}else{

$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à disponibili";

} else {
	

if (isset($_FILES['foto']) && !empty($_FILES['foto']['name'])) {
    if ($_FILES['foto']['type'] != "image/jpeg")
        die("Il formato non è supportato, inserire file .jpg");
    elseif (file_exists('uploadimg/' . $_FILES['foto']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['foto']['size'] > 2097152)
        die("Il file non deve superare 2 MB");
    elseif (($width > 200) || ($height > 200))
        die("Le dimensioni dell'immagine non devono superare 200 x 200 pixel.");

    move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']);
}
if (isset($_FILES['referenze']) && !empty($_FILES['referenze']['name'])) {
    if ($_FILES['referenze']['type'] != "application/pdf")
        die("Il formato non è supportato, inserire file .pdf");
    elseif (file_exists('uploadpdf/' . $_FILES['referenze']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['referenze']['size'] > 2097152)
        die("Il file non deve superare 2 MB");

    move_uploaded_file($_FILES['referenze']['tmp_name'], 'uploadpdf/' . $_FILES['referenze']['name']);
} 


$inviautentitemp = mysql_query("INSERT INTO utenti_temp (foto, referenze) VALUES ('$foto', '$referenze')");

if($inviautentitemp){

// qui c'è l'email di conferma

echo "Per completare la registrazione controlla la tua casella di posta elettronica (anche tra gli spam) e clicca sul link di attivazione.";

}else{

echo "Errore, link di attivazione non inviato.";

}
}
}
}

}
		
} else {
			
			$passkey = $_GET['passkey'];
			
			$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
			$risultatouser = mysql_query($sqlrecuperauser);
			
			if($risultatouser) {
			
$contauser = mysql_num_rows($risultatouser);

if($contauser == 1){


$foto = $rows ['foto'];
$referenze = $rows ['referenze'];


$passwordcript = md5($password);

$sqlconfermauser = mysql_query("INSERT INTO utenti (foto, referenze) VALUES ('$foto', '$referenze')");

if ($sqlconfermauser) {

echo "<br>Il tuo account è stato attivato";
$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");

} else {

echo "Errore!";

}

}
			
			}
			
		}

	?>

Ripeto che ci sono svariati errori sicuramente, ho dovuto eliminare alcune cose tipo le tabelle ecc riguardanti il nome, l'username le password ecc.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Il codice è molto confuso, comunque, chiami entrambe le variabili $foto, la seconda di conseguenza sovrascrive la prima

PHP:
$foto = mysql_real_escape_string($_FILES["foto"]["name"]);
$foto = mysql_real_escape_string($_FILES["referenze"]["name"]);
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
Il codice è molto confuso, comunque, chiami entrambe le variabili $foto, la seconda di conseguenza sovrascrive la prima

PHP:
$foto = mysql_real_escape_string($_FILES["foto"]["name"]);
$foto = mysql_real_escape_string($_FILES["referenze"]["name"]);

Cavolo è vero, ecco cosa succede a fare copia incolla xD
Si lo so è molto confuso e disordinato ma sono alle primissime armi con il php, comunque più in là lo sistemerò sicuramente.

Comunque perfetto funziona alla perfezione non so come ringraziarti :)

Avrei anche un'altra domanda riguardante il profilo utente, comincio una nuova discussione o continuo qui ?
Grazie mille ancora :D
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
visto che il titolo di questa riguarda l'upload ne inizierei un'altra
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [RISOLTO] Fatal error in Upload Multiplo di immagini PHP 2
F [Risolto] upload immagini con la classe di Baol74 con size immagine Classic ASP 15
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2

Discussioni simili