Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Prosta rzecz
crew123
post 30.06.2012, 12:43:22
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 0
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował crew123 30.06.2012, 12:44:03
Go to the top of the page
+Quote Post
!*!
post 30.06.2012, 12:47:27
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował !*! 30.06.2012, 12:48:30


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Evinek
post 30.06.2012, 12:47:54
Post #3





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Evinek 30.06.2012, 12:48:48
Go to the top of the page
+Quote Post
crew123
post 30.06.2012, 13:01:18
Post #4





Grupa: Zarejestrowani
Postów: 89
Pomógł: 0
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Dobra działa, dzięki smile.gif
---
Mam jeszcze pytanie, co zrobic aby gdy zostawie pisty input file nie pokazywalo bledu z rozszerzeniem?

Ten post edytował crew123 30.06.2012, 13:09:25
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.07.2025 - 03:36