Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Prosta rzecz
Forum PHP.pl > Forum > Przedszkole
crew123
Cześć, nie mogę sobie poradzić z jednym problemem...
Otóż chciałbym aby nie szedl insert gdy uploadowane zdjecie bedzie mialo inne rozszerzenie niż dopuszczalne.
Nie mam jednak pojecia jak to zrobic, kombinowałem już kilka razy i nic ;/

  1. if(isset($_POST['ok']))
  2. {
  3. $obrazek = '';
  4.  
  5. if (isset($_FILES['obrazek']['name']))
  6. {
  7. $sp1 = explode(".", ($_FILES['obrazek']['name']));
  8. if ($sp1[1] == "gif" or $sp1[1] == "jpg" or $sp1[1] == "JPG" or $sp1[1] == "GIF" or $sp1[1] == "jpeg" or $sp1[1] == "JPEG" or $sp1[1] == "png" or $sp1[1] == "PNG")
  9. {
  10. $data_img = date('dmYHis');
  11. $uploaddir = '../images/' . $data_img . '-';
  12. $_FILES['obrazek']['name'] = przyjazny_string($_FILES['obrazek']['name']);
  13. if (move_uploaded_file($_FILES['obrazek']['tmp_name'], $uploaddir . $_FILES['obrazek']['name']))
  14. {
  15. $obrazek = 'images/' . $data_img . '-' . $_FILES['obrazek']['name'];
  16. }
  17. }
  18. }
  19.  
  20. $tytul = mysql_real_escape_string($_POST['tytul']);
  21. $tresc = mysql_real_escape_string($_POST['tresc']);
  22.  
  23. $kategoria = $_POST['kategoria'];
  24. $wojewodztwo = $_POST['wojewodztwo'];
  25. $region = $_POST['region'];
  26. $kod = $_POST['kod_pocztowy'];
  27. $miasto = $_POST['miasto'];
  28. $adres = $_POST['adres'];
  29. $tel = $_POST['telefon'];
  30. $www = $_POST['www'];
  31. $email = $_POST['email'];
  32.  
  33.  
  34. function ValidEmail($email) {
  35. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)) {
  36. return false;
  37. }
  38. return true;
  39. }
  40.  
  41. if(empty($tytul) || empty($tresc) || empty($kategoria) || empty($wojewodztwo) || empty($wojewodztwo) || empty($kod) || empty($miasto) || empty($adres) || empty($email)) {
  42.  
  43. echo 'Wypełnij wszystkie pola oznaczone *';
  44.  
  45. }
  46. elseif (!preg_match('/^[0-9]{2}-?[0-9]{3}$/Du', $kod)) {
  47.  
  48. echo 'Błędny kod pocztowy';
  49.  
  50. }
  51. elseif (!ValidEmail($email)) {
  52.  
  53. echo "Błędny adres email";
  54.  
  55. }
  56. elseif (!$sp1[1] == "gif" or $sp1[1] == "jpg" or $sp1[1] == "JPG" or $sp1[1] == "GIF" or $sp1[1] == "jpeg" or $sp1[1] == "JPEG" or $sp1[1] == "png" or $sp1[1] == "PNG") {
  57.  
  58. echo 'Dopuszczalne pliki tylko w formacie gif, jpg, png!';
  59.  
  60. }
  61.  
  62. else {
  63.  
  64. $iduser = $user_data['user_id'];
  65.  
  66.  
  67. $query = "INSERT INTO `ogloszenia` (`tytul`, `tresc`, `id_cat`, `id_woj`, `id_region`, `id_user`, `kod_pocztowy`, `miasto`, `adres`, `tel`, `www`, `email`, `zdjecie_1`) VALUES ('$tytul', '$tresc', '$kategoria', '$wojewodztwo', '$region', '$iduser', '$kod', '$miasto', '$adres', '$tel', '$www', '$email', '$obrazek')";
  68.  
  69. if(mysql_query($query)) {
  70.  
  71. $id = mysql_insert_id();
  72.  
  73. foreach ($_POST['opcje'] as $opcja)
  74. {
  75. mysql_query("INSERT INTO dodatkowo(id_oglo, id_oglo_opcje) VALUES(".$id.", ".intval($opcja).")");
  76. }
  77.  
  78. echo 'Pomyslnie dodano ogłoszenie! <a href="index.php">wróć</a>';
  79.  
  80. }
  81.  
  82. return 1;
  83. }
  84. }
!*!
Trochę to chaotyczne, a samo rozszerzenie sprawdzasz błędnie (pathinfo). Na szybko aby to naprawić, stwórz zmienną $error = false, jeśli rozszerzenie będzie złe, zamieniasz na true, przed zapytaniem do bazy sprawdzasz w warunku czy error nadal ma false, jeśli tak, wykonujesz, jeśli nie, sprawdzasz wyświetlasz bład.
Evinek
Nie chce mi się całego kodu analizować dokładnie, ale wystarczy wziąć kod który dodaje do bazy pod klamerkę przy instrukcji:
if ($sp1[1] == "gif" or $sp1[1] == "jpg" or $sp1[1] == "JPG" or $sp1[1] == "GIF" or $sp1[1] == "jpeg" or $sp1[1] == "JPEG" or $sp1[1] == "png" or $sp1[1] == "PNG")
A jeszcze lepiej to jak plik poprawnie się utworzy

@EDIT:
A najlepiej przepisz od nowa to.
crew123
Dobra działa, dzięki smile.gif
---
Mam jeszcze pytanie, co zrobic aby gdy zostawie pisty input file nie pokazywalo bledu z rozszerzeniem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.