Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z elseif
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam smile.gif
Zrobiłem edycje artykułu(dane do bazy danych, i podmiana plików).
I mam problem. Nie bardzo wiem jaki ustawić elseif, aby wyrzucić komunikat, że zły format pliku.

edytujartykul.php

  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. $plik_nazwa = addslashes($_POST['plik']);
  5. $zdjecie_nazwa = addslashes($_POST['zdjecie']);
  6. if(!$_POST['id'])
  7. {
  8. echo '<div style="text-align:center;"><form action="index.php?page=edytujartykul&amp;edytuj=1" method="post">
  9. <select name="id"> ';
  10. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  11. $idzapytania = mysql_query($zapytanie);
  12. while ($wiersz = mysql_fetch_array($idzapytania))
  13. echo '<option value="'.$wiersz[0].'">(ID:'.$wiersz[0].') '.$wiersz[1].'</option>';
  14. </select>
  15. <input type="submit" value="Wybierz" />
  16. <br />
  17. </form>';
  18. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  19. }
  20. elseif($_POST['id'])
  21. {
  22. if($_POST['edycja'])
  23. {
  24. $zapytanie = "SELECT * FROM artykuly ORDER BY id DESC";
  25. $zapytanie = stripslashes($zapytanie);
  26. $idzapytania = mysql_query($zapytanie);
  27. while ($wiersz = mysql_fetch_row($idzapytania))
  28. {
  29. $katalog1 = '/medbookstore/PROJEKT1/zdjecie';
  30. $katalog2 = '/medbookstore/PROJEKT1/upload';
  31. $okatalog1 = opendir($katalog1);
  32. $okatalog2 = opendir($katalog2);
  33. unlink($wiersz[6]);
  34. unlink($wiersz[5]);
  35. }
  36. $plik_tmp = $_FILES['plik']['tmp_name'];
  37. $plik_nazwa = $_FILES['plik']['name'];
  38. $plik_rozmiar = $_FILES['plik']['size'];
  39. $plik_type = $_FILES['plik']['type'];
  40. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  41. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  42. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  43. $zdjecie_type = $_FILES['zdjecie']['type'];
  44. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  45. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  46. if(is_uploaded_file($plik_tmp))
  47. {
  48. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  49. {
  50. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  51. if(is_uploaded_file($zdjecie_tmp))
  52. {
  53. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  54. {
  55. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  56. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  57. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  58. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  59. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  60. addslashes($zapytanie = 'UPDATE `artykuly` SET `tytul`= "'.$_POST['tytul'].'", `info`= "'.$_POST['info'].'", `cena`= "'.$_POST['cena'].'", `kategoria`= "'.$_POST['kategoria'].'", `zdjecie`= "zdjecie/'.$zdjecie_nazwa.'", `plik`= "upload/'.$plik_nazwa.'" WHERE `id`="'.$_POST['id'].'"');
  61. $idzapytania = mysql_query($zapytanie);
  62. }
  63. }
  64. }
  65. }
  66. echo '<div style="text-align:center;">Wyedytowano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  67. }
  68. {
  69. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  70. }
  71. else
  72. {
  73. echo '<div style="text-align:center;"><form action="index.php?page=edytujartykul&amp;edytuj=2" enctype="multipart/form-data" method="post">';
  74. stripslashes($zapytanie = 'SELECT * FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  75. $idzapytania = mysql_query($zapytanie);
  76. while ($wiersz = mysql_fetch_row($idzapytania))
  77. echo '<input type="hidden" name="id" value="'.$wiersz[0].'" />
  78. <input type="hidden" name="edycja" value="wartość" />Tytu&#x142;<br />
  79. <input type="text" name="tytul" value="'.$wiersz[1].'" size="20" /><br />Tre&#x15B;&#x107;
  80. <br />
  81. <textarea name="info" cols="50" rows="10">'.$wiersz[2].'</textarea>
  82. <br />Kategoria<br />
  83. <input type="text" name="kategoria" value="'.$wiersz[3].'" size="26" />
  84. <br />Cena<br />
  85. <input type="text" name="cena" value="'.$wiersz[4].'" size="26" />
  86. <br />Miniaturka
  87. <br />
  88. <input type="file" name="zdjecie" />
  89. <br />Plik
  90. <br />
  91. <input type="file" name="plik" />
  92. <br />
  93. <input type="submit" value="Edytuj" /><br />
  94. </form>';
  95. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  96. }
  97. }
  98. mysql_close($connect);
  99. ?>


Chodzi o tą część:

  1. {
  2. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  3. }


!is_uploaded_file nie działa. Co dać w zamian?
Proszę o pomoc smile.gif
Z góry dziękuje tongue.gif
MateuszS
  1.  
  2.  
  3. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT')) {
  4. if(is_uploaded_file($plik_tmp)) {
  5. echo 'plik zaladowany';
  6. } else {
  7. echo 'blad';
  8. }
  9. } else {
  10. echo 'zly format';
  11. }
  12.  


w ten sposob. Funkcja nie dziala ci bo nie przydzieliles jej argumentu...
darko
Nie lepiej to:

  1. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))


zastąpić tym:

  1. $extensions = array("zip", "rar", "txt");
  2. if(in_array(strtolower($ext1), $extensions)) {
  3. // ok, rozszerzenie znajduje się na liście dozwolonych
  4. // (...)


questionmark.gif smile.gif

//edit

is_uploaded_file
adrianozo
Przecież nie bardzo mogę użyć dwa razy else pod rząd
MateuszS
Dlatego przyuważ że to twoje elseif bylo zle uzyte
adrianozo
Jak robię dwa else to wyrzuca mi:

Parse error: syntax error, unexpected T_ELSE in /a/b/c/d/e/f/edytujartykul.php on line 73

Linia 69-74:

  1. else
  2. {
  3. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  4. }
  5. else
  6. {


Jakieś propozycje?
darko
Zajrzyj przynajmniej tutaj winksmiley.jpg
adrianozo
Zajrzałem... I nie znalazłem tam odpowiedzi
nospor
pomijajac juz fakt, ze nie potrafisz manuala przeczytac, to zastanow sie chwilke na logiką tego co zrobiles:

dwa else mozna przetlumaczyc tak:
w przeciwnym wypadku zrob cos1
w przeciwnym wypadku zrob cos2

I ktore wg. ciebie "w przeciwnym wypadku" zostanie wybrane? Losowo?
darko
Nie ma takiej składni:

if(...) {
//...
} else {
//...
}
else {
//...
}

to drugie else - jak łatwo zauważyć - nie ma swojego ifa.

Natomiast jest np. taka:

if(...) {
// ...
} elseif(...) {
// ...
} elseif(...) {
// ...
} else {
// ...
}

ps. zrób wcięcia w kodzie, wtedy będzie lepiej widać warunki
adrianozo
  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. $plik_nazwa = addslashes($_POST['plik']);
  5. $zdjecie_nazwa = addslashes($_POST['zdjecie']);
  6. if(!$_POST['id'])
  7. {
  8. echo '<div style="text-align:center;"><form action="index.php?page=edytujartykul&amp;edytuj=1" method="post">
  9. <select name="id"> ';
  10. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  11. $idzapytania = mysql_query($zapytanie);
  12. while ($wiersz = mysql_fetch_array($idzapytania))
  13. echo '<option value="'.$wiersz[0].'">(ID:'.$wiersz[0].') '.$wiersz[1].'</option>';
  14. </select>
  15. <input type="submit" value="Wybierz" />
  16. <br />
  17. </form>';
  18. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  19. }
  20. elseif($_POST['id'])
  21. {
  22. if($_POST['edycja'])
  23. {
  24. $zapytanie = "SELECT * FROM artykuly ORDER BY id DESC";
  25. $zapytanie = stripslashes($zapytanie);
  26. $idzapytania = mysql_query($zapytanie);
  27. while ($wiersz = mysql_fetch_row($idzapytania))
  28. {
  29. $katalog1 = '/medbookstore/PROJEKT1/zdjecie';
  30. $katalog2 = '/medbookstore/PROJEKT1/upload';
  31. $okatalog1 = opendir($katalog1);
  32. $okatalog2 = opendir($katalog2);
  33. unlink($wiersz[6]);
  34. unlink($wiersz[5]);
  35. }
  36. $plik_tmp = $_FILES['plik']['tmp_name'];
  37. $plik_nazwa = $_FILES['plik']['name'];
  38. $plik_rozmiar = $_FILES['plik']['size'];
  39. $plik_type = $_FILES['plik']['type'];
  40. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  41. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  42. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  43. $zdjecie_type = $_FILES['zdjecie']['type'];
  44. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  45. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  46. if(is_uploaded_file($plik_tmp))
  47. {
  48. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  49. {
  50. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  51. if(is_uploaded_file($zdjecie_tmp))
  52. {
  53. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  54. {
  55. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  56. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  57. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  58. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  59. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  60. addslashes($zapytanie = 'UPDATE `artykuly` SET `tytul`= "'.$_POST['tytul'].'", `info`= "'.$_POST['info'].'", `cena`= "'.$_POST['cena'].'", `kategoria`= "'.$_POST['kategoria'].'", `zdjecie`= "zdjecie/'.$zdjecie_nazwa.'", `plik`= "upload/'.$plik_nazwa.'" WHERE `id`="'.$_POST['id'].'"');
  61. $idzapytania = mysql_query($zapytanie);
  62. }
  63. }
  64. }
  65. }
  66. echo '<div style="text-align:center;">Wyedytowano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  67. }
  68. {
  69. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  70. }
  71. else
  72. {
  73. echo '<div style="text-align:center;"><form action="index.php?page=edytujartykul&amp;edytuj=2" enctype="multipart/form-data" method="post">';
  74. stripslashes($zapytanie = 'SELECT * FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  75. $idzapytania = mysql_query($zapytanie);
  76. while ($wiersz = mysql_fetch_row($idzapytania))
  77. echo '<input type="hidden" name="id" value="'.$wiersz[0].'" />
  78. <input type="hidden" name="edycja" value="wartość" />Tytu&#x142;<br />
  79. <input type="text" name="tytul" value="'.$wiersz[1].'" size="20" /><br />Tre&#x15B;&#x107;
  80. <br />
  81. <textarea name="info" cols="50" rows="10">'.$wiersz[2].'</textarea>
  82. <br />Kategoria<br />
  83. <input type="text" name="kategoria" value="'.$wiersz[3].'" size="26" />
  84. <br />Cena<br />
  85. <input type="text" name="cena" value="'.$wiersz[4].'" size="26" />
  86. <br />Miniaturka
  87. <br />
  88. <input type="file" name="zdjecie" />
  89. <br />Plik
  90. <br />
  91. <input type="file" name="plik" />
  92. <br />
  93. <input type="submit" value="Edytuj" /><br />
  94. </form>';
  95. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  96. }
  97. }
  98. mysql_close($connect);
  99. ?>
MateuszS
Halo, chyba nie przyuwazyles co napisalem odnosnie tego

darko
1. O, lepiej, dziękujemy za wcięcia tongue.gif

2. Napisz proszę po polsku (nie w PHP !) co chcesz tymi ifami zrobić, np. Jeśli $_POST["id"] jest różne od 0 to zrób to i to, jesli nie, to zrób to i to ... itd.

3. Tu masz napisane, w jaki sposób wyciągnąć rozszerzenie pliku.
adrianozo
1. Proszę bardzo
2. Jeżeli nie znajdzie w POST id pokazuje spis w liście rozwijalnej, jeżeli znajdzie to wykonuje kod, jeśli nic z dwóch wyżej pokazuje formularz
3. A nie może być tak?
darko
Ad. 2 Proponuję w ifach najpierw zakładać logikę pozytywną, czyli:

if(isset($_POST["id")) {
// wykonaj kod
} else {
// spis w liście rozwijalnej
}

Cytat
jeśli nic z dwóch wyżej
to znaczy jak questionmark.gif Nie znajdzie i nie nie znajdzie (== znajdzie) questionmark.gif Pomyśl, albo znajdzie, albo nie znajdzie, więc nie ma za bardzo opcji "jeśli nic z dwóch wyżej", albo - albo. Masz błąd logiczny, dlatego poprosiłem o komunikację po polsku.

ps. zastanów się, kiedy tak na prawdę ma pokazać formularz questionmark.gif Kiedy znajdzie czy nie znajdzie ?

Ad 3. może
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.