Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]brak tablicy $_POST po przesłaniu formularza
siutek
post
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

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


Witam,
ostatnio na swojej stronie pobawilem się nice url's autorstwa nospora.
niestety po zmianach przestała mi działać tablica POST, wiem że to dziwnie brzmi tongue.gif ale tak jest.

w jednym z dzialow znajduje sie formularz, ktory jest wysylany metodą POST pod adres id,nazwa_dzalu.html Oczywiscie link ten jest przechwytywany przez php, i tam w klasie nospora przerabiany na tablice GET o zmiennych np $_GET["id"]=numerdzialu, oraz $_GET["name"]=nazwadzialu. Dekodowanie działa, jednak z jakiegoś względu tablica POST przestala byc przekazywana. umiescilem print_r($_POST); juz w drugiej linijce pliku index.php, zaraz za znacznikiem <?

jednak wynikiem jest pusta tablica Array()

co ciekawe odświeżenie wysłania formularza powinno wygenerować komunikat, że "Aby wyświetlić tę stronę, przegladarka musi ponownie przeslac dane, ktore spowodują powtorzenie zadan wykonanych wczesniej" - tak sie dzieje normalnie, a w moim przypadku nie mam tego komunikatu, tak jakby dane z formularza, po kliknieciu przycisku send nigdy nie zostaly wyslane...

nie mam bladego pojecia co moze byc przyczyna, nigdzie w kodzie nie mam przekierowania typu header(); wiec odrzucam mozliwosc
przeniesienia na inna podstrone gdzie juz POST bedzie z definicji pusty.

nawet firebug nie pokazuje mi zadnej operacji odwolującej sie do tablicy POST podczas wysylania formularza

Ten post edytował siutek 13.09.2012, 21:42:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
stefan33
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 4
Dołączył: 22.07.2012

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


Moze jakis kod?
Go to the top of the page
+Quote Post
siutek
post
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

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


index.php gdzie tak naprawde wszystko sie dzieje...
  1. <?php
  2. if (file_exists("./inc/config.php")) include_once "./inc/config.php"; else echo "<script> alert(\"Pojawił się problem z bazą danych.\"); </script>";
  3. include_once "./inc/niceUrl.php";
  4. include_once "./class/NUrl.class.php";
  5. $niceUrl = new NUrl();
  6.  
  7. $menuArr2 = menuTree();
  8. if(is_array($menuArr2)) {
  9. foreach ($menuArr2 as $mA) {
  10. $menuTop .= "<a href=\"".$niceUrl->Url("page=".$mA["id"]."&name=".strtolower(str_replace(" ","_",str_replace("&","and",$mA["name"]))))."\">".strtoupper($mA["name"])."</a>";
  11. $menuBottom .= "<a href=\"".$niceUrl->Url("page=".$mA["id"]."&name=".strtolower(str_replace(" ","_",str_replace("&","and",$mA["name"]))))."\">".$mA["name"]."</a> | ";
  12. }
  13. $menuBottom = substr($menuBottom,0,-3);
  14. }
  15.  
  16. $message = "";
  17. if($_GET["name"]=="contact" && $_POST["action"]=="send") {
  18. include("./class/class.phpmailer.php");
  19. include("./class/class.smtp.php");
  20.  
  21. $contentMail = "Imię i nazwisko (lub nazwa): <b>".$_POST["name"]."</b><br>
  22. Telefon: <b>".$_POST["phone"]."</b><br>
  23. Adres email: <b>".$_POST["mail"]."</b><br><br>
  24. Treść zapytania:<br><b>".$_POST["question"]."</b>";
  25.  
  26. $mail = new PHPMailer();
  27. $mail->IsSMTP();
  28. $mail->SMTPAuth = true; // enable smtp authentication
  29. $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
  30. $mail->Host = "serwer.com"; // sets gmail as the smtp server
  31. $mail->Port = 465; // set the smtp port
  32. $mail->Username = "*****@**********"; // gmail username
  33. $mail->Password = "******"; // gmail password
  34. $mail->From = "*****@**********";
  35. $mail->FromName = "moja stronka";
  36. $mail->Subject = "Informacja ze strony mojas_tronka";
  37. $mail->WordWrap = 50; // set word wrap
  38. $mail->MsgHTML($contentMail);
  39. $mail->AddAddress("*****@**********","Nie wiem");
  40. $mail->IsHTML(true); // send as html
  41. if ($mail->Send()) {
  42. $message = "<div class=\"d5MessageOK\">Wysłano wiadomość</div>";
  43. } else {
  44. $message = "<div class=\"d5MessageERROR\">Wystąpił problem z wysłaniem wiadomości.</div>";
  45. }
  46. } elseif($_GET["name"]=="testimonials" && $_POST["action"]=="save") {
  47. if(strlen($_POST["name"]) && strlen($_POST["content"]) ) {
  48. $nowaOpinia = $_POST;
  49. $nowaOpinia["add_date"] = date("U");
  50. queryInsert("testimonials",$nowaOpinia);
  51.  
  52. include("./class/class.phpmailer.php");
  53. include("./class/class.smtp.php");
  54.  
  55. $contentMail = "Na stronie pojawiła się nowa opinia. Wpis czeka na akceptację lub odrzucenie w panelu administracyjnym.<br><br>
  56. Imię i nazwisko (lub nazwa): <b>".$_POST["name"]."</b><br>
  57. Treść:<br><b>".$_POST["content"]."</b><br><br>
  58. Aby przejść do panelu wejdź tu: <a href=\"http://www.stronka.xyz\">www.stronka.xyz</a>";
  59.  
  60. $mail = new PHPMailer();
  61. $mail->IsSMTP();
  62. $mail->SMTPAuth = true; // enable smtp authentication
  63. $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
  64. $mail->Host = "serwer.com"; // sets gmail as the smtp server
  65. $mail->Port = 465; // set the smtp port
  66. $mail->Username = "*****@**********"; // gmail username
  67. $mail->Password = "******"; // gmail password
  68. $mail->From = "*****@**********";
  69. $mail->FromName = "moja stronka";
  70. $mail->Subject = "Informacja ze strony mojas_tronka";
  71. $mail->WordWrap = 50; // set word wrap
  72. $mail->MsgHTML($contentMail);
  73. $mail->AddAddress("*****@**********","Nie wiem");
  74. $mail->IsHTML(true); // send as html
  75.  
  76. if ($mail->Send()) {
  77. $message = "<div class=\"d5MessageOK\">Wysłano opinię. W trosce o jakość wypowiedzi wpis musi jeszcze zostać zatwierdzony przez administrację, może to potrwać kilka dni.</div>";
  78. } else {
  79. $message = "<div class=\"d5MessageERROR\">Wystąpił problem z wysłaniem opinii.</div>";
  80. }
  81. }}
  82.  
  83. $losowaOpinia = getRecordRand("testimonials",array("act"=>1));
  84. if(is_array($losowaOpinia)) {
  85. $roundTest = $losowaOpinia[0]["content"]."<br>
  86. <span class=\"dTsign\">".$losowaOpinia[0]["name"]."</span>";
  87. } else {
  88. $roundTest = "&nbsp;";
  89. }
  90.  
  91. if(!$_GET["page"]) $_GET["page"]=4;
  92. $stronaArr = getRecord("content",$_GET["page"]);
  93.  
  94. $tplArr = getRecord("templates",$stronaArr["template"]);
  95.  
  96. $testimonials="";
  97. if($stronaArr["template"]==16) {
  98. $listaOpinii = getList("testimonials",array("act"=>1));
  99.  
  100. if(is_array($listaOpinii)){
  101.  
  102. foreach($listaOpinii as $lO){
  103. $wiersz .= "<div style=\"padding-top:8px;\">
  104. <div class=\"dTcontent\">".$lO["content"]."</div>
  105. <div class=\"dTest1\">
  106. <div class=\"dTa\">Add Date: <span>".date("d-m-Y H:i",$lO["add_date"])."</span></div>
  107. <div class=\"dTb\">Name: <span>".$lO["name"]."</span></div>
  108. <div style=\"clear:both;\"></div>
  109. </div>
  110. </div>";
  111. }
  112. $testimonials = "<div class=\"dTest\">".$wiersz."</div>";
  113. }
  114. }
  115. $contactFormAction = $niceUrl->Url("page=".$_GET["page"]."&name=".strtolower(str_replace(" ","_",str_replace("&","and",$_GET["name"]))));
  116. $testimonialsFormAction = $niceUrl->Url("page=".$_GET["page"]."&action=save&name=".strtolower(str_replace(" ","_",str_replace("&","and",$_GET["name"]))));
  117.  
  118. $html = file_get_contents("./indexx.html");
  119. $tpl = file_get_contents("./tpl/".$tplArr["file"].".html");
  120.  
  121. $co = Array("{menuTop}","{menuBottom}","{tpl}","{content}","{page}","{message}","{testimonials}","{roundTest}","{contactFormAction}","{testimonialsFormAction}");
  122. $naCo = Array($menuTop,$menuBottom,$tpl,$stronaArr["content"],$_GET["page"],$message,$testimonials,$roundTest,$contactFormAction,$testimonialsFormAction);
  123. $html = str_replace($co,$naCo,$html);
  124.  
  125. echo $html;
  126. ?>


sam template po wugenerowaniu przez serwer wyglada tak:
  1. <form action="36,contact.html" method="POST">
  2. <input type="hidden" name="action" value="send">
  3. <div class="d5Contact">
  4. <div class="d5Cline">
  5. <div class="d5Cl1">Name:</div>
  6. <div class="d5Cl2"><input type="text" name="name"></div>
  7. </div>
  8. <div class="d5Cline">
  9. <div class="d5Cl1">Phone:</div>
  10. <div class="d5Cl2"><input type="text" name="phone"></div>
  11. </div>
  12. <div class="d5Cline">
  13. <div class="d5Cl1">E-mail:</div>
  14. <div class="d5Cl2"><input type="text" name="mail"></div>
  15. </div>
  16. <div class="d5Cline" style="height:120px;">
  17. <div class="d5Cl3">Question:</div>
  18. <div class="d5Cl4"><textarea name="question"></textarea></div>
  19. </div>
  20. <div class="d5Cline">
  21. <input type="submit" value="Send" style="margin-left:300px;">
  22. </div>
  23. </div>
  24. </form>



Ten post edytował siutek 13.09.2012, 22:19:20
Go to the top of the page
+Quote Post
vermis
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Cytat(siutek @ 13.09.2012, 22:39:58 ) *
co ciekawe odświeżenie wysłania formularza powinno wygenerować komunikat, że "Aby wyświetlić tę stronę, przegladarka musi ponownie przeslac dane, ktore spowodują powtorzenie zadan wykonanych wczesniej" - tak sie dzieje normalnie, a w moim przypadku nie mam tego komunikatu, tak jakby dane z formularza, po kliknieciu przycisku send nigdy nie zostaly wyslane...


Dzieje się tak, bo nie masz post'a. Prawdopodobnie robisz przekierowanie np. header("Location: ..."), które gubi posta.


--------------------
Go to the top of the page
+Quote Post
siutek
post
Post #5





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

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


Cytat(vermis @ 13.09.2012, 23:17:53 ) *
Dzieje się tak, bo nie masz post'a. Prawdopodobnie robisz przekierowanie np. header("Location: ..."), które gubi posta.


no wlasnie rzecz w tym, że NIGDZIE nie mam header, pisalem o tym w pierwszym poscie, ta opcja tez mi przyszla do glowy...


edit:
a teraz patent dnia!! wszystko działa!! co zrobilem? no wlasnie... NIE WIEM! zaczalem poprawiac formatowanie zgodnie ze standardami w3c, tak aby strona przeszla walidację. nie mialem jakichs rażących bledow najczesciej to brak prawidlowego zamkniecia tagu, zamiast <br /> mialem <br>, brakowalo kilku altow na obrazkach. i tylko to... wiec nie wiem co sprawilo ze wszystko wrocilo do normy... sad.gif

Ten post edytował siutek 13.09.2012, 23:09:45
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 19:46