Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Dodawanie artykułu a Notice: Undefined index:
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam.
Otóż mam problem. Mianowicie, gdy na skrypt wygląda tak to dodaje rekord do bazy i wszystko działa, ale pokazuje kilka Notice: Undefined index:.
Chcąc zrobić, aby nie pokazywało tego typu komunikatów wyczytałem, że trzeba zrobić następującą komendę:

  1. if(isset($_POST['info']))
  2. {
  3. }


Gdy tak zrobię dodaje mi rekord, ale z pustymi kolumnami:

dodajartykul.php

  1. <?php
  2. include('include/db.php');
  3. date_default_timezone_set('Europe/Warsaw');
  4. if(isset($_POST['info']) && !isset($_POST['kategoria']) && isset($_POST['tytul']) && isset($_POST['krotka']) && isset($_POST['cena']) && isset($_POST['plik']) && isset($_POST['zdjecie']))
  5. {
  6. $info = mysql_real_escape_string($_POST['info']);
  7. $kategoria = mysql_real_escape_string($_POST['kategoria']);
  8. $tytul = mysql_real_escape_string($_POST['tytul']);
  9. $krotka = mysql_real_escape_string($_POST['krotka']);
  10. $cena = (int)mysql_real_escape_string($_POST['cena']);
  11. $plik_nazwa = mysql_real_escape_string($_POST['plik']);
  12. $zdjecie_nazwa = mysql_real_escape_string($_POST['zdjecie']);
  13. $data = date('Y-m-d-G:i:s');
  14. }
  15. include('include/dane.php');
  16. if (!isset($_POST['info']) && empty($_POST['info']))
  17. {
  18. echo '<div style="text-align:center;"><form action="index.php?page=dodajartykul" enctype="multipart/form-data" method="post">Tytu&#x142;<br />
  19. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  20. <input type="text" name="tytul" value="Tytu&#x142;" size="26" />
  21. <br />Tre&#x15B;&#x107;<br />
  22. <textarea name="info" cols="50" rows="10">Tre&#x15B;&#x107;</textarea>
  23. <br />Kr&#xF3;tka tre&#x15B;&#x107;<br />
  24. <textarea name="krotka" cols="30" rows="5">Kr&#xF3;tka tre&#x15B;&#x107;</textarea>
  25. <br />Kategoria<br />
  26. <input type="text" name="kategoria" value="Kategoria" size="26" />
  27. <br />Cena<br />
  28. <input type="text" name="cena" value="Cena" size="26" />
  29. <br />Miniaturka<br />
  30. <input type="file" name="zdjecie" />
  31. <br />Plik<br />
  32. <input type="file" name="plik" />
  33. <br />
  34. <input type="submit" value="Dodaj" />
  35. <input type="reset" value="Wyczy&#x15B;&#x107;" />
  36. </form><br />
  37. <a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  38. }
  39. else
  40. {
  41. $plik_tmp = $_FILES['plik']['tmp_name'];
  42. $plik_nazwa = $_FILES['plik']['name'];
  43. $plik_rozmiar = $_FILES['plik']['size'];
  44. $plik_type = $_FILES['plik']['type'];
  45. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  46. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  47. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  48. $zdjecie_type = $_FILES['zdjecie']['type'];
  49. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  50. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  51. if(is_uploaded_file($plik_tmp))
  52. {
  53. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  54. {
  55. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  56. if(is_uploaded_file($zdjecie_tmp))
  57. {
  58. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  59. {
  60. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  61. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  62. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  63. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  64. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  65. $zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `krotka`, `cena`, `plik`, `zdjecie`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$krotka."', '".$cena."', 'upload/".$plik_nazwa."', 'zdjecie/".$zdjecie_nazwa."', '".$data."')";
  66. $idzapytania = mysql_query($zapytanie);
  67. }
  68. }
  69. }
  70. }
  71. else
  72. {
  73. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  74. }
  75. if($idzapytania)
  76. {
  77. echo '<div style="text-align:center;">Dodano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  78. }
  79. }
  80. mysql_close($connect);
  81. ?>


Nie bardzo wiem jak mam to rozwiązać...
Blame
Po pierwsze to nie wiem po co ci:
  1. if (!isset($_POST['info']) && empty($_POST['info']))

Bo skoro czegoś nie ma to raczej nie opłaca się sprawdzać czy jest puste.
A po drugie to nie wiem dlaczego nie robisz wszystkiego prościej, miliard if'ów i nie wiadomo co do czego. Nie łatwiej jest zrobić tak że w:
  1. if(isset($_POST['info']) && !isset($_POST['kategoria']) && isset($_POST['tytul']) && isset($_POST['krotka']) && isset($_POST['cena']) && isset($_POST['plik']) && isset($_POST['zdjecie'])){
  2. //Ustawiasz to co teraz + obrabiasz plik i dodajesz rekord
  3. }
  4. else
  5. //wyświetlasz formularz

I zastanawia mnie jeszcze to !isset($_POST['kategoria']), na pewno tak ma być(chodzi mi o wykrzyknik)?
adrianozo
Zrobiłem bez wykrzykników to wyrzuca błąd typu:

Notice: Undefined variable: info in a/b/dodajartykul.php on line 65

Linijka 65 to:

  1. $zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `krotka`, `cena`, `plik`, `zdjecie`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$krotka."', '".$cena."', 'upload/".$plik_nazwa."', 'zdjecie/".$zdjecie_nazwa."', '".$data."')";


I dodaje puste rekordy
Blame
Widać nie zrozumiałeś o co mi chodzi. Nie kazałem ci usuwać wykrzykniki tylko scalić wszystko do jednego if i else czyli tak jak już mówiłem dajesz sobie:

  1. if(isset($_POST['info']) && !isset($_POST['kategoria']) && isset($_POST['tytul']) && isset($_POST['krotka']) && isset($_POST['cena']) && isset($_POST['plik']) && isset($_POST['zdjecie']))//wysłany formularz
  2. {
  3. //ustawiasz tak jak przedtem zmienne $info, $kategoria itp. i dodatkowo uploadujesz obrazek, obrabiasz go, to wszystko co wkleiłeś od linijki 40 do 79
  4. }
  5. else{
  6. //wyświetlasz formularz
  7. }

Parę przeróbek i będzie działać.
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.