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

Wstawienie komunikatu, że wiadomość została wysłana.

Object Storage Arubacloud
0 głosów
335 wizyt
pytanie zadane 31 marca 2018 w PHP przez timati Bywalec (2,060 p.)

Witam, czy wie ktoś może jak mógłbym zrobić, żeby po wysłani wiadomości na mojej stronie zamiast białej pustej strony i napisu {status: ok} wyczyścić pola z imieniem i wiadomością oraz dodać jakieś info na istniejącej stronie, że wiadomość została wysłana.

to skrypt php, ja go nie pisałem także słabo się orientuję i nie za bardzo wiem jak zrobić redirect nie na białą stronę tylko żeby pozostało na istniejącej.

<?php
$mailToSend = 'mój@email.com';
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
	$name       = $_POST['name'];
	$email      = $_POST['email'];
	$message    = $_POST['message'];
	// $regulation = $_POST['regulation'];
	$errors     = Array();
	$return     = Array();
	if ( empty( $name ) ) {
		array_push( $errors, 'name' );
	}
	if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
		array_push( $errors, 'email' );
	}
	if ( empty( $message ) ) {
		array_push( $errors, 'message' );
	}
	// if ( empty( $regulation ) ) {
	// 	array_push( $errors, 'regulation' );
	// }

	if ( count( $errors ) > 0 ) {
		$return['errors'] = $errors;
	} else {
		$headers = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
		$headers .= 'From: ' . $email . "\r\n";
		$headers .= 'Reply-to: ' . $email;
		$message = "
			<html>
			<head>
			<meta charset=\"utf-8\">
			</head>
			<style type='text/css'>
				body {font-family:sans-serif; color:#222; padding:20px;}
				div {margin-bottom:10px;}
				.msg-title {margin-top:30px;}
			</style>
			<body>
			<div>Imię: <strong>$name</strong></div>
			<div>Email: <a href=\"mailto:$email\">$email</a></div>
			<div class=\"msg-title\"> <strong>Wiadomość:</strong></div>
			<div>$message</div>
			</body>
			</html>";

		if ( mail( $mailToSend, 'Wiadomość ze strony - ' . date( "d-m-Y" ), $message, $headers ) ) {
			$return['status'] = 'ok';
		} else {
			$return['status'] = 'error';
		}
	}

	header( 'Content-Type: application/json' );
	echo json_encode( $return );
}

 

2 odpowiedzi

0 głosów
odpowiedź 31 marca 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
edycja 31 marca 2018 przez OdsetekGlupoty

Witam,

Czy chodzi o coś takiego? 

if ( mail( $mailToSend, 'Wiadomość ze strony - ' . date( "d-m-Y" ), $message, $headers ) ) {
            echo '<script>alert("Wiadomość została wysłana poprawnie!")</script>';
        } else {
            echo '<script>alert("Wystąpiły problemy techniczne. Wiadomość nie została wysłana")</script>';
        }

Zamiast $return['status'] = 'ok'/'error'; można wstawić komunikat korzystając z JavaScriptu.

Należy pamiętać o tym, aby usunąć linijki 55 oraz 56 z Twojego kodu

 

komentarz 31 marca 2018 przez timati Bywalec (2,060 p.)
Mniej więcej tak, tylko teraz pojawia się alert że wiadomość została wysłana i po kliknięciu OK i tak przenosi na białą stronę pod adres http://localhost/send-script.php. Właśnie mam problem z tym, żeby po wysłaniu tej wiadomości nie przenosiło nigdzie. Wykasowałem te linijki o które prosiłeś.
komentarz 1 kwietnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Najwidoczniej masz potem ustawiony redirect na podstronę send-script.php. Tej części kodu jednak nie pokazałeś (w kodzie, który podałeś nie ma takiego redirecta). W ciemno mogę Ci podpowiedzieć tylko tyle, żebyś całą zawartość pliku send-script.php wkleił nad linijką pokazującą komunikat o poprawnym wysłaniu wiadomości. Jeśli to nie zadziała podaj mi kod w pliku send-script.php.
0 głosów
odpowiedź 3 kwietnia 2018 przez timati Bywalec (2,060 p.)

@OdsetekGlupoty to jest mój cały skrypt php :)

Może pomoże jeszcze fragment html'a

<div class="col-sm-6 col-sm-12 col-xs-12" id="contactSec">
        					<div class="col-sm-6">
        						<form class="form" id="contactForm" method="post" novalidate action="/send-script.php">
                					<div class="form-row">
                    					<label for="field-name">Imie i Nazwisko</label>
                    					<input type="text" name="name" required id="field-name" data-error="Wypełnij to pole" pattern="[a-zA-ZąĄććę곣ńŃóÓśŚżŻŹŹ ]+">
                					</div>
                					<div class="form-row">
                    					<label for="field-email">E-mail</label>
                   						<input type="email" name="email" required id="field-email" data-error="Wpisz poprawny email" pattern="[^@\s]+@[^@\s]+\.[^@\s]+">
                					</div>
                					<div class="form-row">
                    					<label for="field-message">Wiadomość</label>
                    					<textarea name="message" required data-error="Musisz wypełnić pole" id="field-message" pattern=".+"></textarea>
                					</div>
                					<div class="form-row">
                   						<button type="submit" class="submit-btn" id="contactButton">
                        				Wyślij
                    					</button>
                					</div>
            					</form>
        					</div>
        				</div>

 

komentarz 4 kwietnia 2018 przez timati Bywalec (2,060 p.)
podbijam :)

Podobne pytania

0 głosów
1 odpowiedź 237 wizyt
–1 głos
1 odpowiedź 1,669 wizyt
0 głosów
1 odpowiedź 218 wizyt
pytanie zadane 19 kwietnia 2019 w C i C++ przez Gryczny Początkujący (320 p.)

92,536 zapytań

141,377 odpowiedzi

319,454 komentarzy

61,922 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...