Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Problem z formularzem
damian0021
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 7.05.2010

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


Witam,

słuchajcie zaczynam dopiero naukę PHP - może dla Was to banalne ale dla mnie trudne - także proszę o pomoc wink.gif

Zatem mam formularz na swojej stronie i plik PHP wygląda następująco :

  1. <?
  2. $headers .= "Content-type: text/html; charset=utf-8\";
  3. $imie = $_POST['imie'];
  4. $email = $_POST['email'];
  5. $telefon = $_POST['telefon'];
  6. $data = $_POST['data'];
  7. $godzina = $_POST['godzina'];
  8. $toaddress = "jakismail";
  9. $subject = "Nowa wiadomość";
  10. $all=
  11. "<strong>Dostałeś nowe informacje od klienta :</strong></br></br></br>
  12.  
  13. <strong>Nazwa:</strong> ".$imie."</br>
  14.  
  15. <strong>E-Mail:</strong> ".$email."</br>
  16.  
  17. <strong>Telefon:</strong> ".$telefon."</br>
  18.  
  19. <strong>Data:</strong> ".$data."</br>
  20.  
  21. <strong>Godzina:</strong> ".$godzina."</br>
  22. ";
  23. mail("$toaddress", "$subject", "$all","$headers");
  24. ?>


HTML myślę, że nie muszę pokazywać. Maile się wysyłają wszystko jest pięknie tak jak powinno ale ...

Wysyłam to za pomocą POST'a :

  1. <form name="myForm" method="POST" action="mail.php">


I teraz - w momencie gdy użytkownik kliknie w Wyślij - wszytsko ładnie się wysyła - mail dociera. Plik mail.php jest w szablonie strony czyli od góry <? kod?> potem szablon i wklejone w pewnym miejscu podziękowanie za maila zamiast formularza.

Jednak gdy użytkownik wejdzie po prostu z na domena.pl/mail.php - mail jest również wysyłany (pusty) - można to jakoś zabezpieczyć ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
IAmBoskiM
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 8.05.2016

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


isset($_POST) zawsze będzie zwracało true, albowiem zmienna $_POST jest zawsze zdefiniowana, nawet jak jest pusta.

Zamiast tego użyj:
  1. <?php // lepiej używać pełnych tagów
  2. if (!empty($_POST)) {
  3. // w klamry weź wszystko
  4. }
  5. ?>


Swoją drogą, zamiast pisać cały czas $zmienna = $_POST['zmienna'] możesz wykorzystać coś takiego (ale tylko jeżeli wszystkie elementy $_POST mają klucze stringowe):
  1. foreach ($_POST as $key => $value) {
  2. $$key = $value; // ew. ${$key}, ale oby dwa powinny działać
  3. }


A poza tym nie wiem czy wiesz, ale jeżeli wstawisz zmienną w cudzysłów (") to zostanie ona zamieniona na jej wartość. Np.:
  1. $str = 'tekst';
  2. echo '$str'; // wypisze $str
  3. echo "$str"; // wypisze tekst
  4. echo "fajny $str"; // wypisze fajny tekst


I ogólnie twoje zrobienie tego stringa zrobiłbym inaczej:
  1. $str = <<< ID
  2. tekst
  3. znowu tekst
  4. itd
  5. itd
  6. itd
  7. ID;
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.08.2025 - 10:49