Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Wysyłanie formularza na email - PHP


Bachi

Pytanie

Opublikowano

Witam jestem początkującym frond-end i stworzyłem Formularz w HTML wiem że programista tego typu powinien znać html css i JS ale niestety js jeszcze się uczę i nie potrafie takich rzeczy jak walidację i miło było by jak ktoś wykazał się pomocą i napisał skrypt jak nawet ktoś się podejmie postawie ci kawę wykorzystałem Framework Boostrap

 

Code HTML

<!-- Contact Section -->
    <section id="contact">

             <div class="row">
                <div class="col-lg-12 text-center">
                    <h2>Contact</h2><br>
                </div>
            </div>

        <form id="contact-form" name="contact-form" method="post">

            <div class="control-group">
                <div class="controls">
                    <label for="name" id="name"></label><br/>
                    <input type="text" class="form-control" placeholder="Name *" id="name" required />
                </div>
            </div>   
            
            <div class="control-group">
                <div class="controls">
                    <label for="mail" id="mail"></label><br/>
                    <input type="email" class="form-control" placeholder="E-mail *" id="email" required />
                </div>
            </div>  
         
            <div class="control-group">
                <div class="controls">
                    <label for="text" id="text"></label>
                    <textarea rows="10" cols="100" class="form-control" placeholder="Message (en/pl) *" id="text" required minlength="5" data-validation-minlength-message="Enter a minimum of 5 characters" maxlength="999" style="resize:none"></textarea>
                </div>
            </div>  
        <div id="success"> </div><br>

        <input type="submit" id="submit" name="submit" value="Send" class="btn btn-primary pull-right"><br>
         
        </form>
        
    </section>

 

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

Mam pytanie ja rozwiązać jaki problem jak na na obrazie XDDDD

Żeby nie przesyłało wiadomości e-mail z serwera tylko osoby która wpisała w formularzu żebym mógł odpisać na wiadomość danej osoby.

 

Bez ty1tułu.png

Opublikowano

Dzięki za pomoc ale sam się zmotywowałem i napisałem

 

	<?php
		if(isset($_POST['name']) && isset($_POST['mess'])) {
			$to = "[email protected]";
			$subject = "Wiadomość od ".$_POST['name']; 
			$message = $_POST['mess'];
			$headerFields = array(
			"From: {$visitor_email}",
			"MIME-Version: 1.0",
			"Content-Type: text/html;charset=utf-8"
		);
			$txt = $_POST['mess'];
			mail($to, $subject, $txt, implode("\r\n", $headerFields));
		}
	?>

 

Opublikowano

A wieć masz tutaj opisany kod php, przeanalizuj i napisz to tak, aby było wszystko dopięte na ostatni guzik.

Pierwsze co musimy sprawdzić, czy przycisk został kliknięty.

<?php
if(ISSET($_POST['button_send'])) {
//dalszy kod
}

Dalej sprawdzamy czy wszystkie pola zostały wypełnione.

<?php
if(ISSET($_POST['button_send'])) {
  if(!empty($_POST['form_email']) && !empty($_POST['form_content']) && !empty($_POST['form_name'])) {
    $info = 'Błąd. Wypełnij wszystkie pola, aby wysłać dany formularz.';
  }
}

Warto też sprawdzić czy email posiada odpowiednie znaki, chodzi tutaj głównie o znak @.

if(!preg_match("/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/", $_POST['form_email'])) {
	$info .= 'Podany email jest nie poprawny, sprawdź go jeszcze raz i spróbuj ponnownie.';
}

A więc jeśli wszystko jest w porządku można wysłać email do danego użytkownika.

@mail('[email protected]', $_POST['form_name'], $_POST['form_content'], 'tutaj możesz wpisać to co chcesz aby było początkiem emailu, czyli np. podstawowe dane od nadawcy.');  

 

Cały kod powinien wyglądać tak (oczywiście jest to tylko przykład).

<?php
if(ISSET($_POST['button_send'])) {
	if(!empty($_POST['form_email']) && !empty($_POST['form_name']) && !empty($_POST['form_content'])) {
		$info = 'Błąd. Formularz nie został wypełniony do końca.';
	}

	if(!preg_match('/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/', $_POST['form_email'])) {
		$info = 'Błąd. Email zawiera nie dozwolone znaki.';
	}

	@mail('[email protected]', $_POST['form_name'], $_POST['form_content'], 'tutaj możesz wpisać to co chcesz aby było początkiem emailu, czyli np. podstawowe dane od nadawcy.');  
}
?>

<form name="contanct" method="post">
  <input type="text" name="form_email" placeholder="Wpisz swój email"/>
  <input type="text" name="form_name" placholder="Wpisz temat swojego emaila"/>
  <textarea name="form_content"></textarea>
  <input type="submit" name="button_send" value="Wyślij"/>
</form>

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...