IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

php mysql : upload des details concernant un fichier sans le nom du fichier lui meme


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Par défaut php mysql : upload des details concernant un fichier sans le nom du fichier lui meme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    <?php	 
     
    if(isset($_POST['submit'])=="Submit")
    	{
     
    		$etablissement = cleanData($_POST['etablissement']);	 
    		$classe = cleanData($_POST['classe']);	 
    		$session = cleanData($_POST['session']);	 
    		$matiere = cleanData($_POST['matiere']);	 
    		$annee_scolaire = cleanData($_POST['anescolaire']);
    		//$dossier = '../../assnet/uploads/'; //chemin absolu(vers la racine assnet)
    		//$fichier = basename($_FILES['epreuve']['name']);
     
    		//$file = basename($_FILES['epreuve']['name']);
     
    		//print "Data cleaned";	 
    		addData($etablissement, $classe, $session, $matiere, $annee_scolaire);	 
    	}	 
    	else
    	{	 
    	printForm();	 
    	}	 
     
    function checkUpload()
    {
    	//check for an uploaded file
    	if(isset($_FILES['epreuve'])){
    	//Validate the type. Should be pdf, doc, docx, ppt or pptx
     
    		$allowed_extensions = array('application/pdf','application/pdf','application/doc','application/docx','application/ppt','application/pptx');
    		if(in_array($_FILES['epreuve']['type'], $allowed_extensions)){
    		print "Uploading files...";
     
    			//move the file over
    			if(move_uploaded_file($_FILES['epreuve']['tmp_name'], "../../assnet/uploads/{$_FILES['epreuve']['name']}")){
    			echo "<p><em>The file has been uploaded</em></p>";
     
    			$file = "{$_FILES['epreuve']['name']}";
    			print "$file";
    			} //End of move... IF
    		} else{ //invalid type
    			echo '<p class="error">Please upload a pdf, doc, docx, ppt or pptx document</p>';
     
    			if($_FILES['epreuve']['error'] > 0){
    			echo '<p class="error">The file could not be uploaded because : </strong>';
    			//Print a message upon the error. NB: There is no error message 5
     
    			switch($_FILES['epreuve']['error']){
    				case 1:
    					print 'The file exceeds the upload_max_file_size setting in php.ini.';
    				break;
    				case 2:
    					print 'The file exceeds the MAX_FILE_SIZE setting in the HTML form';
    					break;
    				case 3:
    					print 'The file was only partially uploaded';
    					break;
    				case 4:
    					print 'No file was uploaded';
    					break;
    				case 6:
    					print 'No temporary folder was available';
    					break;
    				case 7:
    					print 'Unable to write to disk';
    					break;
    				case 8:	
    					print 'File upload stopped';
    					break;
    				default:
    					print 'A system error occured';
    					break;
    				} //End of switch
    			}//End of Error... IF
     
    			//Delete the file if it still exists
    			if(file_exists($_FILES['epreuve']['tmp_name']) && is_file($_FILES['epreuve']['tmp_name'])){
    				print 'File already exists';
    				unlink($_FILES['epreuve']['tmp_name']); //delete the file from the temporary folder if it still exists
    			}	
    			return $file; //returns the file from where it comes from
    							 //i.e from the addData function "[$image=checkUpload()]"
     
    		}
    	}
    }
     
    function cleanData($data){
    	$data = trim($data);
    	$data = stripslashes($data);
    	$data = htmlspecialchars($data);
    	$data = strip_tags($data);
    return $data;
    }
     
    function addData($etablissement, $classe, $session, $matiere, $annee_scolaire)	 
    {	 
    //print "Ready to add data";	 
    include("dbinfo.php");	 
     
    $file = checkUpload(); //La variable $file n'est pas uploade avec le reste des informations 
     
    $sql="INSERT INTO cours VALUES(null, '$etablissement', '$classe', '$session', '$matiere', '$annee_scolaire', '$file', NOW())";
    $result=mysql_query($sql) or die(mysql_error());
     
    //print <<<HERE
     
    echo "
    <h1>The following has been added:</h1>	
    <ul>	 
    <li>Etablissement: $etablissement</li>	 
    <li>Classe: $classe</li>	 
    <li>Session: $session</li>	 
    <li>Matiere: $matiere</li>
    <li>Annee scolaire: $annee_scolaire</li>	 
    <li>Fichier:  $file </li>
    </ul>
    ";	
     
    //HERE;
     
    }	 
     
    function printForm()
    {	 
    //displays the html form	 
    $pageTitle = "Add a Document";	 
    //include("header.php");	 
     
    //print <<<HERE	 
     
     //<form id = "myForm" method="POST" enctype="multipart/form-data">
     
    echo "
    <h2>Add a Document</h2> 
    
    <form id=myForm method=POST enctype=multipart/form-data>	 
    
    <fieldset>
    			<legend>Formulaire d'enregistrement</legend>
    			<table class=formulaire_document_admin>		
    			<tr>
          		 <td><label for=etablissement>Etablissement:</label></td><br />
          		 <td><select class=alignement_etab name=etablissement id=etablissement tabindex=10>
               <optgroup label=Lycee>
    		   	   <option value=>Selectionnez ici</option>
                   <option value=biyemassi>Lycee de Biyem-assi</option>
                   <option value=leclerc>Lycee General Leclerc</option>
                   <option value=techobala>Lycee Technique d'Obala</option>
                   <option value=etougebe>Lycee d'Etoug-ebe</option>
    			    <option value=efoulan>Lycee d'Efoulan</option>
               </optgroup>
               <optgroup label=College>
                   <option value=sagesse>College de la sagesse</option>
                   <option value=ebanda>College Ebanda</option>
    			   <option value=victorhugo>College vigtor hugo</option>
    			   <option value=mvolye>College St joseph de mvolye</option>
    			   <option value=rosiere>College de la rosiere</option>
               </optgroup>
    		   <optgroup label=Autres>
    		   	<option value=autre>Autres</option>
    		   </optgroup>
           		</select></td>
    			</tr>
    			
    			<tr>
          		 <td><label for=matiere>Classe:</label></td><br />
          		 <td><select class=alignement_classe name=classe id=classe tabindex=20>
               <optgroup label=Général>
    		       <option value=>Selectionnez ici</option>
                   <option value=sixieme>Sixième</option>
                   <option value=cinquieme>Cinquième</option>
                   <option value=quatrieme>Quatrième</option>
                   <option value=troisieme>Troisième</option>
    			   <option value=seconde>Seconde</option>
    			   <option value=premiere>Première</option>
    			   <option value=terminale>Terminale</option>
               </optgroup>
               <optgroup label=Technique>
                   <option value=annee1>Première année</option>
    			   <option value=annee2>Deuxième année</option>
    			   <option value=annee3>Troisième année</option>
    			   <option value=annee4>Quatrième année</option>
    			   <option value=annee5>Seconde technique</option>
    			   <option value=annee6>Première technique</option>
                   <option value=annee7>Terminale technique</option>
               </optgroup>
    		   <optgroup label=Autres>
    		   	<option value=autre>Autres</option>
    		   </optgroup>
           		</select></td>
    			</tr>
    			
    			<tr>
          		 <td><label for=matiere>Session:</label></td><br />
          		 <td><select class=alignementetabinscription1 name=session id=session tabindex=30>
    			   <option value=>Selectionnez ici</option>
                   <option value=examen_officiel>Examen Officiel</option>
               <optgroup label=Mini session>
                   <option value=session1>1ère session</option>
    			   <option value=session2>2ème session</option>
    			   <option value=session3>3ème session</option>
    			   <option value=session4>4ème session</option>
    			   <option value=session5>5ème session</option>
    			   <option value=session6>6ème session</option>
    			   <option value=session7>7ème session</option>
    			   <option value=session8>8ème session</option>
    			   <option value=session9>9ème session</option>
    			   <option value=examen_blanc>Examen blanc</option>
               </optgroup>
           		</select></td>
    			</tr>
    
    
    			<tr>
          		 <td><label for=matiere>Matière:</label></td><br />
          		 <td><select class=alignement_matiere name=matiere id=matiere tabindex=50>
               <optgroup label=Scientifique>
    		       <option value=>Selectionnez ici</option>
                   <option value=mathematique>Mathématiques</option>
                   <option value=physique>Physique</option>
                   <option value=chimie>Chimie</option>
                   <option value=biologie>Biologie</option>
    			    <option value=informatique>Informatique</option>
               </optgroup>
               <optgroup label=Littéraire>
                   <option value=dictee>Dictée</option>
    			   <option value=redaction>Rédaction</option>
    			   <option value=etude_de_texte>Etude de texte</option>
    			   <option value=litterature>Littérature</option>
    			   <option value=dissertation>Dissertation</option>
    			   <option value=philosophie>Philosophie</option>
                   <option value=anglais>Anglais</option>
    			   <option value=espagnol>Espagnol</option>
    			   <option value=allemand>Allemand</option>
    			   <option value=histoire>Histoire</option>
    			   <option value=geographie>Géographie</option>
    			   <option value=ec>Education Civique</option>
               </optgroup>
    		   <optgroup label=Autres>
    		   	<option value=autre>Autres</option>
    		   </optgroup>
           		</select></td>
    			</tr>
    			
    			<tr>
          		 <td><label for=matiere>Année scolaire:</label></td><br />
          		 <td><select class=alignementannee_sco name=anescolaire id=anescrolaire tabindex=50>
    			   <option value=>Selectionnez ici</option>
                   <option value=2005/2006>2005/2006</option>
                   <option value=2006/2007>2006/2007</option>
                   <option value=2007/2008>2007/2008</option>
                   <option value=2008/2009>2008/2009</option>
    			   <option value=2009/2010>2009/2010</option>
    			   <option value=2010/2011>2010/2011</option>
    			   <option value=2011/2012>2011/2012</option>
    			   <option value=2012/2013>2012/2013</option>
    			   <option value=2013/2014>2013/2014</option>
           		</select></td>
    			</tr>
    			
    			<tr>
    			<p>
    			<td><label for=nom>Epreuve:</label></td>
    			<td><input type=file name=epreuve id=epreuve size=50 value= tabindex=60 class=alignement_epreuve/></td>
    			<br/><small>Must be less than 1Mo. Only pdf, doc, docx, ppt or pptx documents allowed. </small>
    			</p>
    			</tr>
    			</table>
    			</fieldset>
    			<tr>
    			<div id=mySubmit>
    				<p>
    				<td><input type=submit name=submit value=Submit> <input type=reset value=Cancel></td>
    				</p>
    			</div>
    			</tr>	
    
    </form> ";
     
     
    //HERE;	 
     
    }
     
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Merci pour le code mais quel est ton problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Par défaut
    le problem c'est que je parviens pas a envoyer le nom du fichier avec le reste du formulaire lors de l'upload du formulaire
    et pourtant tous les details du fichier sont bien uploade sans problem

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    C'est bien, votre fonction checkUpload() ne contient qu'un seul "return". Malheureusement pour vous, il n'est pas idéalement situé.
    En effet, $file n'est retourné QUE si l'upload n'a pas pu être fait ou si le type de fichier est incorrect. De plus, $file n'est pas défini, en bref : votre fonction ne retourne JAMAIS rien (techniquement parlant, je me demande d'ailleurs la valeur de $file dans ce cas, sûrement un booléen égal à FALSE)

    Bref, voici la fonction modifiée :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    function checkUpload()
    {
    	$file = FALSE;
    	//check for an uploaded file
    	if(isset($_FILES['epreuve'])){
    	//Validate the type. Should be pdf, doc, docx, ppt or pptx
     
    		$allowed_extensions = array('application/pdf','application/pdf','application/doc','application/docx','application/ppt','application/pptx');
    		if(in_array($_FILES['epreuve']['type'], $allowed_extensions)){
    		print "Uploading files...";
     
    			//move the file over
    			if(move_uploaded_file($_FILES['epreuve']['tmp_name'], "../../assnet/uploads/{$_FILES['epreuve']['name']}")){
    			echo "<p><em>The file has been uploaded</em></p>";
     
    			$file = "{$_FILES['epreuve']['name']}";
    			print "$file";
    			} //End of move... IF
    		} else{ //invalid type
    			echo '<p class="error">Please upload a pdf, doc, docx, ppt or pptx document</p>';
     
    			if($_FILES['epreuve']['error'] > 0){
    			echo '<p class="error">The file could not be uploaded because : </strong>';
    			//Print a message upon the error. NB: There is no error message 5
     
    			switch($_FILES['epreuve']['error']){
    				case 1:
    					print 'The file exceeds the upload_max_file_size setting in php.ini.';
    				break;
    				case 2:
    					print 'The file exceeds the MAX_FILE_SIZE setting in the HTML form';
    					break;
    				case 3:
    					print 'The file was only partially uploaded';
    					break;
    				case 4:
    					print 'No file was uploaded';
    					break;
    				case 6:
    					print 'No temporary folder was available';
    					break;
    				case 7:
    					print 'Unable to write to disk';
    					break;
    				case 8:	
    					print 'File upload stopped';
    					break;
    				default:
    					print 'A system error occured';
    					break;
    				} //End of switch
    			}//End of Error... IF
     
    			//Delete the file if it still exists
    			if(file_exists($_FILES['epreuve']['tmp_name']) && is_file($_FILES['epreuve']['tmp_name'])){
    				print 'File already exists';
    				unlink($_FILES['epreuve']['tmp_name']); //delete the file from the temporary folder if it still exists
    			}	
     
    		}
    	}
    	return $file;
    }

    Comme vous pouvez le voir, j'ai défini $file à FALSE dans la première ligne de la fonction, de sorte qu'on ait toujours une valeur de retour.
    Et le "return $file" a été mis en toute fin de fonction, comme ça devrait toujours être le cas !

    Avoir un seul return par fonction et l'avoir toujours en toute fin de fonction évite bien des problèmes ;-)
    (Il ne s'agit pas là d'une règle mais plutôt d'une ligne de bonne conduite ^^)

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/04/2011, 15h19
  2. Equivalent PHP/MySQL pour des applications
    Par Khleo dans le forum Débuter
    Réponses: 1
    Dernier message: 12/05/2008, 17h59
  3. Réponses: 26
    Dernier message: 01/07/2006, 13h14
  4. [Graphique][PHP & MySQL] Tracer des graphes
    Par allyson dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 13/05/2006, 11h32
  5. [SGBD] PHP/mysql additioner des variables
    Par picsoun dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 20/03/2006, 03h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo