Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Dodawanie artykułu
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich użytkowników smile.gif
Pisząc skrypt dodawania artykułów do bazy danych napotkałem problem.
Ogólnie skrypt ma wyglądać tak:
Wchodzę w zakładkę dodaj pokazuje mi się lista rozwijalna wybieram to co chcę i klikam wybierz, następnie przechodzi mi do formularza i wpisując dane nie wysyła mi do bazy danych. Nie mam pojęcia dlaczego.
Proszę o pomoc(nie mogę sobie z tym poradzić już od wczoraj sad.gif)

dodaj.php
  1. <?php
  2. if(!$_SESSION['access'] || !$_SESSION['login'])
  3. {
  4. header('Location: index.php');
  5. }
  6. include('include/db.php');
  7. if (isset($_POST['nazwa']))
  8. {
  9. $wyb = $_POST['id'];
  10. if (isset($_POST['plik']))
  11. {
  12. }
  13. }
  14. if (!isset($_POST['id']) && empty($_POST['id']))
  15. {
  16. echo '<form action="index.php?page=dodaj&wpis=1" method="post">
  17. <br />Wybierz kategorię:<br /><br /><select name="id">
  18. <option value="testy">Testy</option>
  19. <option value="arkusz_kalkulacyjny">Arkusz kalkulacyjny</option>
  20. <option value="bazy_danych">Bazy danych</option>
  21. </select>
  22. <input name="wybierz" type="submit" value="Wybierz" />
  23. <br /><br />
  24. </form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  25. }
  26. elseif($_POST['id'])
  27. {
  28. if(isset($_POST['nazwa']))
  29. {
  30. echo '<form action="index.php?page=dodaj&wpis=2" enctype="multipart/form-data" method="post">
  31. <input type="hidden" name="send" value="1">
  32. <input type="hidden" name="dodaj" value="wartość" />
  33. <br />Nazwa:<br /><input type="text" name="nazwa" value="'.$_POST['nazwa'].'" /><br /><br />
  34. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">'.$_POST['tresc'].'</textarea><br /><br />';
  35. echo '<br /><br />
  36. Plik:<br /><input type="file" name="plik" /><br /><br />
  37. <input name="dodaj" type="submit" value="Dodaj">
  38. <input name="wyczysc" type="reset" value="Wyczyść">
  39. </form><br /><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  40. }
  41. else
  42. {
  43. echo '<form action="index.php?page=dodaj&wpis=2" enctype="multipart/form-data" method="post">
  44. <input type="hidden" name="send" value="1">
  45. <input type="hidden" name="dodaj" value="wartość" />
  46. <br />Nazwa:<br /><input type="text" name="nazwa" value="Nazwa" /><br /><br />
  47. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">Treść</textarea><br /><br />';
  48. echo '<br /><br />
  49. Plik:<br /><input type="file" name="plik" /><br /><br />
  50. <input name="dodaj" type="submit" value="Dodaj">
  51. <input name="wyczysc" type="reset" value="Wyczyść">
  52. </form><br /><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  53. }
  54. if(isset($_POST['dodaj']) && !empty($_POST['dodaj']))
  55. {
  56. if($_GET['wpis']==2)
  57. {
  58. $plik_tmp = $_FILES['plik']['tmp_name'];
  59. $plik_nazwa = $_FILES['plik']['name'];
  60. $plik_rozmiar = $_FILES['plik']['size'];
  61. $plik_type = $_FILES['plik']['type'];
  62. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  63. if(is_uploaded_file($plik_tmp))
  64. {
  65. if(($ext1 == 'jpg') || ($ext1 == 'JPG') || ($ext1 == 'jpeg') || ($ext1 == 'JPEG') || ($ext1 == 'png') || ($ext1 == 'PNG') || ($ext1 == 'gif') || ($ext1 == 'GIF'))
  66. {
  67. if($wyb=='testy')
  68. {
  69. move_uploaded_file($plik_tmp, "upload/testy/$plik_nazwa");
  70. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  71. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  72. $zapytanie = "INSERT INTO `testy` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/testy/".$plik_nazwa."', '/testy')";
  73. $idzapytania = mysql_query($zapytanie);
  74. $last_insert_id = mysql_insert_id();
  75. $zapytanie2 = 'UPDATE `testy` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  76. $idzapytania2 = mysql_query($zapytanie2);
  77. }
  78. elseif($wyb=='arkusz_kalkulacyjny')
  79. {
  80. move_uploaded_file($plik_tmp, "upload/arkusz_kalkulacyjny/$plik_nazwa");
  81. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  82. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  83. $zapytanie = "INSERT INTO `arkusz_kalkulacyjny` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/arkusz_kalkulacyjny/".$plik_nazwa."', '/arkusz_kalkulacyjny')";
  84. $idzapytania = mysql_query($zapytanie);
  85. $last_insert_id = mysql_insert_id();
  86. $zapytanie2 = 'UPDATE `arkusz_kalkulacyjny` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  87. $idzapytania2 = mysql_query($zapytanie2);
  88. }
  89. elseif($wyb=='bazy_danych')
  90. {
  91. move_uploaded_file($plik_tmp, "upload/bazy_danych/$plik_nazwa");
  92. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  93. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  94. $zapytanie = "INSERT INTO `bazy_danych` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/bazy_danych/".$plik_nazwa."', '/bazy_danych')";
  95. $idzapytania = mysql_query($zapytanie);
  96. $last_insert_id = mysql_insert_id();
  97. $zapytanie2 = 'UPDATE `bazy_danych` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  98. $idzapytania2 = mysql_query($zapytanie2);
  99. }
  100. }
  101. }
  102. else
  103. {
  104. echo '<div style="text-align:center;"><font color="red"><br />Zły format pliku!</font><br /><a style="text-decoration: none;" onclick="history.back();">Wróć do edycji</a></div><br />';
  105. }
  106. }
  107. }
  108. if($_POST['send'])
  109. {
  110. if(isset($idzapytania))
  111. {
  112. if($idzapytania === TRUE)
  113. {
  114. echo '<div align="center"><font color="green"><b>Notka została dodana.</b></font></div><br />';
  115. }
  116. else
  117. {
  118. echo '<div style="text-align:center;"><font color="red"><b>Nie udało się dodać notki. Proszę spróbować za jakiś czas!</b></font></div><br />';
  119. }
  120. }
  121. }
  122. }
  123. mysql_close($connect);
  124. ?>


Z góry dziękuje i pozdrawiam,
nansss smile.gif
Kshyhoo
Jakieś błędy? Co przechodzi w $_POST?
adrianozo
Błędów brak, a przez który $_POST?
piotrooo89
Temat: Jak poprawnie zada pytanie proszę o zapoznanie się z tym artykułem.
adrianozo
mysql_error()); nic nie zwraca a var_dump($_POST['dodaj']); zwraca NULL
Kshyhoo
Zobacz tak:
  1. print('<pre>POST: ');
  2. print_r($_POST);
  3. print('</pre>');
adrianozo
POST: Array
(
[id] => testy
[wybierz] => Wybierz
)
Kshyhoo
No to teraz już wiesz, co przechodzi a czego brak?
adrianozo
Tak tylko nie mam pomysłu jak to naprawić sad.gif
Kshyhoo
Cytat(adrianozo @ 2.05.2010, 10:33:19 ) *
Pisząc skrypt dodawania artykułów do bazy danych napotkałem problem.

No bez jaj, napisałeś taki wypasiony skrypt a z kilkoma if'ami nie dasz sobie rady? Trochę rozlazły jest ten Twój skrypt, brak wcięć... nic dziwnego, że nie możesz się połapać.
adrianozo
Chodzi o to, że nie wiem w czym jest problem... co jest nie tak, czemu nie przesyła tych danych

Niby naprawiłem ale coś jest nie tak. Odbierając value z listy rozwijalnej robię to tak:

  1. $wyb = $_POST['id'];

Sprawdzając funkcja print_r przesyła, że w $_POST[id] przesyła nazwę z value i jest ok i teraz daje warunek

  1. if($wyb=='testy')
  2. {
  3. kod
  4. }
  5. elseif($wyb=='arkusz_kalkulacyjny')
  6. {
  7. kod
  8. }
  9. else
  10. {
  11. kod
  12. }

I według niego if i elseif się nie spełniają i dodaje do bazy danych nie testy nie arkusz_kalkulacyjny tylko ta ostatnia a dając

  1. if($wyb=='testy')
  2. {
  3. kod
  4. }
  5. elseif($wyb=='arkusz_kalkulacyjny')
  6. {
  7. kod
  8. }
  9. elseif($wyb=='bazy_danych')
  10. {
  11. kod
  12. }


Nie dodaje nigdzie bo według niego warunki nie są spełnione. Nie mam pojęcia dlaczego. Proszę o pomoc smile.gif
Z góry dziękuje smile.gif
Kshyhoo
Zrób tak:
  1. if($wyb=='testy'){
  2. kod
  3. }
  4. if($wyb=='arkusz_kalkulacyjny'){
  5. kod
  6. }
  7. if($wyb=='bazy_danych'){
  8. kod
  9. }


adrianozo
Teraz wyrzuca po prostu komunikat else z tego kodu:

  1. if($idzapytania === TRUE)
  2. {
  3. echo '<font color="green"><b>Notka została dodana.</b></font><br /><br />';
  4. }
  5. else
  6. {
  7. echo '<font color="red"><b>Nie udało się dodać notki. Proszę spróbować za jakiś czas!</b></font><br /><br />';
  8. }
Kshyhoo
Co mówi $_POST?
Sprawdź, czy zapytanie wykonuje się poprawnie.

PS. Znacznik <font> nie jest zgodny ze specyfikacją. Skąd Ty wyciągnąłeś ten skrypt?

EDIT: operator === był w php4, teraz używa się po prostu ==.
adrianozo
To może pokaże cały skrypt smile.gif

  1. <?php
  2. if(!$_SESSION['access'] || !$_SESSION['login'])
  3. {
  4. header('Location: index.php');
  5. }
  6. include('include/db.php');
  7. if (isset($_POST['nazwa']))
  8. {
  9. $wyb = $_POST['id'];
  10. if (isset($_POST['plik']))
  11. {
  12. }
  13. }
  14. if (!isset($_POST['id']) && empty($_POST['id']))
  15. {
  16. echo '<form action="index.php?page=dodaj&wpis=1" method="post">
  17. <br />Wybierz kategorię:<br /><br /><select name="id">
  18. <option value="testy">Testy</option>
  19. <option value="arkusz_kalkulacyjny">Arkusz kalkulacyjny</option>
  20. <option value="bazy_danych">Bazy danych</option>
  21. </select>
  22. <input name="wybierz" type="submit" value="Wybierz" />
  23. <br /><br />
  24. </form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  25. }
  26. elseif($_POST['id'])
  27. {
  28. if(isset($_POST['nazwa']))
  29. {
  30. echo '<form action="index.php?page=dodaj&wpis=1" enctype="multipart/form-data" method="post">
  31. <input type="hidden" name="send" value="1">
  32. <input type="hidden" name="dodaj" value="wartość" />
  33. <br />Nazwa:<br /><input type="text" name="nazwa" value="'.$_POST['nazwa'].'" /><br /><br />
  34. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">'.$_POST['tresc'].'</textarea><br /><br />';
  35. ?>
  36. <input type="button" onclick="tag('','')" value="URL" />
  37. <input type="button" onclick="tag('[small]','[/small]')" value="SMALL" />
  38. <input type="button" onclick="tag('[big]','[/big]')" value="BIG" />
  39. <input type="button" onclick="tag('[p]','[/p]')" value="P" />
  40. <input type="button" onclick="tag('
    ','
    ')" value="CENTER" />
  41. <input type="button" onclick="tag('','')" value="B" />
  42. <input type="button" onclick="tag('','')" value="I" /><br />
  43. <input type="button" onclick="tag('','')" value="U" />
  44. <input type="button" onclick="tag('')" value="IMG" />
  45. <select>
  46. <option class="przycisk_bbc" />ROZMIAR:
  47. <option onclick="tag('','')" />1
  48. <option onclick="tag('','')" />2
  49. <option onclick="tag('','')" />3
  50. <option onclick="tag('','')" />4
  51. <option onclick="tag('','')" />5
  52. <option onclick="tag('','')" />6
  53. <option onclick="tag('','')" />7
  54. <option onclick="tag('','')" />8
  55. </select>
  56. <select>
  57. <option />KOLOR:
  58. <option onclick="tag('','');" />BIAŁY
  59. <option onclick="tag('','')" />CZARNY
  60. <option onclick="tag('','')" />ZIELONY
  61. <option onclick="tag('','')" />CZERWONY
  62. <option onclick="tag('','')" />NIEBIESKI
  63. <option onclick="tag('','')" />POMARAŃCZOWY
  64. <option onclick="tag('','')" />ŻÓŁTY
  65. <option onclick="tag('','')" />SZARY
  66. </select>
  67. <?php
  68. echo '<br /><br />
  69. Plik:<br /><input type="file" name="plik" /><br /><br />
  70. <input name="dodaj" type="submit" value="Dodaj">
  71. <input name="wyczysc" type="reset" value="Wyczyść">
  72. </form><br /><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  73. }
  74. else
  75. {
  76. echo '<form action="index.php?page=dodaj&wpis=1" enctype="multipart/form-data" method="post">
  77. <input type="hidden" name="send" value="1">
  78. <input type="hidden" name="dodaj" value="wartość" />
  79. <br />Nazwa:<br /><input type="text" name="nazwa" value="Nazwa" /><br /><br />
  80. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">Treść</textarea><br /><br />';
  81. ?>
  82. <input type="button" onclick="tag('','')" value="URL" />
  83. <input type="button" onclick="tag('[small]','[/small]')" value="SMALL" />
  84. <input type="button" onclick="tag('[big]','[/big]')" value="BIG" />
  85. <input type="button" onclick="tag('[p]','[/p]')" value="P" />
  86. <input type="button" onclick="tag('
    ','
    ')" value="CENTER" />
  87. <input type="button" onclick="tag('','')" value="B" />
  88. <input type="button" onclick="tag('','')" value="I" /><br />
  89. <input type="button" onclick="tag('','')" value="U" />
  90. <input type="button" onclick="tag('')" value="IMG" />
  91. <select>
  92. <option class="przycisk_bbc" />ROZMIAR:
  93. <option onclick="tag('','')" />1
  94. <option onclick="tag('','')" />2
  95. <option onclick="tag('','')" />3
  96. <option onclick="tag('','')" />4
  97. <option onclick="tag('','')" />5
  98. <option onclick="tag('','')" />6
  99. <option onclick="tag('','')" />7
  100. <option onclick="tag('','')" />8
  101. </select>
  102. <select>
  103. <option />KOLOR:
  104. <option onclick="tag('','');" />BIAŁY
  105. <option onclick="tag('','')" />CZARNY
  106. <option onclick="tag('','')" />ZIELONY
  107. <option onclick="tag('','')" />CZERWONY
  108. <option onclick="tag('','')" />NIEBIESKI
  109. <option onclick="tag('','')" />POMARAŃCZOWY
  110. <option onclick="tag('','')" />ŻÓŁTY
  111. <option onclick="tag('','')" />SZARY
  112. </select>
  113. <?php
  114. echo '<br /><br />
  115. Plik:<br /><input type="file" name="plik" /><br /><br />
  116. <input name="dodaj" type="submit" value="Dodaj">
  117. <input name="wyczysc" type="reset" value="Wyczyść">
  118. </form><br /><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  119. }
  120. }
  121. if(isset($_POST['dodaj']) && !empty($_POST['dodaj']))
  122. {
  123. $plik_tmp = $_FILES['plik']['tmp_name'];
  124. $plik_nazwa = $_FILES['plik']['name'];
  125. $plik_rozmiar = $_FILES['plik']['size'];
  126. $plik_type = $_FILES['plik']['type'];
  127. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  128. if(is_uploaded_file($plik_tmp))
  129. {
  130. if(($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'zip') || ($ext1 == 'ZIP'))
  131. {
  132. if($wyb=='testy')
  133. {
  134. move_uploaded_file($plik_tmp, "upload/testy/$plik_nazwa");
  135. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  136. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  137. $zapytanie = "INSERT INTO `testy` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/testy/".$plik_nazwa."', '/testy')";
  138. $idzapytania = mysql_query($zapytanie) or die (mysql_error());
  139. $last_insert_id = mysql_insert_id();
  140. $zapytanie2 = 'UPDATE `testy` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  141. $idzapytania2 = mysql_query($zapytanie2);
  142. }
  143. elseif($wyb=='arkusz_kalkulacyjny')
  144. {
  145. move_uploaded_file($plik_tmp, "upload/arkusz_kalkulacyjny/$plik_nazwa");
  146. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  147. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  148. $zapytanie = "INSERT INTO `arkusz_kalkulacyjny` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/arkusz_kalkulacyjny/".$plik_nazwa."', '/arkusz_kalkulacyjny')";
  149. $idzapytania = mysql_query($zapytanie) or die (mysql_error());
  150. $last_insert_id = mysql_insert_id();
  151. $zapytanie2 = 'UPDATE `arkusz_kalkulacyjny` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  152. $idzapytania2 = mysql_query($zapytanie2);
  153. }
  154. elseif($wyb=='bazy_danych')
  155. {
  156. move_uploaded_file($plik_tmp, "upload/bazy_danych/$plik_nazwa");
  157. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  158. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  159. $zapytanie = "INSERT INTO `bazy_danych` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/bazy_danych/".$plik_nazwa."', '/bazy_danych')";
  160. $idzapytania = mysql_query($zapytanie) or die (mysql_error());
  161. $last_insert_id = mysql_insert_id();
  162. $zapytanie2 = 'UPDATE `bazy_danych` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  163. $idzapytania2 = mysql_query($zapytanie2);
  164. }
  165. }
  166. else
  167. {
  168. echo '<font color="red"><br />Zły format pliku!</font><br /><br /><a style="text-decoration: none;" onclick="history.back();">Wróć do edycji</a><br /><br />';
  169. }
  170. }
  171. }
  172. if($_POST['send'])
  173. {
  174. if(isset($idzapytania))
  175. {
  176. if($idzapytania === TRUE)
  177. {
  178. echo '<font color="green"><b>Notka została dodana.</b></font><br /><br />';
  179. }
  180. else
  181. {
  182. echo '<font color="red"><b>Nie udało się dodać notki. Proszę spróbować za jakiś czas!</b></font><br /><br />';
  183. }
  184. }
  185. }
  186. mysql_close($connect);
  187. ?>


Pozdrawiam,
nansss smile.gif
nospor
Cytat
EDIT: operator === był w php4, teraz używa się po prostu ==.
Dobry gryps nie jest zły.... winksmiley.jpg
Odpal sobie ten skrypt:
  1. if (2 == '2') echo 'Jol Kshyhoo z ==';
  2. if (2 === '2') echo 'Jol Kshyhoo z ===';

adrianozo
Mój powyższy post został zaktualizowany
nospor
Juz raz podano ci tego linka, ale ja podam ci go drugi raz:
Temat: Jak poprawnie zada pytanie

zastosuj sie do wszystkich tam podanych porad, miedzy innymi: wyswietlanie wszystkich bledow, echo 'DUPA'; by sprawdzac czy skrypt wchodzi ci do IFow. Musisz sam zdiagnozowac gdzie jest blad, albo chociaz nam to ulatwic. A tu za kazdym razem trzeba ci pisac: a zrob to, a zrob jeszcze tamto... to wszystko masz sam zrobic i nam podac.
adrianozo
Zastosowałem się do tego i po kolei:

1. Włączenie błędów pokazuje tylko Notice: Undefined index:
2. Natomiast zdziwiło mnie wyświetlenie zapytania. Nigdzie nie wykonuje zapytania SELECT, a po dodaniu
  1. echo 'ZAPYTANIE: '.$zapytanie;
wyświetlił mi

  1. ZAPYTANIE:SELECT * FROM `testy` ORDER BY `rok` DESC


Nie mam pojęcia dlaczego.
nospor
Cytat
1. Włączenie błędów pokazuje tylko Notice: Undefined index:
To nie jest TYLKO. To jest AZ. Czesto bledy NOTICE pokazują ze w skrypcie jest coś złego. Przeczytaj je uważnie i przeanalizuj i zrob by sie nie pojawiały - dla Twojego dobra.

Miales pozatym zastosowac sie do wszystkich porad. Jedną z nich jest:
Jak dostajesz blad to masz go nam pokazac nawet jesli to jest NOTICE
adrianozo
Kolejny problem jaki napotkałem:

mam zrobione tak:

  1. $wyb = $_POST['id'];


sprawdzając:
  1. print_r($wyb);

nie wyświetla nic, natomiast
  1. print_r($_POST['id']);

Wyświetla to co wybrałem

Pierwszy błąd:

Notice: Undefined index: send in /var/www/virtual/nansss93.cba.pl/panel/dodaj.php on line 177

Drugi błąd:

Notice: Undefined index: id in /var/www/virtual/nansss93.cba.pl/panel/dodaj.php on line 13
nospor
No i te wlasnie bledu juz wszystko mowią. Nie widzisz tego?

$wyb = $_POST['id']; - tu nie ma indexu "id" - nie wysylasz go formularzem w momencie gdy chcesz cos dodawac.

nie ma prawa ci dzialac to:
print_r($_POST['id']);
i jednoczesnie nie dzialac to:
$wyb = $_POST['id'];

Pewnie sprawdzasz to w zupelnie innych miejscach. No patrz trochę co robisz smile.gif
adrianozo
To co mam zrobić, bo się pogłubiłem
Kshyhoo
Cytat(adrianozo @ 4.05.2010, 14:22:19 ) *
To co mam zrobić, bo się pogłubiłem

Ten kod musisz wkleić na samym końcu skryptu:
  1. print_r($_POST['id']);
adrianozo
Dzieje się praktycznie to samo tylko w dodatku dodatkowy Notice:

Notice: Undefined index: id in /var/www/virtual/nansss93.cba.pl/panel/dodaj.php on line 191

Jest to ta linijka:
  1. print_r($_POST['id']);
Kshyhoo
Już Ci nospor napisał, nie wysylasz go formularzem, to go nie ma.
adrianozo
To jak go wysłać?
hidden?
Kshyhoo
Myślę, że te Twoje if'y coś nie tak pracują, jak powinny. Może tak:
  1. <?php
  2.  
  3. if (!isset($_POST['id']) && empty($_POST['id'])){
  4. echo '<form action="test.php" method="post">
  5. <br />Wybierz:<br /><br />
  6. <select name="id">
  7. <option value="testy">Testy</option>
  8. <option value="arkusz_kalkulacyjny">Arkusz kalkulacyjny</option>
  9. <option value="bazy_danych">Bazy danych</option>
  10. </select>
  11. <input name="wybierz" type="submit" value="Wybierz" />
  12. <br /><br />
  13. </form>';
  14.  
  15. } else {
  16.  
  17. if(isset($_POST['id']) && $_POST['id']=='testy'){
  18. echo 'wybrano '.$_POST['id'];
  19. }
  20. elseif(isset($_POST['id']) && $_POST['id']=='arkusz_kalkulacyjny'){
  21. echo 'wybrano '.$_POST['id'];
  22. }
  23. elseif(isset($_POST['id']) && $_POST['id']=='bazy_danych'){
  24. echo 'wybrano '.$_POST['id'];
  25. }
  26.  
  27. }
  28.  
  29. echo'<br /><br /><pre>';
  30. print_r($_POST);
  31. echo'</pre>';
  32. ?>
Misiur66
Kod
if (!isset($_POST['id']) && empty($_POST['id'])){


Jeśli jest !isset, to już nie może być empty

Kod
if (!isset($_POST['id']) || empty($_POST['id'])){
nospor
No to jak juz się tak czepiamy to w tym przypadku wystarczyłoby samo empty
if (empty($_POST['id'])){

smile.gif
Kshyhoo
A ja jestem ciekaw jednego. Skoro wszyscy tyle wiedzą i się wymądrzają, dlaczego adrianozo jeszcze nie uzyskał stosownej pomocy i nie rozwiązał problemów? Poznałem co nie co świat i jestem święcie przekonany, że Polacy potrafią wiele - również chwalić się swoją wiedzą, niekoniecznie się nią dzieląc z innymi. Mieszkam od 4 lat we Włoszech. Włosi są strasznie w sobie zakochani, chwalipięty do sześcianu... ale wolontariat jest na porządku dziennym i słowo "pomoc" naprawdę odzwierciedla swoje znaczenie.
Sorry za offtopic ale taka jest prawda. Człowiek najlepiej uczy się na przykładach - po to ktoś wymyślił szkoły - żeby pokazać a potem wymagać. A to forum zdaje się mieć w nazwie php.pl, więc powinno być dobrą szkołą dla początkujących a nie polem do popisów dla kpiarzy, mądrali czy spamerów...
nospor
O co ci chodzi? Podales kod, zwrocono ci uwagę ze dales parę rzeczy niepotrzebnie. Zamiast to przyjąc i poprawic i na przyszlosc pisać optymalniej to tobie piana z ust leci.... i ty coś mowisz jacy inni są...

Poza tym ja na forum przykładowo pomagam dużo. A czasami jak widzę kod, który można zapisać krócej to zwracam uwagę. To też jest pomoc - w tym przypadku również dla Ciebie smile.gif
Misiur66
No dobrze, to jak się czepiamy to na całego:

Kod
<?php

if (!isset($_POST['id']) || empty($_POST['id']))
{
    ?><form action="test.php" method="post">
        <br />Wybierz:<br /><br />
        <select name="id">
            <option value="testy">Testy</option>
            <option value="arkusz_kalkulacyjny">Arkusz kalkulacyjny</option>
            <option value="bazy_danych">Bazy danych</option>
        </select>
        <input name="wybierz" type="submit" value="Wybierz" />
        <br /><br />
    </form>
<?php
}
else
{
    switch($_POST['id'])
    {
        case 'testy':
            $wynik = "Wybrano testy";
        break;
        case 'arkusz_kalkulacyjny':
            $wynik = "Wybrano arkusz kalkulacyjny";
        break;
        case 'bazy_danych':
            $wynik = "Wybrano bazy danych";
        break;
        default:
            echo 'To się wykona tylko jak ktoś będzie manipulował $_POST';
    }
}

echo "<h3>$wynik</h3>";
?>


Jeżeli tekst jest dłuższy niż 3 linijki i nie zawiera PHP, to lepiej wyłączyć na chwile PHP.

@Nospor: Dałem w tym if'ie i isset i empty, żeby potem 2 raz nie sprawdzać issetów.
Kshyhoo
nospor, nie chodzi mi o Ciebie, bo wiem, ile robisz na tym forum. Chodzi mi o to, że nikt dupy nie ruszy i nie pomoże komuś, kto szuka pomocy ale jak już ktoś się wychyli i pomoże, to od razu jest publika i teksty typu "No dobrze, to jak się czepiamy to na całego".

Misiur66, to czy ktoś chce wyskoczyć z php, czy nie, to już jego indywidualna sprawa, czy ktoś chce użyć swich, czy if - również. Masz wiedzę, pisz konkrety odnośnie postów adrianozo. To on potrzebuje pomocy. Ja sobie daję radę, na te 4 miesiące nauki php i tak umiem sporo.
nospor
Cytat
@Nospor: Dałem w tym if'ie i isset i empty, żeby potem 2 raz nie sprawdzać issetów.
Przecież tam nic juz potem nie trzeba byłoby sprawdzac... oj czepiamy sie ale sami czegos nie wiemy winksmiley.jpg

ps: uzywaj wlasciwe bbcode
Misiur66
@Kshyhoo: Czuję w Twoim wywodzie mocną aluzję do mnie. Wszyscy wiedzą że to @adrianozo ma problem, a nie Ty. Ale jak już coś przedstawiasz, to zrób to jak najlepiej się da i czasem posłuchaj jak ktoś podrzuca radę, tudzież uwagę winksmiley.jpg

Down:

Cóż, łamanie captchy != spamowanie
Kshyhoo
Cytat(Misiur66 @ 5.05.2010, 11:26:07 ) *
@Kshyhoo: Czuję w Twoim wywodzie mocną aluzję do mnie. Wszyscy wiedzą że to @adrianozo ma problem, a nie Ty. Ale jak już coś przedstawiasz, to zrób to jak najlepiej się da i czasem posłuchaj jak ktoś podrzuca radę, tudzież uwagę winksmiley.jpg

To właśnie robię, pomagam. Zauważ, że wytłuściłem słowo pomagam . A pomagam, na ile umiem. Umiesz lepiej, to pomóż. Nie masz chęci pomóc a tylko się wymądrzyć, idź na "pudelka"...

ja kończę dyskusję, bo nie chcę zarobić ostrzeżenia za spam, jak już mają niektórzy "pomagierzy"...
adrianozo
To tak: wyeliminowałem Notice poprawiłem if'y i w dalszym ciągu nie działa sad.gif

dodaj.php
  1. <?php
  2. ini_set('display_errors','1');
  3. if(!$_SESSION['access'] || !$_SESSION['login'])
  4. {
  5. header('Location: index.php');
  6. }
  7. include('include/db.php');
  8. if (isset($_POST['nazwa']))
  9. {
  10. if(isset($_POST['id']))
  11. {
  12. $wyb = $_POST['id'];
  13. }
  14. if(isset($_POST['plik']))
  15. {
  16. }
  17. }
  18. if (!isset($_POST['id']) && empty($_POST['id']))
  19. {
  20. echo '<form action="index.php?page=dodaj&wpis=1" method="post">
  21. <br />Wybierz kategorię:<br /><br /><select name="id">
  22. <option value="testy">Testy</option>
  23. <option value="arkusz_kalkulacyjny">Arkusz kalkulacyjny</option>
  24. <option value="bazy_danych">Bazy danych</option>
  25. </select>
  26. <input name="wybierz" type="submit" value="Wybierz" />
  27. <br /><br />
  28. </form><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  29. }
  30. else
  31. {
  32. if(isset($_POST['nazwa']))
  33. {
  34. echo '<form action="index.php?page=dodaj&wpis=1" enctype="multipart/form-data" method="post">
  35. <input type="hidden" name="send" value="1">
  36. <input type="hidden" name="dodaj" value="wartość" />
  37. <br />Nazwa:<br /><input type="text" name="nazwa" value="'.$_POST['nazwa'].'" /><br /><br />
  38. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">'.$_POST['tresc'].'</textarea><br /><br />';
  39. echo '<br /><br />
  40. Plik:<br /><input type="file" name="plik" /><br /><br />
  41. <input name="dodaj" type="submit" value="Dodaj">
  42. <input name="wyczysc" type="reset" value="Wyczyść">
  43. </form><br /><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  44. }
  45. else
  46. {
  47. echo '<form action="index.php?page=dodaj&wpis=1" enctype="multipart/form-data" method="post">
  48. <input type="hidden" name="send" value="1">
  49. <input type="hidden" name="dodaj" value="wartość" />
  50. <br />Nazwa:<br /><input type="text" name="nazwa" value="Nazwa" /><br /><br />
  51. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">Treść</textarea><br /><br />';
  52. echo '<br /><br />
  53. Plik:<br /><input type="file" name="plik" /><br /><br />
  54. <input name="dodaj" type="submit" value="Dodaj">
  55. <input name="wyczysc" type="reset" value="Wyczyść">
  56. </form><br /><a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  57. }
  58. }
  59. if(isset($_POST['dodaj']) && !empty($_POST['dodaj']))
  60. {
  61. $plik_tmp = $_FILES['plik']['tmp_name'];
  62. $plik_nazwa = $_FILES['plik']['name'];
  63. $plik_rozmiar = $_FILES['plik']['size'];
  64. $plik_type = $_FILES['plik']['type'];
  65. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  66. if(is_uploaded_file($plik_tmp))
  67. {
  68. if(($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'zip') || ($ext1 == 'ZIP'))
  69. {
  70. if(isset($_POST['id']) && $_POST['id']=='testy')
  71. {
  72. move_uploaded_file($plik_tmp, "upload/testy/$plik_nazwa");
  73. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  74. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  75. $zapytanie = "INSERT INTO `testy` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/testy/".$plik_nazwa."', '/testy')";
  76. $idzapytania = mysql_query($zapytanie) or die ('BŁĄD:'.mysql_error());
  77. $last_insert_id = mysql_insert_id();
  78. $zapytanie2 = 'UPDATE `testy` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  79. $idzapytania2 = mysql_query($zapytanie2);
  80. }
  81. elseif(isset($_POST['id']) && $_POST['id']=='arkusz_kalkulacyjny')
  82. {
  83. move_uploaded_file($plik_tmp, "upload/arkusz_kalkulacyjny/$plik_nazwa");
  84. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  85. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  86. $zapytanie = "INSERT INTO `arkusz_kalkulacyjny` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/arkusz_kalkulacyjny/".$plik_nazwa."', '/arkusz_kalkulacyjny')";
  87. $idzapytania = mysql_query($zapytanie) or die ('BŁĄD:'.mysql_error());
  88. $last_insert_id = mysql_insert_id();
  89. $zapytanie2 = 'UPDATE `arkusz_kalkulacyjny` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  90. $idzapytania2 = mysql_query($zapytanie2);
  91. }
  92. elseif(isset($_POST['id']) && $_POST['id']=='bazy_danych')
  93. {
  94. move_uploaded_file($plik_tmp, "upload/bazy_danych/$plik_nazwa");
  95. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  96. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  97. $zapytanie = "INSERT INTO `bazy_danych` (`nazwa`, `tresc`, `plik`, `adres`) VALUES ('".$nazwa."', '".$tresc."', 'upload/bazy_danych/".$plik_nazwa."', '/bazy_danych')";
  98. $idzapytania = mysql_query($zapytanie) or die ('BŁĄD:'.mysql_error());
  99. $last_insert_id = mysql_insert_id();
  100. $zapytanie2 = 'UPDATE `bazy_danych` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  101. $idzapytania2 = mysql_query($zapytanie2);
  102. }
  103. }
  104. else
  105. {
  106. echo '<font color="red"><br />Zły format pliku!</font><br /><br /><a style="text-decoration: none;" onclick="history.back();">Wróć do edycji</a><br /><br />';
  107. }
  108. }
  109. }
  110. if(isset($_POST['send']))
  111. {
  112. if($_POST['send'])
  113. {
  114. if(isset($idzapytania))
  115. {
  116. if($idzapytania === TRUE)
  117. {
  118. echo '<font color="green"><b>Notka została dodana.</b></font><br /><br />';
  119. }
  120. else
  121. {
  122. echo '<font color="red"><b>Nie udało się dodać notki. Proszę spróbować za jakiś czas!</b></font><br /><br />';
  123. }
  124. }
  125. }
  126. }
  127. mysql_close($connect);
  128. ?>
Kshyhoo
1. Co nie działa?
2. Zastosuj odpowiednie formatowanie kodu, teraz jest mało czytelny.
adrianozo
Ok przesłałem w hidden
  1. <input type="hidden" name="id" value="'.$_POST['id'].'" />

i działa.
Tylko zastanawia mnie dlaczego jak dałem tak:
  1. <input type="hidden" name="id" value="'.$wyb.'" />

nie działa skoro mam wyżej zdefiniowane
  1. if(isset($_POST['id']))
  2. {
  3. $wyb = $_POST['id'];
  4. }
nospor
Pewnie znowu dałeś to w złym miejscu smile.gif
Misiur66
Kod
action="index.php?page=dodaj&wpis=1"


Wszystkie formularze mają jeden cel, jak chcesz je odróżniać?
adrianozo
OK. Już wszystko działa. Dzięki za pomoc smile.gif
Pomógł lecą smile.gif
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.