login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Andere naam indien geen bestand

Offline Raze - 17/02/2009 20:11
Avatar van RazePHP beginner Hallo,

ik heb volgend stukje code:
  1. $uID = 1234;
  2. $title = mysql_real_escape_string($_POST['title']);
  3. $datetime = mysql_real_escape_string($_POST['datetime']);
  4. $text = mysql_real_escape_string($_POST['text']);
  5. $visibility = mysql_real_escape_string($_POST['visibility']);
  6. $react = mysql_real_escape_string($_POST['react']);
  7.  
  8. if(!empty($_FILES['addfile'])) {
  9. if($_FILES['addfile']['size'] > 102400) {
  10. $error_size = "De bijlage mag een maximumgrootte van 1 mb hebben";
  11. } else {
  12.  
  13. }
  14. } else {
  15. $file_link ="0";
  16. }
  17.  
  18. if(isset($_POST['submit'])) {
  19.  
  20. if(empty($title)) {
  21. $error1 = "U moet een titel invullen";
  22. } else {
  23. if(empty($text)) {
  24. $error2 = "<b>U moet een bericht maken</b";
  25. } else {
  26. if(empty($_FILES['addfile'])) {
  27. $file_link = "0";
  28. } else {
  29. if($_FILES['addfile']['size'] > 102400) {
  30. $error_size = "Het bestand is te groot";
  31. } else {
  32. $filename = "1234_".$_FILES['addfile']['name'];
  33. $file_link = "files/1234_".$_FILES['addfile']['name'];
  34. move_uploaded_file($_FILES['addfile']['tmp_name'], "../files/".$filename);
  35. $query="INSERT INTO messages (uID, title, datetime, text, visibility, react, addfile) VALUES ('".$uID."','".$title."','".$datetime."','". $text."','".$visibility."','".$react."','".$file_link."')";
  36. mysql_query($query) or die (mysql_error());
  37. $msg = "<center><b>Informatiebericht:</b><br /><br />Het bericht is toegevoegd.<br /><br /><br /><a href='../index.php' class='header_open_text'>Klik hier om uw bericht te bekijken.</a><br /><a href='new.php' class='header_open_text'>Klik hier om nog een bericht te schrijven.</a></center>";
  38. }
  39. }
  40. }
  41. }
  42. }


Het is dus een code van een blogscript, waarbij bij elke bericht eventueel een bijlage kan toegevoegd worden. Deze verschijnt dan ik een apart balkje onderaan. Deze verschijnt enkel op die pagina wanneer het veld file_link NIET gelijk is aan 0. Zoals jullie kunnen zien wil ik dus via de code eerst kijken of er een bestand geselecteerd is, en zo nee, in het veld file_link 0 invullen. Dit werkt echter niet, want wanneer er geen bestand geselecteerd is, wordt er nog steeds files/1234_ ingevuld.

Het uploaden en hernoemen van bestanden werkt voor de rest wel.
Weet er iemand waar mijn probleem zit?

5 antwoorden

Gesponsorde links
Offline Rik - 17/02/2009 20:22
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik denk dat er één } verkeerd staat. Kijk maar naar je if-else constructie. De query staat binnen de else van het bestand controleren.

Het zou moeten werken als je de } van regel 38 achteraan bij regel 33 zet.
Offline Raze - 17/02/2009 20:30
Avatar van Raze PHP beginner heb het geprobeerd, maar nog steeds dezelfde fout...
Offline Koen - 17/02/2009 20:33
Avatar van Koen PHP expert Ik heb nooit getest of
  1. if(!empty($_FILES['addfile']))
werkt...
Misschien kan je beter
  1. if(!is_uploaded_file($_FILES['addfile']['tmp_name']))
gebruiken?
Offline Raze - 17/02/2009 20:40
Avatar van Raze PHP beginner @sliphead: wanneer ik dat gebruik, plaats hij helemaal niets in de database. Wanneer ik
  1. if(!empty($_FILES['addfile']))

gebruik, dan plaats hij mijn bericht (samen met "files/1234_" ipv "0") in de database.
Offline Rik - 18/02/2009 20:21
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dat verschil met $_FILES komt omdat $_FILES['addfile'] gewoon niet geset is als er geen bestand is geupload?

Toch weet ik bijna zeker dat er iets niet helemaal klopt aan je if...else structuur/volgorde, loop dat eens helemaal na.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.246s