Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pusty $_POST, $_GET działa bez zarzutu
Forum PHP.pl > Forum > PHP
Statozor
Witam.
Mam taki kawałek kodu, który ma za zadanie wyświetlać formularz do edycji newsa/arta.
  1. <?php
  2. if($_GET['type'] === 'news'){
  3. $subtitles=array('Tytuł newsa', 'newsTitle', 'Opis newsa', 'newsAbout', 'Treść newsa', 'newsContent', 'Edytuj newsa');
  4. $sql = 'SELECT * FROM newsy WHERE newsId="'.$_GET['id'].'"';
  5. if ($_SESSION['level'] < 2) $sql .= ' AND newsAutor = '.$_SESSION['nazwa'];
  6. }
  7. elseif($_GET['type'] === 'art') { 
  8.  $subtitles=array('Tytuł artykułu', 'artTitle', 'Opis artykułu', 'artAbout', 'Treść artykułu', 'artContent', 'Edytuj artykuł');
  9.  $sql = 'SELECT * FROM arty WHERE artId='.$_GET['id'];
  10. if ($_SESSION['level'] < 2) $sql .= ' AND artAutor = '.$_SESSION['nazwa'];
  11. }
  12. //echo $sql;
  13. $query = mysql_query($sql); //or die (mysql_error());
  14. $row = mysql_fetch_array($query);
  15. $type = $_GET['type'];
  16.  
  17.  
  18. echo <<<HDR
  19. <!--action="trans_txt.php?type={$_GET['type']}&action=edit"-->
  20. <form method="POST" action="show_post.php" enctype="text/plain">
  21. <table>
  22. <tr>
  23. <td align="center" colspan="2">{$subtitles[0]} (max 100 znaków)</td>
  24. <tr>
  25. <td align='center' colspan="2">
  26. <input type="text" name="{$subtitles[1]}" value="{$row[$type.'Title']}" lenght="100"/>  
  27. <tr>
  28. <td align="center" colspan="2">{$subtitles[2]} (max 700 znaków)</td>
  29. <tr>
  30. <td align='center' colspan="2">
  31. <textarea cols="90" rows="4" wrap="VIRTUAL" name="{$subtitles[3]}" lenght="700">
  32. {$row[$type.'About']}
  33. </textarea>
  34. <tr>
  35. <td align='center' colspan="2">
  36. {$subtitles[4]}
  37. <tr>
  38. <td align='center' colspan="2">
  39. <textarea cols="90" rows="7" wrap="VIRTUAL" name="{$subtitles[5]}">
  40. {$row[$type.'Content']}
  41. </textarea>
  42. <tr>
  43. HDR;
  44. if($_GET['type'] === 'news'):
  45. ?>
  46. <td>Wpisz adres ikonki newsa :
  47. <td><input type="text" name="newsIco" value="<?php echo $row['newsIco']; ?>" />
  48. <tr>
  49. <td>Wpisz adres galerii newsa :
  50. <td><input type="text" name="newsGallery" value="<?php echo $row['newsGallery']; ?>" />
  51. <tr>
  52. <?php
  53. endif;
  54. if($_GET['type'] === 'art'):
  55. ?>
  56. <td>Kategoria artykułu:
  57. <td><select height="1" name='artCat'>
  58. <option value="Fotografia">Fotografia</option>
  59. </select>
  60. <tr>
  61. <?php
  62. endif;
  63. echo <<<HDR
  64. <td align='center' colspan='2'><input type="submit" value="{$subtitles[6]}" />
  65. </table>
  66. <input type="hidden" value="{$_GET['id']}" name="Id" />
  67. </form>
  68. HDR;
  69. ?>

Niestety nie wiem czemu, po odebraniu w skrypcie transakcji wszystkie dane z tablicy $_POST znikają, natomiast jeśli ustawię metodę na GET wszystko jest na swoim miejscu. Ktoś ma jakiś pomysł co może być nie tak ?

$row zawiera następujące nazwy kluczy:
Array
(
[0] => 1
[newsId] => 1
[1] => Krzysiek
[newsAutor] => Krzysiek
[2] =>
[newsIco] =>
[3] => Nowy portal o zmianach w Tarnowie
[newsAbout] => Nowy portal o zmianach w Tarnowie
[4] => Powsta? nowy portal o Tarnowie
[newsContent] => Powsta? nowy portal o Tarnowie
[5] => 2007-01-18 21:15
[newsData] => 2007-01-18 21:15
[6] => 1
[newsOk] => 1
[7] => Nowy portal !
[newsTitle] => Nowy portal !
[8] =>
[newsGallery] =>
)
maryaan
skasuj enctype="text/plain"
Statozor
Dalej lipa, $_POST jest puściutki
maryaan
jesli sprawdzasz na tym pojedynczym pliku to jeszcze skopiuj linie $subtitles=array(.... przed if-a i zamalpuj operacje na bazie

//edit
wlasciwie prostszym sposobem jest przekazanie ?type=news i dziala jak ma dzialac (po wywaleniu enctype)
Statozor
Działa, dzięki smile.gif
Możesz wytłumaczyć czemu nie działało przedtem ?
maryaan
z enctype nie mam pojecia a z tym drugim to po prostu wysylane "zmienne" nie maja nazw jesli nie jest przekazana do skryptu zmienna type o wartosciach 'news' albo 'art', podejrzyj sobie zrodlo strony w kazdym z przypadkow to zakumasz ocb
Statozor
Wiem ze ma być przekazana $type. Na tym własnie polega działanie tej strony smile.gif Problem był taki, że nawet jak była przekazywana to była lipa 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.