Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Action="?" - formularz
Forum PHP.pl > Forum > Przedszkole
ar4
Witam,
mam taki formularz:

  1. <?php
  2. $dat=date('d.m.Y');
  3. $godz=date('H:i:s');
  4.  
  5. $wyslana=not;
  6. if (count($_POST))
  7. {
  8. ////////// USTAWIENIA //////////
  9. $email = 'aaa@aaa.pl'; // Adres e-mail adresata
  10. $subject = 'Title'." " . $dat ." | " . $godz; // Temat listu
  11. $message = 'komu'; // Komunikat
  12. $error = 'error'; // Komunikat błędu
  13. $charset = 'utf-8'; // Strona kodowa
  14. //////////////////////////////
  15.  
  16. $head =
  17. "MIME-Version: 1.0\r\n" .
  18. 'From:'.$_POST['emial']."\r\n".
  19. "Content-Type: text/plain; charset=$charset\r\n" .
  20. "Content-Transfer-Encoding: 8bit";
  21. $body = '';
  22. foreach ($_POST as $name => $value)
  23. {
  24. if (is_array($value))
  25. {
  26. for ($i = 0; $i < count($value); $i++)
  27. {
  28. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  29. }
  30. }
  31. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  32. }
  33. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  34.  
  35. $wyslana=ok;
  36. if ($wyslana==ok){header("location:https://doemna.pl");}
  37. }
  38. else
  39. {
  40. ?>
  41.  
  42. <div style="background: #fffcde; padding: 5px 5px; border: 4px dotted #AD8547; width: 640px; margin: 650px auto 50px; text-align:center;">
  43. <div class="box">
  44. <form action="?" method="post">
  45.  
  46.  
  47.  
  48. <label><span><input type="checkbox" name="zaznacz" value="0" class="ck" /></span> Tak, chcę Fakturę VAT oraz Listę Mocnych Profili.</label>
  49. <label><span>Imię:</span> <input type="text" name="imie" class="wpis" required="required" /></label>
  50. <label><span>Nazwisko:</span> <input type="text" name="nazwisko" class="wpis" required="required" /></label>
  51. <label><span>Nazwa firmy:</span> <input type="text" name="firma" class="wpis" /></label>
  52. <label><span>Ulica i nr.:</span> <input type="text" name="ulica" class="wpis" /></label>
  53. <label><span>Kod i miasto:</span> <input type="text" name="miasto" class="wpis" /></label>
  54. <label><span>NIP:</span> <input type="text" name="nip" class="wpis" /></label>
  55. <label><span>E-mail:</span> <input type="text" name="emial" class="wpis" required="required" /></label>
  56. <label><span>Dodatkowe informacje:</span><textarea name="tresc" class="wiadomosc" cols="20" rows="10"></textarea></label>
  57. <label><input type="submit" class="button" value="Wyślij!" /></label>
  58.  
  59.  
  60. </form>
  61. </div>
  62. </div>
  63. <?php
  64. }
  65. ?>


Mam problem. Dlaczego po wysłaniu formularza nie przenosi mnie na domenę określoną w: if ($wyslana==ok){header("location:https://doemna.pl");}
Po wysłaniu wiadomości przenosi mnie na domena.pl/?
Na innej domenie formularz mam na podstronie i tam wszystko działa. tutaj formularz mam na stronie głównej i już nie działa.
Czy możecie pomóc?
nospor
Wlacz wyswietlanie wszystkich bledow, tu masz napisane jak
Temat: Jak poprawnie zada pytanie
a zobaczysz zapewne bardzo czesto spotykany blad
mar1aczi
Znajdź różnice między tym, to zapewne sam dopisywałeś
Kod
$wyslana=not;

a między tym, co miałeś gotowe
Kod
$email = 'aaa@aaa.pl';


Podobnie w linii 35 i 36.
ar4
Próbowałem chyba na wszystkie sposoby to rozwiązać ale nie jestem w stanie sobie z tym poradzić.
$wyslana - wyświetla, że nie jest zdefiniowana przed wysyłką jaki po wysyłce. Wiadomości do mnie docierają, ale nie przekierowuje mnie na nową domenę po wysłaniu wiadomości.

$wyslana=not; - to miało służyć sprawdzaniu czy wiadomość została wysłana i jak została to ma wywołać if który ma przekierowanie na nową domenę.

Jakieś konkretniejsze propozycje rozwiązania mojego problemu?
Jestem wdzięczny za każdą odpowiedź.
nospor
Miales włączyć wyświetlanie wszystkich błędów... zrobiles to? Zobaczyles jakie bledy dostajesz na ekranie? Czy masz tam blad w stylu: headers already sent?


Zas co do:
$wyslana=not;
Ma byc $wyslana='not';
no chyba ze NOT to stala... Masz taką stałą? Analogicznie z OK
ar4
Włączyłem wyświetlanie błędów i zwraca mi błąd, że stała nie jest określona.
Dodanie '' nic nie pomogło...
Jeszcze jakieś pomysły?
nospor
Cytat
Dodanie '' nic nie pomogło...
Widac źle to poprawiles.... albo poprawiles nie wszystko....w komunikacie bledu wyraznie jest podana linijka i plik, ktorej ten blad dotyczy

Poza tym pytalem sie Ciebie jeszcze o cos:
"Czy masz tam blad w stylu: headers already sent?"
ar4
Jak odpalam stronę to nie zawraca żadnych błędów.
Po wysłaniu wiadomości otrzymuję takie informacje:
Cytat
Cannot modify header information - headers already sent by (output started at /www/www/www/domena.pl/index.php:143) in /www/www/www/domena.pl/index.php on line 178

Co do dodania znaków to teraz wygląda kod tak:
  1. <?php
  2. $dat=date('d.m.Y');
  3. $godz=date('H:i:s');
  4.  
  5. $wyslana='not';
  6. if (count($_POST))
  7. {
  8. ////////// USTAWIENIA //////////
  9. $email = 'aa@aa.pl'; // Adres e-mail adresata
  10. $subject = 'title'." " . $dat ." | " . $godz; // Temat listu
  11. $message = 'Dziękujemy za wysłanie formularza'; // Komunikat
  12. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
  13. $charset = 'utf-8'; // Strona kodowa
  14. //////////////////////////////
  15.  
  16. $head =
  17. "MIME-Version: 1.0\r\n" .
  18. 'From:'.$_POST['emial']."\r\n".
  19. "Content-Type: text/plain; charset=$charset\r\n" .
  20. "Content-Transfer-Encoding: 8bit";
  21. $body = '';
  22. foreach ($_POST as $name => $value)
  23. {
  24. if (is_array($value))
  25. {
  26. for ($i = 0; $i < count($value); $i++)
  27. {
  28. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  29. }
  30. }
  31. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  32. }
  33. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  34.  
  35. $wyslana='ok';
  36. if ($wyslana=='ok'){header("location:https://domena.pl");}
  37. }
  38. else
  39. {
  40. ?>
  41.  
  42. <div style="background: #fffcde; padding: 5px 5px; border: 4px dotted #AD8547; width: 640px; margin: 650px auto 50px; text-align:center;">
  43. <div class="box">
  44. <form action="?" method="post">
  45.  
  46.  
  47.  
  48. <label><span><input type="checkbox" name="zaznacz" value="0" class="ck" /></span> Tak, chcę Fakturę VAT oraz Listę Mocnych Profili.</label>
  49. <label><span>Imię:</span> <input type="text" name="imie" class="wpis" required="required" /></label>
  50. <label><span>Nazwisko:</span> <input type="text" name="nazwisko" class="wpis" required="required" /></label>
  51. <label><span>Nazwa firmy:</span> <input type="text" name="firma" class="wpis" /></label>
  52. <label><span>Ulica i nr.:</span> <input type="text" name="ulica" class="wpis" /></label>
  53. <label><span>Kod i miasto:</span> <input type="text" name="miasto" class="wpis" /></label>
  54. <label><span>NIP:</span> <input type="text" name="nip" class="wpis" /></label>
  55. <label><span>E-mail:</span> <input type="text" name="emial" class="wpis" required="required" /></label>
  56. <label><span>Dodatkowe informacje:</span><textarea name="tresc" class="wiadomosc" cols="20" rows="10"></textarea></label>
  57. <label><input type="submit" class="button" value="SEND" /></label>
  58.  
  59.  
  60. </form>
  61. </div>
  62. </div>
  63. <?php
  64. }
  65. ?>


Wiadomości wysyłają się, ale nie działa przekierowanie na nowy adres www.
nospor
I naprawde musialem az tyle razy prosic, by dowiedziec sie, ze jednak masz blad headers already sent jak mowilem na poczatku?

No ale do rzeczy:
problem poruszany petryliard razy. Uzyj wyszukiwarki forum czy tez google. Szukaj pod haslem
headers already sent
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.