Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Problém s rozesíláním E-mailu na více adres najednou

Dobrý den mám menší problém se scriptem přes který by se měly hromadně odesílat e-maily na adresy které jsou zapsány v databázi...
každý kdo má zájem mlže tam svou adresu zapsat...

$dbhost="***********";
  $dbusr="********";
  $dbpassw="********";
  $dbname="*********";
  @$link=mysql_pconnect($dbhost,$dbusr,$dbpassw) or die("<p class='nadpis'>Server nepřipojen !!!</p>");
  @$db=mysql_select_db($dbname,$link) or die("<p class='nadpis'>Databáze nebyla nalezena !!!</p>");
  $dotaz = "SELECT * FROM novinky";
  $result=mysql_query($dotaz,$link);
  $pocet=mysql_num_rows($result);
  echo "<p class='nadpis'>Databáze obsahuje celkem: $pocet záznamů.</p>";
  while($polozka=mysql_fetch_array($result)) echo "<p>$polozka[mail]</p>";
  //zadání vstupních hodnot
  $predmet=$HTTP_POST_VARS[predmet];
  $zprava=$HTTP_POST_VARS[novinka];
  $address="$dotaz";
  $subject="Novinky z Smycmaweb";
  $message = "
    <style type='text/css'>
      .text   {
        text-align: left;
        Color: #000066;
	      font-family: verdana, sans-serif;
        font-size: 12px;
        font-weight: bold;
        text-decoration: none;
        }
      .text_c   {
        text-align: left;
        Color: #BC0000;
        font-family: verdana, sans-serif;
        font-size: 12px;
        font-weight: bold;
        text-decoration: none;
        }
    </style>

    <p class='text'>Novinky z Smycmaweb</p>
    <table>
      <tr>
        <td width='120'><p class='text'>Co nového:</p></td>
        <td><p class='text_c'>$predmet</p></td>
      </tr>
      <tr>
        <td width='120'><p class='text'>Zpráva:</p></td>
        <td><p class='text_c'>$novinka</p></td>
      </tr>
    </table>";

  $headers="MIME-Version: 1.0\n";
  $headers.="Content-type: text/html; charset=windows-1250\n";
  $headers.="From: Smycmaweb\n";
  
  mail($address,$subject,$message,$headers);

  echo "<p class='nadpis'>Novinky rozeslány</p>";

Toto je script na kterém to vázne mezi deklarovanými proměnnými je také položka address do které když napíšu pevnou adresu tak všechno šlape jak má ale potřeboval bych tam nějak dostat nějakou proměnou která by brala všechny záznamy ve sloupci tabulky s adresami v databázi...
prosté
$promenna = SELECT * FROM novinky;........ nestaci a nefunguje
prosím o pomoc

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Ad Tvůj script : jak už Ti tady napsali v předchozích odpovědích, proměnnou $address je nutno plnit…
hynajs 25.04.2010 23:03
hynajs
Ranní dodatek : Řádek while($polozka=mysql_fetch_array($dotaz)) opravovat nemusíš, bylo by to sice…
hynajs 26.04.2010 08:02
hynajs
dostal jsem se obět do fáze že to nefunguje ale taky to nehází chybu.... teť bych potřeboval pomoct…
Smycma 26.04.2010 11:34
Smycma
zkoušel jsi ten cyklus while ..... , který navrhnul dan55 ? Ten se zdá opticky v pořádku. I kdyby ta… nový
hynajs 26.04.2010 11:49
hynajs
Pokud to nepůjde, tak to vyzkouším u mě na serveru a pak napíšu, jestli to je chyba scriptu nový
dan55 26.04.2010 12:06
dan55
Tak mi to nedalo, a script jsem vyzkoušel Struktura DB: email (varchar 100 cp1250) a id (int8,autoIn… poslední
dan55 26.04.2010 16:34
dan55

Ad Tvůj script : jak už Ti tady napsali v předchozích odpovědích, proměnnou $address je nutno plnit cyklem. Příkaz

$address="$dotaz";
je opravdu nesmyslný.

Ad oprava dan55 :

nejdřív je nutno vyřešit chybové hlášení o nedefinovaném linku :
polož

$link=mysql_connect($dbhost,$dbusr,$dbpassw);

Ještě radši oprav :

while($polozka=mysql_fetch_array($dotaz))
na
while($polozka=mysql_fetch_array($dotaz,MYSQL_BOTH ))
nejsem si jist, zda se bez tohoto doplnění $polozka["mail"] naplní.

Skript zkus a napiš další případné potíže.

Tak mi to nedalo, a script jsem vyzkoušel
Struktura DB: email (varchar 100 cp1250) a id (int8,autoIncrement,unique)
Tento kód, a vše OK!

<?php
if (isset($_POST["ok"])){
error_reporting(E_ALL);
$dbhost="*****";
$dbusr="*****";
$dbpassw="*****";
$dbname="*****";
mysql_connect($dbhost,$dbusr,$dbpassw);
mysql_select_db($dbname);
$dotaz=mysql_query("SELECT mail FROM novinky");
$pocet=mysql_num_rows($dotaz);
echo "<p class='nadpis'>Databáze obsahuje celkem: ".$pocet." záznamů.</p>";
while($polozka=mysql_fetch_array($dotaz)){ 
$predmet=htmlspecialchars($_REQUEST["predmet"]);
$zprava=htmlspecialchars($_REQUEST["novinka"]);
$subject="Novinky z Smycmaweb";
$message="
<style type='text/css'>
.text {
text-align: left;
Color: #000066;
font-family: verdana, sans-serif;
font-size: 12px;
font-weight: bold;
text-decoration: none;
}
.text_c {
text-align: left;
Color: #BC0000;
font-family: verdana, sans-serif;
font-size: 12px;
font-weight: bold;
text-decoration: none;
}
</style>
<p class='text'>Novinky z Smycmaweb</p>
<table>
<tr>
<td width='120'><p class='text'>Co nového:</p></td>
<td><p class='text_c'>".$predmet."</p></td>
</tr>
<tr>
<td width='120'><p class='text'>Zpráva:</p></td>
<td><p class='text_c'>".$novinka."</p></td>
</tr>
</table>";
$headers="MIME-Version: 1.0\n";
$headers.="Content-type: text/html; charset=windows-1250\n";
$headers.="From: Smycmaweb\n";
if(mail($polozka["mail"],$subject,$message,$headers)){
  echo"<p>Na email <i>".$polozka['mail']." </i> byly odeslány informace o novinkách</p>";
}
}
echo "<p class='nadpis'>Novinky rozeslány</p>";
}

?>
<form method="post">
<input name="predmet" value="Testovací">
<br>
<input name="novinka" value="Novinka">
<input type="submit" value="ok" name="ok">
</form>

Zpět do poradny Odpovědět na původní otázku Nahoru