Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Problem -$_POST puste ?!?
B16
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  5. <title>Panel Admina</title>
  6. </head>
  7. <body>
  8. <?php
  9. if ($_SESSION['authuser'] !=1) {
  10. echo "Przepraszamy,ale nie masz uprawnien";
  11. exit();
  12. }
  13. ?>
  14. <form action="edytuj.php5" method="POST" name="edit">
  15. <fieldset>
  16. <p><label>Wybierz dział jaki chcesz edytować:</label><br />
  17. <select name="dzial">
  18. <option value="0">Wybierz dział</option>
  19. <option value="1">News</option>
  20. <option value="2">Skład</option>
  21. <option value="3">Regulamin</option>
  22. <option value="4">CW</option>
  23. <option value="5">Download</option>
  24. <option value="6">Kontakt</option>
  25. </select>
  26. <input type="submit" class="ok" value="Wybierz" /></p>
  27. </fieldset>
  28. </form>
  29. <?php
  30. //extract($_POST);
  31. switch ($_POST['dzial']) {
  32.  case 0:
  33. $dzial = "error";
  34. break;
  35.  case 1:
  36. $dzial = "news.txt";
  37. break;
  38.  case 2:
  39. $dzial = "sklad.txt";
  40. break;
  41.  case 3:
  42. $dzial = "regulamin.txt";
  43. break;
  44.  case 4:
  45. $dzial = "cw.txt";
  46. break;
  47.  case 5:
  48. $dzial = "download.txt";
  49. break;
  50.  case 6:
  51. $dzial = "kontakt.txt";
  52. break;
  53. }
  54. //funkcja zapisujšca plik
  55.  
  56.  
  57.  
  58. if($dzial == "error"){
  59.  //błšd
  60. echo "<h4 style=\"color:red;\">Wybierz dział z listy !!!</h4>";
  61. }
  62. else
  63. {
  64. define(PLIK, $dzial);
  65. //wczytanie zawartoœci pliku do zmiennej $zawartosc
  66. $zawartosc = file_get_contents(PLIK);
  67.  
  68. //pokazanie formularza edycji
  69. echo "<h3>Zawartosc pliku $dzial:</h3>";
  70. ?>
  71. <form action="edytuj.php5" name="edit" method="post">
  72. <textarea name="tresc" rows="15" cols="50"><?php echo $zawartosc; ?></textarea>
  73. <input type="submit" value="Zapisz">
  74. </form>
  75. <?php
  76. function zapisz($a, $b) 
  77. {
  78. $plik = fopen($a,"r+");
  79. fputs($plik,$b);
  80. fclose($plik); 
  81. }
  82. $tresc = $_POST['tresc'];
  83. zapisz($dzial, $tresc);
  84. }
  85. ?>
  86. </body>
  87. </html>
mam taki skrypt, ale niestety po kliknięciu "Zapisz" $_POST['tresc'] oraz zmienna $tresc jest pusta i w pliku nie następują żadne zmiany (IMG:http://forum.ovh.pl/images/smilies/frown.gif) co mam zrobić aby szło edytować zawartość pliku $dzial i zapisać zmiany spowrotem w tym pliku ?
Powód edycji: zmieniłem temat i dodałem (cysiaczek)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Snowak
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Może tablica $_POST nie istnieje i masz to w $HTTP_POST_VARS

Odpal sobie zaraz po "zapisz($dzial, $tresc);" ten kod:
print_r($_POST);
Będziesz wiedział czy cokolwiek doszło do serwera.

A tak nawiasem mówiąc, to radziłbym używać rozszerzenie php zamiast php5.

[edit]
Taka drobna nieścisłość którą zauważyłem - ta strona jest wyświetlana tylko wtedy kiedy przez POST masz przesłany parametr dział... Dorzuć tą linijkę zaraz po definicji formularza i powinno wszystko chodzić:
<input type="hidden" name="dzial" value ="<?php echo($_POST['dzial']); ?>" />

Ten post edytował Snowak 13.12.2007, 15:55:01
Go to the top of the page
+Quote Post
B16
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


zmieniłem ale niestety nadal to samo (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Przenoszę na Przedszkole
Go to the top of the page
+Quote Post
B16
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


pomoże mi ktoś ? to pilne
Go to the top of the page
+Quote Post
SirZooro
post
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

Ostrzeżenie: (0%)
-----


Po wysłaniu formularza wywołaj sobie funkcję phpinfo i zobacz gdzie trafiły dane z formularza, a potem odpowiednio dostosuj skrypt.
Go to the top of the page
+Quote Post
B16
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


w phpinfo() jest tylko
Kod
_POST["dzial"]    1
a nie ma
Kod
_POST["tresc"]    1
:/
wie ktoś dlaczego ?

w takim razie skoro nie ma $_POST['tresc'] to co mam zrobić aby przypisać zmiennej $tresc zawartość textarea ?
Go to the top of the page
+Quote Post
nevt
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


no przecież w kodzie strony masz 2 osobne formularze, w jednym masz pole 'dzial' a w drugim masz pole 'tresc' - po wysłaniu każdego z nich do skryptu przechodzi tylko jedno z tych dwu pól - to oczywiste. jeżeli chcesz przekazać jednocześnie oba pola (dzial i tresc), musisz je umieści w tym samym formularzu...
Go to the top of the page
+Quote Post
B16
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


heh, dzięki za informacje (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) zdołałem sobie poradzić inaczej
oto skrypt jakby ktoś chciał przeanalizować zmiany
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-Language" content="pl" />
<meta name="robots" content="index,follow" />
<meta HTTP-EQUIV="reply-to" CONTENT="b3niup@o2.pl" />
<title>Panel Admina</title>
</head>
<body>
<?php
session_start();
if ($_SESSION['authuser'] !=1) {
echo "Przepraszamy,ale nie masz uprawnien";
exit();
}
?>
<form action="edytuj.php" method="POST" name="edit">
<fieldset>
<p><label>Wybierz dział jaki chcesz edytować:</label><br />
<select name="dzial">
<option value="0">Wybierz dział</option>
<option value="1">News</option>
<option value="2">Skład</option>
<option value="3">Regulamin</option>
<option value="4">CW</option>
<option value="5">Download</option>
<option value="6">Kontakt</option>
</select>
<input type="submit" class="ok" value="Wybierz" /></p>
</fieldset>
</form>
<?php
//extract($_POST);
switch ($_POST['dzial']) {
case 0:
  $dzial = "error";
  break;
case 1:
  $dzial = "news.txt";
  break;
case 2:
  $dzial = "sklad.txt";
  break;
case 3:
  $dzial = "regulamin.txt";
  break;
case 4:
  $dzial = "cw.txt";
  break;
case 5:
  $dzial = "download.txt";
  break;
case 6:
  $dzial = "kontakt.txt";
  break;
  }
define(PLIK, $dzial);

if($dzial == "error"){
//błšd
echo "<h4 style=\"color:red;\">Wybierz dział z listy (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !</h4>";
}
else
{
//wczytanie zawartoœci pliku do zmiennej $zawartosc
$zawartosc = file_get_contents(PLIK);

//pokazanie formularza edycji
echo "<h3>Zawartosc pliku $dzial:</h3>";
?>
<form action="edytuj.php" method="POST" name="zawartosc">
<input type="hidden" name="dzial" value ="<?php echo($_POST['dzial']); ?>" />
<textarea rows="15" cols="50" name="tresc"><?php echo $zawartosc; ?></textarea>
<input type="submit" value="Zapisz" />
</form>
<?php
//funkcja zapisujšca plik
function zapisz($a, $b)
{
$plik = fopen($a,"w+");
fputs($plik,$b);
fclose($plik);
$dzial = "error";
return $dzial;
}
zapisz(PLIK, $_POST['tresc']);
}
?>
<br />
<br />
<table width="50%">
<tr><td><font color="#FF0000">Uwaga (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !</font><br />
Jak już wybrałeś dział, w którym chcesz coś zmienić to aby nie utracić wszystkich wpisów <u>MUSISZ</u> kliknąć "Zapisz" w innym wypadku stracisz zawartość całego działu !</td></tr>
<tr><td><u>Opis:</u><br />
<*br /> ---> znak nowej linii<br />
<*strong> ---> znak <b>POGRUBIENIA</b><br />
<*u> ---> znak <u>PODKREŚLENIA</u><br />
<font size="-1">Wszystkie te znaki są bez gwiazdki (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !</font>
</td></tr>

</body>
</html>


Pozdro !
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.12.2025 - 13:31