• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesyłanie metodą POST wartości zmiennych do tego samego pliku php

0 głosów
2,556 wizyt
pytanie zadane 3 listopada 2016 w PHP przez Gabriel Janczak Użytkownik (710 p.)

Stworzyłem skrypt w php który wyciąga dane z formularza i potem funkcją mail() wysyła je na skrzynkę pocztową. Funkcja ta jest osadzona narazie w innym pliku niż formularz co rozwiązuje częściowo mój problem jednak chciałbym żeby był osadzony w tym samym pliku. Chodzi o to żeby metodą POST wysłać dane do tego samego pliku i żeby kiedy użytkownik wchodzi na stronę to na wstępie nie dostawał komunikatu z błędem jeszcze zanim zdąży wypełnić pola i wysłać je.

Treść błędu to:

Notice: Undefined index: tresc in C:\...\mail.php on line 5

Notice: Undefined index: mail in C:\...\mail.php on line 6

Notice: Undefined index: telefon in C:\...\mail.php on line 7

Formularz

<form action="mail.php" method="post" id="formulaz">
    <input class="email" name="mail" type="text" placeholder="e-mail" style="width: 100%"></br>
    <input class="email" type="text" name="telefon" placeholder="telefon" style="width: 100%"></br>
    <textarea class="message" name="tresc" placeholder="wiadomość"></textarea>
    <input class="send" type="submit" value="wyślij">
</form>

Skrypt

//Zmienne przeflitrowane, przesłane od użytkownika 

$tresc = htmlspecialchars(trim($_POST['tresc']));
$mail = htmlspecialchars(trim($_POST['mail']));
$telefon = htmlspecialchars(trim($_POST['telefon']));

//Stałe zdefiniowane

$to = 'exampl@gmail.com';
$subject = 'TEST';
$headers = "Content-type: text/html; charset=utf-8\r\n";

// Skrypt walidujący i wysyłający maila
	
	if (isset($to)){
	
	
	if (!isset($tresc) and !isset($mail ) and !isset($telefon) ){
		
	}
	
		$error = false;
	
		//Sprawdzam czy istnieje ciasteczko
		
		if (isset($_COOKIE['send'])){
			$error = $error ='Odczekaj '.($_COOKIE['send']-time()).' sekund przed wysłaniem kolejnej wiadomości'; 
		}
		
		//Walidacja pola E-mail
		
		if (empty($mail)){
			
			$error = "Nie wypełniłniono pola E-mail!";
			
		}
		elseif (strlen($mail) > 40){
			
			$error = "E-mail nie może prekroczyć 40 znaków!";
			
		}
		elseif (!filter_var($mail, FILTER_VALIDATE_EMAIL)){
			$error = "Podano niepoprawyny E-mail!";
		}
		
		//Walidacja pola Telefon
		
		if (empty($telefon)){
			$error = "Nie wypełniłniono pola Telefon";
		}
		elseif  (strlen($telefon) > 15){
			$error = "Twój Telefon jest za długi. Może posiadać maksymalnie 15 znaków!";
		}
		
		//Walidacja pola wiadomość
		
		if (empty($tresc)){
			$error = "Nie wypełniono pola Wiadomość!";
		}
		elseif (strlen($tresc) > 400){
			$error = "Wiadomość przekroczyła maksymalną liczbę 400 znaków!";
		}
		
		//Wysyłanie wiadomości jeśli testy się powiodły i tworzenie ciasteczka
		
		if ($error == false){
			mail($to, $subject, $tresc."<br><br>"."<b>Dane kontaktowe:</b> <br>"."e-mail: $mail <br>"."telefon: $telefon", $headers);
			setcookie("send", time()+60, time()+60);
			$error= "Twoja wiadomość została wysłana!";
		}
	}
echo '<div class="komunikat" >'.$error.'</div>';

 

komentarz 3 listopada 2016 przez xandros Nałogowiec (29,420 p.)
> narazie

http://sjp.pwn.pl/slowniki/na%20razie.html

>  jednak chciałbym żeby był osadzony w tym samym pliku.

Czemu?

Prześlij formularz, a później zredirectuj na źródło

2 odpowiedzi

+1 głos
odpowiedź 3 listopada 2016 przez Jaroslaw Roj Obywatel (1,990 p.)
wybrane 3 listopada 2016 przez Gabriel Janczak
 
Najlepsza

może sprawdż na początku czy został wciśnięty przycisk submit a potem resztęwink

+1 głos
odpowiedź 3 listopada 2016 przez Filip2248 Dyskutant (8,880 p.)
W trzecim odc. kursu php na yt - pasja informatyki, jest wytłumaczone jak to zrobić.

Podobne pytania

0 głosów
0 odpowiedzi 458 wizyt
0 głosów
2 odpowiedzi 1,028 wizyt
0 głosów
1 odpowiedź 1,257 wizyt

93,778 zapytań

142,737 odpowiedzi

323,388 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...