Witam ponownie.
Mam pytanie, jak zrobić, by w wysyłanym do mnie formularzu, były dane wpisywane przez wysyłającego, a także informacje pobrane z bazy.
Przykładowo na stronie jest link
<a href=zamow.php?a=zamow&id={$r[0]} target=_blank><button>ZAMÓW
</button></a>
no i jest OK. Otwiera mi podstronę zamow.php z danymi pobranymi z MySQL.
<?php
include 'log.php'; //plik konfiguracyjny bazy
/*
odbieramy zmienne przekazane w linku jak w poradzie
<a href="http://www.kess.com.pl/?sid=10&pid=43" target="_blank">http://www.kess.com.pl/?sid=10&pid=43</a>
*/
$a = trim($_REQUEST['a']); if($a == 'zamow' and
!empty($id)) { /* zapytanie do tabeli */
id='$id'")
or
die('Błąd zapytania'); /*
wy?wietlamy wyniki, sprawdzamy,
czy zapytanie zwróciło warto?ć większ? od 0
*/
/* odczytujemy zawarto?ć wiersza z tabeli */
/* wczytujemy dane do formularza */
echo 'Tu są dane książek np autor: '.$r['autor'].' tytul: '.$r['tytul'].' nmumer identyfikacyjny książki: '.$r['identyfikator'].''; }
}?>
Moje pytanie brzmi, jak połączyć powyższy skrypt z tym
<?php
//--- początek formularza ---
if(empty($_POST['submit'])) { ?>
<table align=center>
<form action="zamow.php" method="post">
<tr><td>Twoje imię:</td><td><input type="text" name="imie"/></td></tr>
<tr><td>Twoje nazwisko:</td><td><input type="text" name="nazwisko"/></td></tr>
<tr><td>Twój e-mail:</td><td><input type="text" name="mail"/></td></tr>
<tr><td>Twój telefon (opcjonalnie):</td><td><input type="text" name="telefon"/></td></tr>
<tr><td colspan=2 align=center>
<input type="hidden" name="autor"/>
<input type="hidden" name="tytul"/>
<input type="hidden" name="identyfikator"/>
<input type="submit" name="submit" value="Zamów"/></td>
</tr>
</form>
</table>
<?php
} else {
//twoje dane
$email = 'marko_hietala@o2.pl';
//dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$mail = $_POST['mail'];
$telefon = $_POST['telefon'];
$autor = $_POST['autor'];
$tytul = $_POST['tytul'];
$identyfikator = $_POST['identyfikator'];
//--- początek funkcji weryfikującej adres e-mail ---
function checkMail($checkmail) {
if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
return true;
}else{
return false;
}
} else {
return false;
}
}
//--- koniec funkcji ---
if(checkMail($mail)) {
//dodatkowe informacje: ip i host użytkownika
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
//tworzymy szkielet wiadomości
//treść wiadomości
$mailText = "$imie $nazwisko chce pozyczyc ksaizke: $autor - $tytul ($identyfikator)\nDane: $imie $nazwisko / $mail / $telefon";
//adres zwrotny
$mailHeader = "From: $imie $nazwisko <$mail>";
//funkcja odpowiedzialna za wysłanie e-maila
@mail($email, 'Formularz kontaktowy', $mailText, $mailHeader) or
die('Błąd: wiadomość nie została wysłana'); //komunikat o poprawnym wysłaniu wiadomości
echo 'Wiadomość została wysłana'; } else {
echo 'Adres e-mail jest niepoprawny'; }
} else {
//komunikat w przypadku nie powodzenia
echo 'Wypełnij wszystkie pola formularza'; }}?>
Zależy mi głównie na tym, bym w e-mailu dostawał info:
"$imie $nazwisko chce pozyczyc ksiazke: $autor - $tytul ($identyfikator)\nDane: $imie $nazwisko / $mail / $telefon"
Poniżej podaję skrypt (nie działający), który napisałem próbując połączyć powyższe skrypty
<?php
//--- początek formularza ---
if(empty($_POST['submit'])) { ?>
<?php
include 'log.php';
/*
odbieramy zmienne przekazane w linku jak w poradzie
<a href="http://www.kess.com.pl/?sid=10&pid=43" target="_blank">http://www.kess.com.pl/?sid=10&pid=43</a>
*/
$a = trim($_REQUEST['a']); if($a == 'zamow' and
!empty($id)) { /* zapytanie do tabeli */
id='$id'")
or
die('Błąd zapytania'); /*
wy?wietlamy wyniki, sprawdzamy,
czy zapytanie zwróciło warto?ć większ? od 0
*/
/* odczytujemy zawarto?ć wiersza z tabeli */
/* wczytujemy dane do formularza */
/*
w formularz znajduj? się ukryte pola "a"
z warto?ci? "save" i pole "id" z warto?ci?
zmiennej id
*/
echo '<table align=center> <form action="zamow.php" method="post">
<tr><td>Twoje imię:</td><td><input type="text" name="imie"/></td></tr>
<tr><td>Twoje nazwisko:</td><td><input type="text" name="nazwisko"/></td></tr>
<tr><td>Twój e-mail:</td><td><input type="text" name="mail"/></td></tr>
<tr><td>Twój telefon (opcjonalnie):</td><td><input type="text" name="telefon"/></td></tr>
<tr><td colspan=2 align=center>
<input type="hidden" name="autor" value='.$r['autor'].'/>
<input type="hidden" name="tytul" value='.$r['tytul'].'/>
<input type="hidden" name="identyfikator" value='.$r['identyfikator'].'/>
<input type="submit" name="submit" value="Zamów"/></td>
</tr>
</form>
</table>';
}
}?>
<?php
} else {
//twoje dane
$email = 'marko_hietala@o2.pl';
//dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$mail = $_POST['mail'];
$telefon = $_POST['telefon'];
$autor = $_POST['autor'];
$tytul = $_POST['tytul'];
$identyfikator = $_POST['identyfikator'];
//--- początek funkcji weryfikującej adres e-mail ---
function checkMail($checkmail) {
if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
return true;
}else{
return false;
}
} else {
return false;
}
}
//--- koniec funkcji ---
if(checkMail($mail)) {
//dodatkowe informacje: ip i host użytkownika
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
//tworzymy szkielet wiadomości
//treść wiadomości
$mailText = "$imie $nazwisko chce pozyczyc ksaizke: $autor - $tytul ($identyfikator)\nDane: $imie $nazwisko / $mail / $telefon";
//adres zwrotny
$mailHeader = "From: $imie $nazwisko <$mail>";
//funkcja odpowiedzialna za wysłanie e-maila
@mail($email, 'Formularz kontaktowy', $mailText, $mailHeader) or
die('Błąd: wiadomość nie została wysłana'); //komunikat o poprawnym wysłaniu wiadomości
echo 'Wiadomość została wysłana'; } else {
echo 'Adres e-mail jest niepoprawny'; }
} else {
//komunikat w przypadku nie powodzenia
echo 'Wypełnij wszystkie pola formularza'; }}?>
Z góry dzięki za pomoc;)
Ok. Poradziłem sobie. Zrobiłem opcję zapisywania danych zamawiającego do nowej tabeli bazy danych:P Ale mam pytanie. Czy jest jakiś skrypt, który będzie mi wysyłał e-mail albo wyświetlał na stronie informację, że dodano nowy rekord do bazy?