Har byggt en funktion som skickar massmail till alla besökare på sidan. Problemet blir dock att det blir Fatal error och det står att tiden på 30 sekunder har blivit "exceded".
Vad kan man göra åt detta?
Såhär ser koden ut:
if($_POST[to] == 1) {
$till = "where access = 1";
} elseif($_POST[to] == 2) {
$till = "where access = 2";
} elseif($_POST[to] == 3) {
$till = "where access = 3";
} elseif($_POST[to] == 4) {
$till = "where access = 4";
} elseif($_POST[to] == 5) {
$till = "";
}
$SQL = mysql_query("SELECT * FROM lan_members $till") or die (mysql_error());
while($objRS = mysql_fetch_array($SQL)) {
/* message */
$message = "<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>".nl2br($_POST['contact'])."</body>
</html>";
/* To send HTML mail, you can set the Content-type header. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* additional headers */
$avsandare = $_POST['writer_email'];
$headers .= "From: $avsandare\r\n";
$headers .= "Reply-To: $avsandare";
/* and now mail it */
mail($objRS['email'], $_POST['topic'], $message, $headers);
}
Header ("Location: ../?i=contact&action=massmail");
Jag väljer alltså i en dropdown meny till vilka jag ska skicka mailet, det är just vad If satsen listar ut.
Är det någon iställningar man måste göra? Och kan jag göra det om jag har Loopia?
Hm, är det inte så att alla $_POST[]:s försvinner när jag redirectar till contact.php igen? Hur som helst så stannar den på mail=20 i queryn. Såhär ser koden ut nu:
Hm! Nu kom jag på att mailet bara skickades ut till 20 st av dom. Eftersom $_POST['writer_email'], $_POST['topic'] och $_POST['contact'] inte finns efter det antalet... Hur löser jag detta? Hur sparar jag allting om och om igen? $_POST['contact'] innehåller ju i stort sett hur mkt som helst, går inte och ha det i queryn väl?
Du skulle ju kunna göra så att du sparar texten som ska skickas i en tabell i databasen, sen hämtar du det där och skickar till alla... det är kanske enklare.
Mjo, men fick göra en paniklösning igårkväll... ska fixa det lite bättre idag... Finns det inte en funktion i SQL / PHP som hämtar det senaste id:et i databasen? Eller måste man skriva LIMIT 1?