Avatar billede tanzaweb Nybegynder
24. august 2006 - 11:34 Der er 12 kommentarer

Parse error: syntax error, unexpected

Hej

Jeg har her en del af et send mail script hvor jeg får denne fejl ud for foreach delen, selve scriptet er meget længere men den fejler lige her kan i se fejlen?

Fejlen: Parse error: syntax error, unexpected ')' in /usr/home/public_html/pr/admin/index.php on line 100

Koden:
function sendEmail ($mailSubject, $mailBody) {
    // Register global variables
//  global $modtager;
foreach ($row_modtager['email']){   
    // Set up reply address for mailing list
    $mailFrom = "Nyhedsbrev <redaktion@vaerk.dk>";

    // Ensure that subject and body of email have automatically inserted escape slashes removed
    $mailSubject = stripslashes($mailSubject);
    $mailBody = stripslashes($mailBody);
   
        // Build to address including subscriber name
        $mailTo = $row_modtager['email'];
       
        // Send email to
        mail($mailTo, $mailSubject, $mailBody, "From: " . $mailFrom);
    }
}
Avatar billede mcgoat Nybegynder
24. august 2006 - 11:36 #1
hvilken af disse linier skulle være linie 100? for syntes da ikke lige jeg kan se den fejl
Avatar billede mcgoat Nybegynder
24. august 2006 - 11:38 #2
måske det er din foreach.

taget fra www.php.net/foreach:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement


du mangler måske en "as" ?
Avatar billede fangel Nybegynder
24. august 2006 - 11:45 #3
mcgoat er her inde på det rigtige - din foreach er forskruet.. ;)

function sendEmail ($mailSubject, $mailBody) {
  // Register global variables
  //  global $modtager;
  foreach ($row_modtager['email'] AS $en_modtagers_email ){ 
    // Set up reply address for mailing list
    $mailFrom = "Nyhedsbrev <redaktion@vaerk.dk>";

    // Ensure that subject and body of email have automatically inserted escape slashes removed
    $mailSubject = stripslashes($mailSubject);
    $mailBody = stripslashes($mailBody);
 
    // Build to address including subscriber name
    $mailTo = $en_modtagers_email;
     
    // Send email to
    mail($mailTo, $mailSubject, $mailBody, "From: " . $mailFrom);
  }
}

-fangel
Avatar billede mcgoat Nybegynder
24. august 2006 - 11:48 #4
yeah. den tager det felt i array og smider ned i en variabel du så kan bruge.
Avatar billede tanzaweb Nybegynder
24. august 2006 - 12:03 #5
ok hvordan skulle jeg så lave den hvis den bare skal køre den mens der er nogle emails at sende til?
Avatar billede mcgoat Nybegynder
24. august 2006 - 12:13 #6
sådan som fangel har vist vil jeg tro :
Avatar billede tanzaweb Nybegynder
24. august 2006 - 12:27 #7
ups sorry tak, vil prøve den af, og vende tilbage
Avatar billede tanzaweb Nybegynder
24. august 2006 - 14:00 #8
Sorry den laver stadig fejl i den linje
Desværre.. den brokker sig over

Warning: Invalid argument supplied for foreach() in /usr/home/public_html/pr/admin/index.php on line 99

Og linie 99 er:

foreach ($row_modtager['email'] AS $en_modtagers_email ){
Avatar billede fangel Nybegynder
24. august 2006 - 14:06 #9
Det er jo så fordi dit script, ved nærmere eftertanke, er helt ude i hampen.. ;)

Den piver over "invalid argument supplied", hvilket jo nok kunne skyndes at du prøver at sende den en variabel der ikke findes.. ;) $row_modtager['email'] findes jo ikke..

Prøv at ret i dit script, så foreach() bliver givet et array med mail-adr. der skal sendes til - så skal du nok se at det vil komme til at virke..

-fangel
Avatar billede tanzaweb Nybegynder
24. august 2006 - 14:22 #10
Hmm, Jeg har nu fået hele scriptet fra min veninde og det er meget længere og skulle gerne komme herfra:

<?php require_once('../common.php'); ?>
<?php
$link = dbConnect();
$query_modtager = "SELECT * FROM nyhedsbrev";
$modtager = mysql_query($query_modtager, $link) or die(mysql_error());
$row_modtager = mysql_fetch_assoc($modtager);
$totalRows_modtager = mysql_num_rows($modtager);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>:: Nyhedsbrev Administration ::</title>
<style type="text/css">
<!--
.style7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; }
.style9 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #009933;
    font-weight: bold;
}
-->
</style>
</head>

<body>
<form name="form1" method="post" action="index.php">
  <table width="56%"  border="0" cellspacing="3" cellpadding="3">
    <tr>
      <td height="37" colspan="3"><p class="style9">Send Nyhedsbrev</p>
      </td>
    </tr>
    <tr>
      <td width="12%" class="style7">Subject:</td>
      <td colspan="2"><input name="mailSubject" type="text" id="mailSubject" size="30"></td>
    </tr>
    <tr>
      <td class="style7">Tekst:</td>
      <td colspan="2"><textarea name="mailBody" cols="77" rows="15" id="mailBody"></textarea></td>
    </tr>
    <tr>
      <td class="style9">&nbsp;</td>
      <td width="66%">&nbsp;</td>
      <td width="22%" align="right"><input name="action" type="submit" id="action" value="Send Email"></td>
    </tr>
   
  </table>
</form>
<table width="100%"  border="0" cellspacing="2" cellpadding="2">
  <tr class="style9">
    <td width="16%">navn</td>
    <td width="19%">e-mail</td>
    <td width="24%">adresse</td>
    <td width="21%">tlf</td>
    <td width="20%">Slet</td>
  </tr>
  <tr>
    <td colspan="5"><?php do { ?>
      <table width="91%"  border="1" cellpadding="3" cellspacing="0" bordercolor="#E6E6FF">
        <tr>
          <td width="17%" height="22" class="style7"><?php echo $row_modtager['name']; ?></td>
          <td width="21%" class="style7"><?php echo $row_modtager['email']; ?></td>
          <td width="27%" class="style7"><?php echo $row_modtager['adresse']; ?></td>
          <td width="23%" class="style7"><?php echo $row_modtager['tlf']; ?></td>
          <td width="12%" class="style7"><a href="delete.php?id=<?php echo $row_modtager ['id']; ?>"><strong>Slet</strong></a></td>
        </tr>
<?php        // Create a readable joined date out of timestamp
        $joined = strftime("%D", $joined);?>
          </table>
      <?php } while ($row_modtager = mysql_fetch_assoc($modtager)); ?></td>
  </tr>
</table>
<br>
</body>
</html>

<?
   
    // Decide on what action we need to take
    switch($action) {
        // Fetch list of subscribers
        case "List modtagere":
            fetchList();
            break;
       
        // Send email to subscribers
        case "Send Email":
            sendEmail($mailSubject, $mailBody);
            break;
            default:
            print "Slet modtager eller send nyhedsbrev.";
            exit;
    }

function sendEmail ($mailSubject, $mailBody) {
  // Register global variables
  //  global $modtager;
  foreach ($row_modtager['email'] AS $en_modtagers_email ){ 
    // Set up reply address for mailing list
    $mailFrom = "Nyhedsbrev <redaktion@vaerk.dk>";

    // Ensure that subject and body of email have automatically inserted escape slashes removed
    $mailSubject = stripslashes($mailSubject);
    $mailBody = stripslashes($mailBody);
 
    // Build to address including subscriber name
    $mailTo = $en_modtagers_email;
     
    // Send email to
    mail($mailTo, $mailSubject, $mailBody, "From: " . $mailFrom);
  }
}

   
    print "Nyhedsbrev er blevet udsendt..";

?>
<?php
mysql_free_result($modtager);
?>

Jeg kan ikke helt selv forstå hendes opsætning, men hun har lavet det i dreamveawer som jeg ikke selv bruger til kode da jeg synes det er forvirrende.
Avatar billede fangel Nybegynder
24. august 2006 - 15:05 #11
Må jeg så her pointere at din veninde ikke kan finde ud af at kode PHP (eller ordenligt HTML for den sags skyld..)

Der er ind til flere fejl i det kode.. og den er i det store hele meget meget usammenhængende og ligner noget der er copy-paste flettet sammen af 30 forskellige ting fundet på hver sin side af jordkloden...

Det ville kræve en større omstrukturering og omskrivning at få det til at virke.. så det vil jeg undlade...

-fangel
Avatar billede tanzaweb Nybegynder
24. august 2006 - 15:24 #12
hehe, ja det har jeg nævnt for hende og tilbudt at lave et andet for hende med SMTP som jeg har til at ligge, men hun prøver jo sit bedste.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester