Gå til innhold

bruke foreach() i et mailscript


Anbefalte innlegg

Skrevet (endret)

Har et mailscript som skal kunne sende ut den samme mailen til en gruppe. Jeg gruperer alle brukere i bransjer og hver bransje har sitt faste bransjenr. Når jeg da skal sende trenger jeg bare å definere hvilken bransje jeg skal sende mailen til så henter spørringen ut hvilke kunder som har det aktuelle bransjenret. Det var bakgrunnen for dette scriptet, men problemet er at jeg ikke får det til å virke. Tipper at jeg har kløna det til med foreach:

<?php
//kople til database
include ('../genius_oppkopling_mysql.php');

session_start();
if ($_POST["bransjenr"] && $_POST["emne"] && $_POST["melding"] && $_POST["passord"]) {
    $kryptertpassord = md5($_POST["passord"]);
    if ($_SESSION['passord'] == $kryptertpassord) {

        //Send mail til kunde og print ut confirmation
       $bransjenr = $_POST['bransjenr'];
       $emne = $_POST['emne'];
       $melding = $_POST['melding'];

       $sp_epost = mysql_query("SELECT firmanavn, epost FROM kunder WHERE bransjenr ='$bransjenr'");
       $res_epost = mysql_fetch_array($sp_epost);

       include('mail/mail5.php');
       foreach ($res_epost['epost'])
       {
               mail($res_epost['epost'], $emne5, $melding5, $headers5);
       }

       //Bekreftelse på at mail ble sendt
       $antall = mysql_num_rows($sp_epost);

        //Lagrer mailen i databasen
       $lagremail = mysql_query ("INSERT INTO mail VALUES (NULL, '$bransjenr', now(), '$emne', '$melding', '$antall');");

       print "Mailen ble sendt til $antall kunder med bransjenr $bransjenr, en kopi ble lagret i databasen.";


       //Kopler fra databasen
       mysql_close($connection);
   }
   else {
       print "Passordet var feil";
   }


}
?>

 

feilmeldinga jeg får når jeg kjører scriptet er:

Parse error: unexpected '(' in /hsphere/local/home/arbeidsr/admin.arbeidsrett.org/mailbransje.php on line 195 dette er samme linja som foreach begynner på. Noen som kan se hva som er galt?

Endret av shagg0r
Videoannonse
Annonse
Skrevet (endret)

Er ingen foreach-guru, men leste i manualen.

 

foreach (array_expression as $value)

statement

foreach (array_expression as $key => $value)

statement

 

Burde hjelpe litt på vei?

Endret av fjartan
Skrevet

nå har jeg endret den til

foreach ($res_epost['epost'] as $epost) { mail($epost, $emne5, $melding5, $headers5); }

men virker ikke ut som mailen blir sent.. for ikke noe feilmelding heller da men:(

Skrevet

Tror denne løsningen er like god:

 

$sp_epost = mysql_query("SELECT firmanavn, epost FROM kunder WHERE bransjenr ='".$bransjenr."'");

include('mail/mail5.php');
$ok = "0";
$error = "0";
while($epost = mysql_fetch_array($sp_epost)) {

$mail = mail($epost[1], $emne5, $melding5, $headers5);

if ($mail) {
$ok++;
} else {
$error++;
}

} // slutt på while-løkke

echo "Antall sendt: $ok<br>\n";
echo "Ikke sendt: $error";

Skrevet

ok takk, skal prøve det ut, men hvorfor endret du spørringen min til: $sp_epost = mysql_query("SELECT firmanavn, epost FROM kunder WHERE bransjenr ='".$bransjenr."'"); ? må jeg endre spørringen til det for at det skal fungere?

Skrevet

Får du noen svar på spørringen din da?

 

$sp_epost = mysql_query("SELECT firmanavn, epost FROM kunder WHERE bransjenr ='".$bransjenr."'");

 

echo mysql_numrows($sp_epost);

 

Får du noe svar her?

Skrevet

Jeg ser ikke helt hva som kan være feilen da, så det eneste rådet jeg kan gi er å sette opp et enkelt script hvor du tester alle funksjonene en for en. Først undersøker du hva alle variabler inneholder, deretter ser du etter om mailfunksjonen fungerer osv.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...