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

Jak w wysłać formularz na podany przez użytkownika e-mail?

Mały hosting, OGROMNE możliwości
0 głosów
343 wizyt
pytanie zadane 8 listopada 2017 w PHP przez Przemko Giszczyński Początkujący (380 p.)

To jest mój cały kod do dodawania faktur:

<?php

	session_start();

	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: index.php');
		exit();
	}

	ini_set('display_errors','off');
	error_reporting( E_ALL );

  $id = $_SESSION['id'];
  $admin = $_SESSION['admin'];

?>
<!DOCTYPE HTML>
<html>
<head>
	<meta charset="utf-8" />
	<link rel="stylesheet" type="text/css" href="style.css">
	<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
	<title>Dodaj fakturę !</title>
</head>
<body>
	<div id="menu">
		<center>
	<ul id="menu-bar">
	 <li><a href="home.php">Strona Główna</a></li>
	 
	 </li>
	 <li><a href="moje.php">Dodawanie faktur</a>
	 	<ul>
      	<li><a href="dodaj.php">Dodaj</a></li>
		</ul>
		<li><a href="edytuj_d.php">Edytuj dane</a></li>
		<li><a href="logout.php">Wyloguj się!</a>
	  <ul>
	   
	   <li><a href="logout.php">Wyloguj!</a></li>
	  </ul>
	 </li>
	</ul>
		</center>
</div>

	<div class="container">

		<h2>Wystaw fakturę</h2>



	<?php

		require_once "connect.php";
		mysqli_report(MYSQLI_REPORT_STRICT);

		if ($_POST['dodaj']=="Dodaj fakturę!")
		{

			$wszystko_ok = 1;
			$tytul = $_POST['tytul'];
			$cena = $_POST['cena'];
			$ilosc = $_POST['ilosc'];
			$klient = $_POST['klient'];
			$suma = $cena * $ilosc;

			if ((strlen($tytul) < 3) || (strlen($tytul) > 30))
			{
				$wszystko_ok = 0;
				$_SESSION['e_tytul']="Tytuł może mieć długość od 3 do 30 znaków";
			}
			else
			{
				$tytul_ok = $tytul;
			}

			if($cena > 0)
			{
				if(!$cena_OK = filter_var($cena, FILTER_VALIDATE_FLOAT))
				{
					$_SESSION['e_cena'] = "Proszę podać cenę w formacie 00.00 !";
					$wszystko_ok = 0;
				}
				else
				{
					$cena_OK = sprintf("%.2f", $cena);
					if($cena_OK != $cena)
					{
						$_SESSION['e_cena'] = "Proszę podać cenę w formacie 00.00 !";
						$wszystko_ok = 0;
					}
				}
			}
			else
			{
				$_SESSION['e_cena'] = "Proszę podać cenę w formacie 00.00 !";
				$wszystko_ok = 0;
			}



			if ($wszystko_ok == 1)
			{

				try
				{
				$polaczenie = new mysqli($db_host, $db_user, $db_password, $db_name);
				$polaczenie ->query("SET NAMES 'utf8'");

				if ($polaczenie->connect_errno!=0)
				{
					throw new Exception(mysqli_connect_errno());
				}

				if ($polaczenie->query("INSERT INTO `oferty` (`id`, `tytul`, `ilosc`, `kontrahent`, `cena`, `data_wys`, `id_wys`, `id_kup`) VALUES (NULL, '$tytul_ok', '$ilosc', '$klient', '$cena_OK', CURRENT_TIMESTAMP, '$id', NULL)"))
				{
					$_SESSION['dodano'] = "Dodano fakturę !";
					header('Location: dodaj.php');
					exit();
				}
				else
				{
					echo "Nie udało się dodać";
				}



				}
				catch(Exception $e)
				{
					echo '<span class="error">Błąd serwera! Przepraszamy za niedogodności !</span>';
					echo '<br />Informacja developerska: '.$e;
				}

			}
		}

	?>

	<form class="form-container" method="post" enctype="multipart/form-data">

		<?php
			if (isset($_SESSION['dodano']))
			{
				echo '<div class="error">'.$_SESSION['dodano'].'</div>';
				unset($_SESSION['dodano']);
			}
		?>

		<div class="form-title">Produkt:</div> <br/>
		<input class="form-field" type="text" name="tytul" /><br />
		<?php
			if (isset($_SESSION['e_tytul']))
			{
				echo '<div class="error">'.$_SESSION['e_tytul'].'</div>';
				unset($_SESSION['e_tytul']);
			}
		?>

		<div class="form-title">Ilość:</div> <br/>
		<input class="form-field" type="text" name="ilosc" /><br />

		<div class="form-title">Cena:</div> <br />
		<input class="form-field" type="text" name="cena" /><br />
		<?php
			if (isset($_SESSION['e_cena']))
			{
				echo '<div class="error">'.$_SESSION['e_cena'].'</div>';
				unset($_SESSION['e_cena']);
			}
		?>
		
		<div class="form-title">Kontrahent:</div> <br/>
		<input class="form-field" type="text" name="klient" /><br />

		<br />

		<input class="submit-button" type="submit" name="dodaj" value="Dodaj fakturę!"/>

	</form>

	</div>

</body>
</html>

Chciałbym by wprowadzone dane zostały wysłane na maila podanego przez osobę, która wypełnia te dane. Problem w tym, że nie potrafię tego zrobić. Przejrzałem cały internet i nic. Nie ukrywam, że też nie jetem jakimś asem w języku php. Z tego, co wiem to funkcja mail() będzie mi pomocna w rozwiązaniu problemu. Tylko, że nie wiem zupełnie, jak to zrobić. Pomożecie?

1
komentarz 8 listopada 2017 przez HaKIM Szeryf (87,590 p.)

Może Cię zainteresować:

https://swiftmailer.symfony.com/docs/introduction.html

Właśnie wychodzę z domu, więc osobiście nie będe mógł udzielić, przez pewien czas, wskazówek. Ale z google'em powinieneś sobie poradzić.

Przykładowy config:

transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, true))
        ->setUsername('xxx@gmail.com')
        ->setPassword('xxx')
        ->setEncryption('ssl')
        ->setAuthMode('login');

Sam mistrzem w tej bibliotece nie jestem, ledwo co 6h. temu udało mi się wysłać email poprzez swiftmailera. cheeky

Dodatkowo na Gmail musisz odblokować kilka opcji, dwie dokładnie, wszystko jest na stacku.

Powodzenia!

Ps. Nie wiem w jaki dokładny sposób chcesz wysyłać fakturę, acz tutaj jest coś o załącznikach:

https://swiftmailer.symfony.com/docs/messages.html#attaching-files

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 473 wizyt
0 głosów
1 odpowiedź 1,095 wizyt
0 głosów
1 odpowiedź 462 wizyt
pytanie zadane 28 grudnia 2017 w PHP przez svst Nowicjusz (240 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 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.

...