Dzięki error_reporting(E_ALL); ini_set('display_errors','1'); mogłem zobaczyć jakie są błędy....
Kod działa ok, ale bez zapamiętywania danych w formularzu.
<?php
if (isset($_POST['submit'])) { $from = 'edward@zrobzemnieelvisa.com';
$subject = $_POST['subject'];
$text = $_POST['elvismail'];
$output_form = false;
// Wiadomo, że pola $subject i $text są puste.
echo 'Nie podałeś tematu i treści wiadomości.<br />'; $output_form = true;
}
echo 'Nie podałeś tematu wiadomości.<br />'; $output_form = true;
}
echo 'Nie podałeś treści wiadomości.<br />'; $output_form = true;
}
}
else {
$output_form = true;
}
$dbc = mysqli_connect('data.zrobzemnieelvisa.com', 'edward', 'theking', 'elvis_store')
or
die('Brak połączenia z serwerem MySQL.');
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or
die('Błąd w zapytaniu do bazy danych.');
while ($row = mysqli_fetch_array($result)){
$to = $row['email'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$msg = "Drogi $first_name $last_name,\n$text";
mail($to, $subject, $msg, 'From:' . $from); echo 'Wysłano e-mail pod adres ' . $to . '<br />'; }
mysqli_close($dbc);
}
if ($output_form) {
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input id="subject" name="subject" type="text" size="30" /><br /> <input type="submit" name="submit" value="Wyślij" />
}
Ale jak wpiszę:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input id="subject" name="subject" type="text" value="<?php echo $subject; ?>" size="30" />
<br /> line 70
<textarea id="elvismail" name="elvismail" rows="8" cols="40"><?php echo $text; ?></textarea><br /> line 72
<input type="submit" name="submit" value="Wyślij" />
To pojawiają się komunikaty:
Notice: Undefined variable: subject in head first-projekty/rozdzial4/moj/sendemail.php on line 70
Notice: Undefined variable: text in /head first-projekty/rozdzial4/moj/sendemail.php on line 72
Czemu tak jest? Co oznaczają?