Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz pocztowy
bartex9
post 3.02.2011, 19:32:42
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 8.02.2010

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


Witam,
Znalazłem jakiś skrypt prostego formularza pocztowego. Załóżmy, że mam stronę, a tam jakieś 4 podstrony: A, B, C i D. Na każdej tej stronie mam umieszczony link do formularza (który oczywiście jest na osobnej podstronie). Chciałbym jednak, aby w zależności z której strony kliknę na formularz, automatycznie wpisywał mi się temat wiadomości, np. gdy klikam na link z formularzem z podstrony A, to temat staje mi się przykładowo "Alfa". I analogicznie jak klikam z podstrony C, to staje mi się "Gamma". Oto link do mojego formularza:

http://jurajskawioskarodaki.cba.pl/pop

Próbowałem zrobić coś w stylu:
http://jurajskawioskarodaki.cba.pl/p...php?temat=alfa

Ale nie działało to. Pole temat było puste. Jest to możliwe? Muszę od razu zaznaczyć, że jestem w tych sprawach raczej początkujący. Z góry wielkie dzięki za szybką pomoc.
Pozdrawiam.
Go to the top of the page
+Quote Post
Kshyhoo
post 3.02.2011, 19:41:30
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat
Przepraszamy, strona nie została znaleziona.


Pokaż kod...
Przekaż dane do skryptu w sesji...


--------------------
Go to the top of the page
+Quote Post
bartex9
post 3.02.2011, 20:30:36
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 8.02.2010

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


http://jurajskawioskarodaki.cba.pl/pop/index.php?temat=alfa

Błąd w linku.
Jak pisałem jestem początkujący więc prosiłbym o jakiś w miarę prosty sposób i jego jako takie wytłumaczenie. Pojęcie "Przekaż dane do skryptu w sesji..." nic mi niestety nie mówi...


Kod:
  1. <?php
  2. ********************************************************************************
    ***/
  3.  
  4. include ('ustawienia.php');
  5.  
  6. include('formularz.php');
  7. $formularz = ob_get_contents();
  8.  
  9.  
  10. function wyswietl_forme($komunikat='') {
  11. global $formularz;
  12.  
  13. $do_zmiany = array(
  14. '#komunikat#',
  15. '#strona#',
  16. '#nick#',
  17. '#mail#',
  18. '#temat#',
  19. '#tresc#'
  20. );
  21. $zmien_na = array(
  22. $komunikat,
  23. $_SERVER['REQUEST_URI'],
  24. $_POST['nick'],
  25. $_POST['mail'],
  26. $_POST['temat'],
  27. $_POST['tresc']
  28. );
  29.  
  30. $formularz = str_replace ( $do_zmiany, $zmien_na, $formularz);
  31.  
  32. return $formularz;
  33. }
  34.  
  35.  
  36. function waliduj() {
  37. global $komunikat;
  38. global $valid;
  39.  
  40. if( $valid['nick'] > 0 ) {
  41. if(strlen($_POST['nick']) < $valid['nick'] ){
  42. $walidacja['nick'] = $komunikat['nick'];
  43. }
  44. }
  45.  
  46. if( $valid['mail'] == 1 ) {
  47. if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) {
  48. $walidacja['mail'] = $komunikat['mail'];
  49. }
  50. }
  51.  
  52. if( $valid['temat'] > 0 ) {
  53. if(strlen($_POST['temat']) < $valid['temat'] ){
  54. $walidacja['temat'] = $komunikat['temat'];
  55. }
  56. }
  57.  
  58. if( $valid['tresc'] > 0 ) {
  59. if(strlen($_POST['tresc']) < $valid['tresc'] ){
  60. $walidacja['tresc'] = $komunikat['tresc'];
  61. }
  62. }
  63.  
  64. if(empty($walidacja)) {
  65. return 'true';
  66. }else{
  67. return $walidacja;
  68. }
  69.  
  70. }
  71.  
  72. // Działanie
  73. if (($_SERVER['REQUEST_METHOD'] == 'POST')) {// wejście postem
  74. $walidacja = waliduj();
  75.  
  76. if ($walidacja == 'true'){ //poprawnie wypełniony formularz
  77.  
  78. if(mail($adres_odbiorcy,"=?UTF-8?B?".base64_encode($_POST['temat'])."?=",'<p>Od: <b>'.$_POST['nick'].'</b></p><pre>'.$_POST['tresc'].'</pre>','From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces
  79. <div id="sukces">
  80. <p>'.$komunikat['sukces'].'</p>
  81. </div>
  82. ';
  83. }else{ //bląd serwera
  84. print '
  85. <div id="blad">
  86. <p>'.$komunikat['fail'].'</p>
  87. </div>
  88. ';
  89. print wyswietl_forme();
  90. }
  91.  
  92. }else{
  93. //błędna walidacja
  94. $blad_walidacji = $walidacja;
  95.  
  96. $blad_walidacji = '
  97. <div id="blad">
  98. <p>'.$komunikat['blad'].'</p>
  99. <ul>
  100. ';
  101. foreach ($walidacja as $wpis) {
  102. $blad_walidacji .= '<li>'.$wpis.'</li>';
  103. }
  104. $blad_walidacji .= '
  105. </ul>
  106. </div>
  107. ';
  108.  
  109. print wyswietl_forme($blad_walidacji);
  110. }
  111.  
  112. }else{
  113. // nowe wejście
  114. print wyswietl_forme();
  115. }
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122. ?>


Poradziłem już sobie z tym. Wystarczyło zmienić w 28 linijce POST na GET i działa metoda z dodaniem do adresu "?temat=blebleble".
Mimo wszystko dzięki za pomoc. Temat do zamknięcie smile.gif

W sumie jeszcze jedno pytanie smile.gif
Czy da się tą samą metodą "ściągnąć" do formularza adres poprzedniej strony? Poprzednia strona jest generowana przez PHP. Ma ktoś pomysł?
Go to the top of the page
+Quote Post
prowseed
post 4.02.2011, 03:03:48
Post #4





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

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


Sam już sobie odpowiedziałeś na pytanie:

  1. http://jurajskawioskarodaki.cba.pl/pop/index.php?temat=gamma&strona=3

I potem php

  1. //w tym przypadku $strona = 3;
  2. if($strona == 1){
  3. echo "Przybyles ze strony pierwszej";
  4. } elseif($strona == 3){
  5. echo "www.strona3.pl";
  6. }else {
  7. echo "Strona nieznana";
  8. }



Jeżeli chcesz adres pobierać dynamicznie, to albo HTTP_REFERRER albo przechowuj adres w sesji czy coś takiego.

Ten post edytował prowseed 4.02.2011, 03:05:48


--------------------
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 Wersja Lo-Fi Aktualny czas: 23.06.2025 - 09:25