Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie wykrywa zmiennej po wysłaniu formularza
Forum PHP.pl > Forum > Przedszkole
Lethys
Witam,

Tworzę w swoim skrypcie możliwość modyfikowania opcji dla konkretnie wybranej rzeczy.

Skrypt wygląda tak:

  1. <?php
  2. include "header.php";
  3. include "sesja.php";
  4. $pokaz = mysql_fetch_array(mysql_query("select * from cele where id='$pokaz'"));
  5. $owner = $pokaz[ownerid];
  6.  
  7. // sprawdzenie czy mamy dostęp do celu
  8.  
  9. if ($stat[id] != $owner){
  10. print "<br><br><center><p><h2>Nie możesz wchodzić do ustawień nie swoich celów.</h2></p><p><a href=cele.php>wróć do swoich celów</a></p><center>";
  11. }else{
  12.  
  13. ?>
  14. <body>
  15. <!-- start header -->
  16. <div id="header">
  17. <form id=search method=post action=logout.php?action=logout>
  18. <fieldset>
  19. <legend>Search</legend>
  20. <input id="searchsubmit" type="submit" value="Wyloguj" />
  21. </fieldset>
  22. </form>
  23. <h1><a href="#">Bądź<span>Lepszy</span></a></h1>
  24. </div>
  25. <!-- end header -->
  26. <!-- start page -->
  27. <div id="page">
  28. <!-- start content -->
  29. <div id="content">
  30. <div class="post">
  31. <h2 class="title">Ustawienia dla celu <?php print"$pokaz[nazwa]"; ?></h2>
  32. <p class="meta"><small></small></p>
  33. <div class="entry">
  34.  
  35.  
  36. <form method=post action=ustawienia.php?action=zmiana>
  37. <ul class="form">
  38. <?php
  39. print "<input type=\"hidden\" name=\"owner\" value=\"$owner\" />
  40. <input type=\"hidden\" name=\"id\" value=\"$pokaz[id]\" />";
  41. ?>
  42. <li><label for="prywatne">Czy cel jest prywatny</label>
  43. <select name="prywatne" multiple="multiple" size="2">
  44.  
  45. <?php
  46. if ($pokaz[prywatne] == "TAK"){
  47.  
  48. print"<option selected=\"selected\">Tak</option>
  49. <option>Nie</option>";
  50.  
  51. }else{
  52.  
  53. print "<option>Tak</option>
  54. <option selected=\"selected\">Nie</option>";
  55.  
  56. }
  57.  
  58. ?>
  59. </select></li>
  60. <li><label for="link">Adres celu publicznego</label><input name="nazwa" type="text" maxlength="20" value="<?php print"http://www.badzlepszy.pl/$pokaz[nazwalink]/"; ?>"/></li>
  61.  
  62. <li><label></label><input type="submit" value="Zapisz" class="button" /></li>
  63. </ul>
  64. </form>
  65. <?php
  66.  
  67. if ($action == "zmiana"){
  68.  
  69. include("config.php");
  70.  
  71.  
  72. if (!$problem){
  73.  
  74.  
  75.  
  76. mysql_query("update cele set prywatne='$prywatne' where id=$id") or die(mysql_error());
  77.  
  78.  
  79. echo("<br><p><h2>Zmiany zostały zapisane</h2></p>");
  80.  
  81. }else{
  82. echo("<br><p>Zmiany nie zostały zapisane, popraw błedy.</p>");
  83. }
  84. }
  85.  
  86.  
  87.  
  88.  
  89.  
  90. ?>
  91. </div>
  92. </div>
  93. </div>
  94. <!-- end content -->
  95. <!-- start sidebar -->
  96. <?php
  97. include "sidebar2.php";
  98. ?>
  99. <!-- end sidebar -->
  100. </div>
  101. <!-- end page -->
  102. <?php
  103. include "footer.php";
  104. }
  105. ?>
  106. </body>
  107. </html>


Jak napisałem sprawdzenie czy jest się właścicielem celu:

  1. if ($stat[id] != $owner){
  2.  
  3. ...


to, oczywiście zabezpieczenie działa tylko problem w tym, że po wysłaniu formularza zawsze wywala komunikat zabezpieczenia i nie modyfikuje nam ustawień.

podczas

  1. if ($action == "zmiana"){


nie działa nam zmienna $owner przez co wywala błąd i nic się nie zmienia/działa

ale dlaczego tak się dzieje skoro wysyłam zmienna $owner poprzez formularz?
nospor
1)
Tyle czasu na forum, tyle postów i jeszcze nie wiesz, że należy włączyć wyświetlanie wszystkich błędów?
Jakbyś to zrobił to może byś dostał olśnienia.

2) I co z tego, że owner przesyłasz formem, skoro zaraz na początku masz:
$owner = $pokaz[ownerid];
i nadpisujesz od razu $owner

3) Do forma dobieramy sie przez $_POST

A, zapomniałem, przenosze na przedszkole.
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.