Pagina 1 din 2

trimitere email in ziua de nastere

Scris: Lun Dec 20, 2010
de trif
salut,
cum fac un script care sa trimita un email de ziua de nastere a unui membru si data lui de nastere este preluata din bd, si sa ii zica astazi este ziua ta. cu stima trif

trimitere email in ziua de nastere

Scris: Lun Dec 20, 2010
de MarPlo
Se preia data din baza de date, doar luna si ziua.
Cu date('j') se obtine ziua curenta, cu date('n') luna curenta.
Se verifica cu cele preluuate din baza de date, daca sunt identice trimite e-mail, cu
mail($to, $subject, $message, $from )

trimitere email in ziua de nastere

Scris: Lun Dec 20, 2010
de trif
am codul acesta pt email. cum il schimb?

Cod: Selectaţi tot

<?
if (isset($_POST['submit']))
{
        $subject = $_POST['subject'];
        $message = $_POST['message'];
        $query="SELECT email FROM members where abonat='2'"; 
        $result=mysql_query($query);
        $num=mysql_num_rows($result);
        $i=0;
        while ($i < $num) 
        {
                $email=mysql_result($result,$i,"email");    
                mail($email, $subject, $message, "From: contact@site.ro");
                echo "E-mail-ul a fost trimis la adresa: " . $email . "<br />";
                $i++;
        }
}
?>
<form name="email" action="<?=$_SERVER['email.php']?>" method="post">
Subiectul:<br />
<input name="subject" type="text" size="50" id="subject"><br /><br /> 
Mesajul:
<br />
<textarea name="message" cols="50" rows="10" id="message">
<br />
<br />
<input type="submit" name="submit" value="Trimite e-mail"> 
</form>
cu stima trif

trimitere email in ziua de nastere

Scris: Lun Dec 20, 2010
de MarPlo
Codul acela trimite niste date din formular.
Trebuie adaugati pasii scrisi mai sus: SELECT pt. preluare email, luna si zi din BD, comparare cu if(luna, zi curente), si daca sunt ca cele din BD, trimiti.
Formula cam asa e:

Cod: Selectaţi tot

$query="SELECT * FROM `tabel` WHERE conditie";
$result=mysql_query($query);
while ($rand = mysql_fetch_assoc($result)) {
  if($rand['luna']==date('n') && $rand['zi']==date('j')) mail($email, $subject, $message, "From: contact@site.ro");
}

trimitere email in ziua de nastere

Scris: Lun Dec 20, 2010
de trif
este o mica problema, in bd colona se numeste data_nasterii si este formata din zz-ll-aaaa nu sunt separate ziua luna si anul in coloane diferite. cum este in scriptul acela.
am facut ceva dar sunt sigur ca nu este chiar ok dar am incercat si uite-te sa vezi daca este bine:

Cod: Selectaţi tot

<?
if (isset($_POST['submit']))
{
$subject = $_POST['subject'];
$message = $_POST['message'];
$data_nasterii = date('j-m');  
$sql1 = "SELECT * FROM `members` WHERE `data_nasterii` REGEXP '^$data_nasterii' ";
$rezultat1 = mysql_query($sql1);
if (mysql_num_rows($rezultat1) == 0) { 
echo 'nu este ziua de nastere a nimanui!';
}
else {
mail($email, $subject, $message, "From: contact@site.ro");
$i=0;
while ($rand = mysql_fetch_array($rezultat1))  {
    echo ' '.$rand['nume'].' '.$rand['prenume'].'<br>';
   ++$i;
  }
}
}
?> 
<form name="email" action="<?=$_SERVER['zile_de_nastere.php']?>" method="post">
Subiectul:<br />
<input name="subject" type="text" size="50" id="subject"><br /><br /> 
Mesajul:
<br />
<textarea name="message" cols="50" rows="10" id="message">
La multi ani! Astazi este ziua de nastere a ta!!
<br />
<br />
<input type="submit" name="submit" value="Trimite e-mail"> 
</form>
asta vreau ca sa se faca indiferent daca acceseaza cineva sitele, si atunci trebuie sa fac o pagina separata? cu stima trif

trimitere email in ziua de nastere

Scris: Lun Dec 20, 2010
de MarPlo
Daca vrei ca script-ul sa fie executat indiferent daca site-ul e accesat. Se face cu Cron Job din CPanel.
Mai multe despre CronJob decat stiu sa spun poti gasi pe net, cautand acel termen.

trimitere email in ziua de nastere

Scris: Mar Dec 21, 2010
de trif
am facut mai sus o completare la subectul de sus, va uitati la el. cu stima trif

trimitere email in ziua de nastere

Scris: Mar Dec 21, 2010
de MarPlo
Daca data nasterii e de forma zz-ll-aaaa, se preia toata si cu explode() se face separarea.

Cod: Selectaţi tot

// ... Qery la MySQL
while ($rand = mysql_fetch_array($result))  {
  $ar_data = explode($rand['data_nasterii']);
  // $ar_data[0] e ziua, $ar_data[1] e luna si $ar_data[2] e anul
  if($ar_data[0]==date('j') && $ar_data[1]==date('n')) {
    mail($email, $subject, $message, "From: contact@site.ro");
  }
}

trimitere email in ziua de nastere

Scris: Mar Dec 21, 2010
de trif
am facut cum mi-ai zis si m-am uitat si sa vad cum se foloseste si cronjob dar cum fac ca sa se activeze automat si sa elimin

Cod: Selectaţi tot

if (isset($_POST['submit']))
si

Cod: Selectaţi tot

<input type="submit" name="submit" value="Trimite e-mail"> 
ca sa nu trebuiasca sa dau apas. aici este tot codul

Cod: Selectaţi tot

[code]<?
if (isset($_POST['submit']))
{
$subject = $_POST['subject'];
$message = $_POST['message'];
$data_nasterii = date('j-m');  
$sql1 = "SELECT * FROM `members` WHERE `data_nasterii` REGEXP '^$data_nasterii' ";
$rezultat1 = mysql_query($sql1);
while ($rand = mysql_fetch_array($result))  {
  $ar_data = explode($rand['data_nasterii']);
  // $ar_data[0] e ziua, $ar_data[1] e luna si $ar_data[2] e anul
  if($ar_data[0]==date('j') && $ar_data[1]==date('n')) {
    mail($email, $subject, $message, "From: contact@site.ro");
  }
}
?>      
<form name="email" action="<?=$_SERVER['zile_de_nastere.php']?>" method="post">
Subiectul:<br />
<input name="subject" type="text" id="subject" value="La multi ani!" size="50">
<br /><br /> 
Mesajul:
<br />
<textarea name="message" cols="50" rows="10" id="message">
Daca doriti sa nu mai primiti aceste stiri va rugam dati click  pe http://www.bisericabiruinta.ro/dezabonare.php 
           Cu stima echipa www.bisericabiruinta.ro</textarea>
<br />
<br />
<input type="submit" name="submit" value="Trimite e-mail"> 
</form>
[/code]

trimitere email in ziua de nastere

Scris: Mar Dec 21, 2010
de MarPlo
La CronJobs nu ma pricep, nu am lucrat cu el, ma depaseste cum se activeaza, dar probabil are setari sa specifici ora activarii, frecventa.
Subiectul si Mesajul ce trebuie trimis le poti scrie ca siruri direct in script, in loc de $_POST si trebuie sters if(...) { si ultima acolada.
Si formularul poate fi sters.

trimitere email in ziua de nastere

Scris: Mie Dec 22, 2010
de trif
mersi,
nu imi mai da nici o eroare dar faza este ca nu stiu de ce nu functioneaza cum trebuie. 2 probleme:
1. teoretic trebuie sa imi afiseze o lista cu cei sarbatoriti atunci cand sunt sarbatoriti iar daca nu trebuie sa imi afiseze un mesaj, dar nu merge. uite codul

Cod: Selectaţi tot

<?php
$email = 'informatica20042005@yahoo.com';
$subject = 'La multi ani';
$message = 'La multi ani! Astazi este ziua ta de nastere. Domnul sa te binecuvinteze! Cu stima www.bisericabiruinta.ro';
$data_nasterii = date('j-m');  
$sql = "SELECT * FROM `members` WHERE `data_nasterii` REGEXP '^$data_nasterii' ";
$rezult = mysql_query($sql);
while ($rand = mysql_fetch_array($rezult))  {
  $ar_data = explode('-', $rand['data_nasterii']);
  // $ar_data[0] e ziua, $ar_data[1] e luna si $ar_data[2] e anul
  if($ar_data[0]==date('j') && $ar_data[1]==date('m')) {
    mail($email, $subject, $message, "From: contact@site.ro");
	$i=0;
while ($rand = mysql_fetch_array($rezult))  {
    echo ' Ziua de nastere este pentru: '.$rand['nume'].' '.$rand['prenume'].'<br>';
   ++$i;
  }
  }
  else  {
echo '<font color="blue">Nu sunt zile de nastere! </font>';
}
}
?>
2. si cum fac ca sa imi ia din bd email-urile care trebuie cum fac variabila $email sa preia din bd nu sa fie declarata asa cum este in cod. cu stima trif

trimitere email in ziua de nastere

Scris: Mie Dec 22, 2010
de MarPlo
Poate asa e mai bine

Cod: Selectaţi tot

<?php
$email = 'informatica20042005@yahoo.com';
$subject = 'La multi ani';
$message = 'La multi ani! Astazi este ziua ta de nastere. Domnul sa te binecuvinteze! Cu stima www.bisericabiruinta.ro';
$data_nasterii = date('j-m'); 
$sql = "SELECT * FROM `members` WHERE `data_nasterii` REGEXP '^$data_nasterii' ";
$rezult = mysql_query($sql);
if (mysql_num_rows($rezult) == 0) {
    echo '<font color="blue">Nu sunt zile de nastere! </font>';
}
else {
 while ($rand = mysql_fetch_array($rezult))  {
  $email = $rand['email'];

  $ar_data = explode('-', $rand['data_nasterii']);
  // $ar_data[0] e ziua, $ar_data[1] e luna si $ar_data[2] e anul
  if($ar_data[0]==date('j') && $ar_data[1]==date('m')) {
	mail($email, $subject, $message, "From: contact@site.ro");
	echo ' Ziua de nastere este pentru: '.$rand['nume'].' '.$rand['prenume'].'<br>';
  }
 }
}
?>