login  Naam:   Wachtwoord: 
Registreer je!
 Forum

bestands veld controleren met php. (Opgelost)

Offline lolll - 05/09/2009 10:25
Avatar van lolllLid Ik heb een formulier gemaakt met html, met alle verschillende controls erin (selectievakjes,invoervelden,...) . Ik verwerk het formulier met een php bestandje. Alles werkt nu perfect, alleen bij het bestandsveld werkt niet alles evengoed. Als ik een bestand selecteer, dan komt het er bij de verwerking goed op, maar als ik geen bestand selecteer, komt er nog altijd "bestandsgrootte : ... bestandsnaam : ... ,..." te staan. Ik zal hieronder al even een stukje code zetten , zodat jullie het een beetje beter begrijpen :

html :
  1. <input type="file" name="bestand">

php :
  1. <?php
  2. echo "Bestandsnaam : " . $_FILES['bestand']['name'];
  3. echo "<br>Tijdelijke bestandsnaam : " . $_FILES['bestand']['tmp_name'];
  4. echo "<br>Grootte : " . $_FILES['bestand']['size'];
  5. echo "<br>Type : " . $_FILES['bestand']['type'];
  6. ?>


Dit was eerst mijn code, maar zoals ik dus al zei, als ik geen bestand selecteer komt er nog altijd dezelfde tekst. Ik wou dit dan met een if voorwaarde controleren, maar dat lukte niet.
Ik heb :
  1. if(isset($_POST['bestand'])){
  2. echo "Het bestand,...";
  3. }else{
  4. echo "Er is geen bestand geselecteerd.";
  5. }

Geprobeerd, kheb ook nog is met empty() geprobeerd. En dan ook nog is met i.p.v. : $_POST['bestand'] ,
$_FILES['bestand']
geprobeerd, maar niets lukte.

Weet iemand misschien hoe ik dit kan oplossen ?
Misschien met een andere functie of nog iets anders. Laat het me maar weten.

Grt,Lolll

4 antwoorden

Gesponsorde links
Offline masterblue - 05/09/2009 15:55 (laatste wijziging 05/09/2009 18:48)
Avatar van masterblue Nieuw lid Misschien kan je hier de code uitslopen voor je fomrulier?
  1. if (phpversion() > "4.0.6") {
  2. $HTTP_POST_FILES = $_FILES;
  3. }
  4.  
  5.  
  6. define("MAX_GROOTTE",1000000);
  7. define("UPLOADMAP", "../upload");
  8. define("no_error", "imageUpload.php");
  9. define("yes_error", "index.php");
  10. $_geldige_extensies_ = "jpg,png,gif,pdf";
  11. if(strlen($_geldige_extensies_ )> 0){
  12. $_geldige_extensies__ = @explode(",",$_geldige_extensies _);
  13. } else {
  14. $_geldige_extensies__ = array();
  15. }
  16.  
  17.  
  18. $_file_ = $HTTP_POST_FILES['imageUpload'];//naam van inputveld
  19. if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['imageUpload']['error'] == 0){
  20. $errStr = "";
  21. $_name_ = $_file_['name'];
  22. $_type_ = $_file_['type'];
  23. $_tmp_name_ = $_file_['tmp_name'];
  24. $_size_ = $_file_['size'];
  25. if($_size_ > MAX_GROOTTE && MAX_GROOTTE > 0){
  26. $errStr = "Een te groot bestand";
  27. }
  28.  
  29.  
  30. $_ext_ = explode(".", $_name_);
  31. $_ext_ = strtolower($_ext_[count($_ext_)-1]);
  32. if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
  33. $errStr = "Geen geldige bestands extensie";
  34. }
  35.  
  36.  
  37. if(!is_dir(UPLOADMAP) && is_writeable(UPLOADMAP)){
  38. $errStr = "geen geldige map";
  39. }
  40.  
  41.  
  42. if(empty($errStr)){
  43.  
  44. if(@copy($_tmp_name_, UPLOADMAP. "/" . $_name_)){
  45.  
  46. //hier zet je de query om de afbeeldingnaam in de database te zetten, ($_name_)
  47.  
  48. header("Location: " . no_error);
  49. } else {
  50. header("Location: " . yes_error);
  51. }
  52. } else {
  53. header("Location: " . yes_error);
  54. }
  55. }
Offline lolll - 05/09/2009 18:44
Avatar van lolll Lid Als ik op het eerste zicht kijk, zie ik niets staan dat controleert of mijn veld leeg is of niet. Wel max. grootte enzo... Maar dat heb ik in mijn basis formulier nog niet echt nodig.
Offline NTS64 - 05/09/2009 20:14
Avatar van NTS64 PHP gevorderde Normaal gezien doet een empty() op het POST veld het wel.
Post je volledige code eens?
Is je form method wel POST?
Offline lolll - 07/09/2009 18:06 (laatste wijziging 12/09/2009 11:08)
Avatar van lolll Lid Mijn form method is post , en de empty doet het niet. Als ik geen bestand selecteer komt er te staan : Er is geen bestand geselecteerd. Maar ook als ik een bestand selecteer, komt er dat te staan.
Hier is mijn code :

(html)
  1. <title>Formulier4.html</title>
  2. <style type="text/css">
  3. tr {width:max; height:max;}
  4. td {width:max; height:max; padding:10px;}
  5. table {margin-left:70px;}
  6. </head>
  7. <form name="formulier4" action="verwerking2.php" method="post" enctype="multipart/form-data">
  8. <tr>
  9. <td>
  10. <b>Een gewoon invoerveld :</b>
  11. </td>
  12. <td>
  13. <input type="text" name="invoerveld" size="20" maxlength="20">
  14. </td>
  15. </tr>
  16. <tr>
  17. <td>
  18. <b>Een wachtwoordveld :</b>
  19. </td>
  20. <td>
  21. <input type="password" name="wachtwoordveld" size="20" maxlength="20">
  22. </td>
  23. </tr>
  24. <tr>
  25. <td>
  26. <b>Radiobuttons :</b>
  27. </td>
  28. <td>
  29. optie 1 <input type="radio" name="selecteer" value="1"><br>
  30. optie 2 <input type="radio" name="selecteer" value="2"><br>
  31. optie 3 <input type="radio" name="selecteer" value="3">
  32. </td>
  33. </tr>
  34. <tr>
  35. <td>
  36. <b>Selectievakjes :</b>
  37. </td>
  38. <td>
  39. optie 1 <input type="checkbox" name="checkbox1" value="actief"><br>
  40. optie 2 <input type="checkbox" name="checkbox2" value="actief"><br>
  41. optie 3 <input type="checkbox" name="checkbox3" value="actief">
  42. </td>
  43. </tr>
  44. <tr>
  45. <td>
  46. <b>Keuzelijst (dropdown-menu) :</b>
  47. </td>
  48. <td>
  49. <select name="keuzelijst1">
  50. <option value="standaard" disabled selected>Kies een optie</option>
  51. <option value="1">optie 1</option>
  52. <option value="2">optie 2</option>
  53. <option value="3">optie 3</option>
  54. </td>
  55. </tr>
  56. <tr>
  57. <td>
  58. <b>Keuzelijst :</b>
  59. </td>
  60. <td>
  61. <select name="keuzelijst2[]" size="3" multiple>
  62. <option value="1">optie 1</option>
  63. <option value="2">optie 2</option>
  64. <option value="3">optie 3</option>
  65. </td>
  66. </tr>
  67. <tr>
  68. <td>
  69. <b>Bestand selecteren :</b>
  70. </td>
  71. <td>
  72. <input type="file" name="bestand">
  73. </td>
  74. </tr>
  75. <tr>
  76. <td>
  77. <b>Verborgen veld :</b>
  78. </td>
  79. <td>
  80. <input type="hidden" value="Dit mag je niet lezen." name="verborgen">
  81. </td>
  82. </tr>
  83. <tr>
  84. <td>
  85. <b>Meerregelig invoerveld :</b>
  86. </td>
  87. <td>
  88. <textarea name="textarea"></textarea>
  89. </td>
  90. </tr>
  91. <tr>
  92. <td>
  93. <b>Reset :</b>
  94. </td>
  95. <td>
  96. <input type="reset" name="reset" value="reset">
  97. </td>
  98. </tr>
  99. <tr>
  100. <td>
  101. <b>Verzenden :</b>
  102. </td>
  103. <td>
  104. <input type="submit" name="verzenden" value="verzenden">
  105. </td>
  106. </tr>
  107. </form>
  108. </body>
  109. </html>

(php)
  1. <html>
  2. <head>
  3. <title>Verwerking2.php</title>
  4. <style type="text/css">
  5. tr {width:max; height:max;}
  6. td {width:max; height:max; padding:10px}
  7. table {margin-left:70px; font-weight:bold;}
  8. </style>
  9. </head>
  10. <body>
  11. <h1>Verwerking van formulier4 :</h1><br>
  12. <table>
  13. <tr>
  14. <td>
  15. Een gewoon invoerveld :
  16. </td>
  17. <td>
  18. <?php
  19. if(empty($_POST['invoerveld'])){
  20. echo "Er staat geen tekst in het wachtwoordveld.";
  21. }
  22. else{
  23. echo $_POST['invoerveld'];
  24. }
  25. ?>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td>
  30. Een wachtwoordveld :
  31. </td>
  32. <td>
  33. <?php
  34. if(empty($_POST['wachtwoordveld'])){
  35. echo "Er staat geen tekst in het wachtwoordveld.";
  36. }
  37. else{
  38. echo $_POST['wachtwoordveld'];
  39. }
  40. ?>
  41. </td>
  42. </tr>
  43. <tr>
  44. <td>
  45. Radiobuttons :
  46. </td>
  47. <td>
  48. <?php
  49. if(isset($_POST['selecteer'])){
  50. echo "Optie " . $_POST['selecteer'] . " is geselecteerd.";
  51. }
  52. else{
  53. echo "Er is geen optie geselecteerd.";
  54. }
  55. ?>
  56. </td>
  57. </tr>
  58. <tr>
  59. <td>
  60. Selectievakjes :
  61. </td>
  62. <td>
  63. <?php
  64. if($_POST['checkbox1']==actief){
  65. echo "optie 1 is geselecteerd.";
  66. }
  67. else{
  68. echo "optie 1 is niet geselecteerd.";
  69. }
  70. echo "<br>";
  71. if($_POST['checkbox2']==actief){
  72. echo "optie 2 is geselecteerd.";
  73. }
  74. else{
  75. echo "optie 2 is niet geselecteerd.";
  76. }
  77. echo "<br>";
  78. if($_POST['checkbox3']==actief){
  79. echo "optie 3 is geselecteerd.";
  80. }
  81. else{
  82. echo "optie 3 is niet geselecteerd.";
  83. }
  84.  
  85. ?>
  86. </td>
  87. </tr>
  88. <tr>
  89. <td>
  90. Keuzelijst (dropdown-menu) :
  91. </td>
  92. <td>
  93. <?php
  94. if(isset($_POST['keuzelijst1'])){
  95. echo "optie " . $_POST['keuzelijst1'] . " is geselecteerd.";
  96. }
  97. else{
  98. echo "Er is geen optie geselecteerd.";
  99. }
  100. ?>
  101. </td>
  102. </tr>
  103. <tr>
  104. <td>
  105. Keuzelijst :
  106. </td>
  107. <td>
  108. <?php
  109. if(isset($_POST['keuzelijst2'])){
  110. $keuzelijst2=$_POST['keuzelijst2'];
  111. if(count($keuzelijst2)){
  112. for($i=0;$i<count($keuzelijst2);$i++){
  113. echo "<br>Optie " . $keuzelijst2[$i] . " is geselecteerd.";
  114. }
  115. }
  116. }
  117. else{
  118. echo "Er zijn geen opties geselecteerd.";
  119. }
  120. ?>
  121. </td>
  122. </tr>
  123. <tr>
  124. <td>
  125. Bestand selecteren :</b>
  126. </td>
  127. <td>
  128. <?php
  129. if(empty($_POST['bestand'])){
  130. echo "Er is geen bestand geselecteerd.";
  131. }
  132. else{
  133. echo "Bestandsnaam : " . $_FILES['bestand']['name'];
  134. echo "<br>Tijdelijke bestandsnaam : " . $_FILES['bestand']['tmp_name'];
  135. echo "<br>Grootte : " . $_FILES['bestand']['size'];
  136. echo "<br>Type : " . $_FILES['bestand']['type'];
  137. }
  138. ?>
  139. </td>
  140. </tr>
  141. <tr>
  142. <td>
  143. Verborgen veld :
  144. </td>
  145. <td>
  146. <?php
  147. echo $_POST['verborgen'];
  148. ?>
  149. </td>
  150. </tr>
  151. <tr>
  152. <td>
  153. Meerregelig invoerveld :
  154. </td>
  155. <td>
  156. <?php
  157. if(empty($_POST['textarea'])){
  158. echo "Het meerregelig invoerveld bevat geen waarden.";
  159. }
  160. else{
  161. echo $_POST['textarea'];
  162. }
  163. ?>
  164. </td>
  165. </tr>
  166. <tr>
  167. <td>
  168. Verzenden :
  169. </td>
  170. <td>
  171. <?php
  172. echo $_POST['verzenden'];
  173. ?>
  174. </td>
  175. </tr>
  176. </table>
  177. </body>
  178. </html>

Update :
Het is me gelukt door te controleren met empty op de array files met de bestandsnaam erachter, zodat het controleert of de bestandsnaam in de array files leeg is of niet. Ik dacht eerst dat ik dat ook op tmp-name enzo moest doen, maar dat moet niet, want als de bestandsnaam geen waarde bevat, gaat er ook geen tmp-name,grootte en type van bestand zijn, omdat er dan eigenlijk niets geselecteerd is. Toch bedankt voor de moeite, maar ik heb het nu toch wel zelf gevonden, omdat hier niemand meer antwoorde, en ik wou toch voort gaan om php te leren, maar dan wou ik eerst dit opgelost krijgen, en hier antwoorde niemand meer, dus dan heb ik een nieuw bestand gemaakt, en alles stap voor stap geprobeerd, maar dat werkte dan ook niet, en dan heb ik nog een nieuw bestand gemaakt, en toen werkte het wel. En dat ben ik hier nu dus aan het zeggen. Dus eigenlijk zouden ze bij de lijst van actieve forumberichten meer forumberichten moeten maken, omdat de mensen alleen maar kijken naar de lijst met die forumberichten, en vanaf dat jou bericht eruit is kijkt niemand er nog naar, ik heb het nu zelf gevonden, maar bij anderen lukt dat misschien niet. misschien zou men ook een lijst kunnen maken van oude forumberichten, zodat die ook nog aandacht krijgen. Dat zou heel goed zijn voor sitemasters.be . ik hoop dat ik een beetje duidelijk ben, want anders mag ik deze hele tekst opnieuw schrijven, en dat zou ik niet zo leuk vinden, omdat ik dan geen tijd heb om php verder te leren. Dus ik zal het bericht nu sluiten, zodat het geen aandacht meer krijgt, want dat is nu ook niet meer nodig, vermits ik mijn probleem zelf heb opgelost, nog veel plezier verder op sitemasters, en ik zal nog wel eens een berichtje posten als ik weer een probleem heb met mijn php. Jullie denken nu misschien dat ik een meisje ben, omdat ik zoveel te zeggen heb, maar dan moet ik jullie wel zeggen, dat ik een jongen ben, maar ik heb gewoon heel veel te zeggen !
Vele groetjes van Lolll 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.322s