trimitere email in ziua de nastere

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje:500

trimitere email in ziua de nastere

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
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
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 )

trif Mesaje:500
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
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
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");
}

trif Mesaje:500
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
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
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.

trif Mesaje:500
am facut mai sus o completare la subectul de sus, va uitati la el. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
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");
  }
}

trif Mesaje:500
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]
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
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.

trif Mesaje:500
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
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
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>';
  }
 }
}
?>

Subiecte similare