Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz pocztowy
bartex9
post
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
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
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 (IMG:style_emoticons/default/smile.gif)

W sumie jeszcze jedno pytanie (IMG:style_emoticons/default/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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:57