הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב-mail. (https://hosts.co.il/forums/showthread.php?t=73483)

Jonathan Zeierman 11-04-09 22:55

עזרה ב-mail.
 
שלום לכולם.
אני עושה מערכת לניהול לקוחות, כאשר התאריך של השרת שווה לתאריך הסיום של הלקוח אז הוא צובע את כל השורה של הלקוח באדום ושולח תזכורת לאימייל על חידוש.
אבל נוצרה לי בעיה הוא שולח את המייל אבל הוא שולח אותו מלא פעמים הוא לא מפסיק לשלוח.
האם יש דרך לפתור כזה דבר?
PHP קוד:

$to $row['email'];
$client_name $row['name'];
$client_lname $row['lname'];
$client_package $row['products'];
$client_date $row['finish_date'];
$subject "תזכורת לחידוש מנוי - ventrilo.co.il";
$mail_body "חידוש מנוי";
mail($to$subject$mail_body); 

תודה, יוני.

mlnn 11-04-09 22:59

מן הסתם הבעיה בבדיקה \ לולאה, מה קשור הקוד שהבאת כאן?

Jonathan Zeierman 12-04-09 01:24

טעות שלי, מצטער על האשכול.
לא מיקמתי את הקוד במקום הנכון.
(זה מה שקורה שעובדים כשעייפים:P)

AlmogBaku 12-04-09 01:26

???
כי הוא שולח כל אותו היום?

Jonathan Zeierman 12-04-09 01:40

ציטוט:

נכתב במקור על ידי Baku (פרסם 708149)
???
כי הוא שולח כל אותו היום?

אוקיי הבעיה לא הסתדרה, כל פעם שאני נכנס לדף הוא שולח עוד הפעם.
הנה הקוד:
PHP קוד:

while ($row mysql_fetch_assoc($result))    {
if (
date("d/m/Y") == $row[finish_date])    {
echo <<<HTML
<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="he">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<link href="include/default.css" rel="stylesheet" type="text/css">
</head>
<body>
<span dir="rtl">
<TR bgcolor="red">
<TD></span><center><form method=post><span dir="rtl"><input type='hidden' name='delete' value="
{$row['id']}">
</span><span dir="rtl"><input type="image" src='images/delete.gif' style='vertical-align:middle' alt="מחק לקוח"/></span></form></center>
<span dir="rtl"></TD>
<TD></span><center><form action="" method="post"><span dir="rtl"><input type='hidden' name='edit' value="
{$row['id']}">
</span><span dir="rtl"><input type='image' src='images/buttons/account.gif' style='vertical-align:middle' alt="ערוך לקוח"/></span></form></center>
<span dir="rtl"></TD>
<TD></span><center><form action="" method="post"><span dir="rtl"><input type='hidden' name='mail' value="
{$row['id']}">
</span><span dir="rtl"><input type='image' src='images/buttons/inbox_response.gif' style='vertical-align:middle' alt="שלח תזכורת"/></span></form></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['payment']}</span></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['finish_date']}</span></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['products']}</span></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['email']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['phone']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['city']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['lname']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['name']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['status']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['id']}</span></center><span dir="rtl"></TD>
</TR>
</span>
</body>
</html>
HTML;
$to $row['email'];
$client_name $row['name'];
$client_lname $row['lname'];
$client_package $row['products'];
$client_date $row['finish_date'];
$subject "תזכורת לחידוש מנוי - ventrilo.co.il";
$mail_body "test";
mail($to$subject$mail_body);
    }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else    {
echo <<<HTML
<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="he">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<link href="include/default.css" rel="stylesheet" type="text/css">
</head>
<body>
<span dir="rtl">
<TR>
<TD></span><center><form method=post><span dir="rtl"><input type='hidden' name='delete' value="
{$row['id']}">
</span><span dir="rtl"><input type="image" src='images/delete.gif' style='vertical-align:middle' alt="מחק לקוח"/></span></form></center>
<span dir="rtl"></TD>
<TD></span><center><form action="" method="post"><span dir="rtl"><input type='hidden' name='edit' value="
{$row['id']}">
</span><span dir="rtl"><input type='image' src='images/buttons/account.gif' style='vertical-align:middle' alt="ערוך לקוח"/></span></form></center>
<span dir="rtl"></TD>
<TD></span><center><form action="" method="post"><span dir="rtl"><input type='hidden' name='mail' value="
{$row['id']}">
</span><span dir="rtl"><input type='image' src='images/buttons/inbox_response.gif' style='vertical-align:middle' alt="שלח תזכורת"/></span></form></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['payment']}</span></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['finish_date']}</span></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['products']}</span></center>
<span dir="rtl"></TD>
<td></span><center><span dir="rtl">
{$row['email']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['phone']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['city']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['lname']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['name']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['status']}</span></center>
<span dir="rtl"></TD>
<TD></span><center><span dir="rtl">
{$row['id']}</span></center><span dir="rtl"></TD>
</TR>
</span>
</body>
</html>
HTML;
        }
    } 


אדיר 12-04-09 02:56

תקרא את 2 אלה:
http://sqltutorials.blogspot.com/200...-function.html
http://www.w3schools.com/Sql/func_datediff.asp

ובשביל העבודה עם הזמנים תקרא את זה:
http://www.w3schools.com/sql/sql_dates.asp

intercooler3819 12-04-09 04:25

למה הWHILE נראה כאילו יש לך תוצאה אחת
שנית כל למה אתה מציג בלי לוודא אם יש לך תוצאה תשתמש ב mysql_num_rows()
שלישית למה אתה משתמש באינדקסים במערך בלי מרכאות כלשהם
רביעית תאחסן במסד את התאריכים בתור UNIX TIMESTAMP
חמישית חשבת על מקרה שבו לא תכנס לפאנל ניהול יום אחת תמים ואז התנאי הזה
if (date("d/m/Y") == $row[finish_date]) {
לא יתקיים?
תשתמש בUNIX TIMESTAMP ואז תבדיל באמצעות גדול/קטן ככה שאם עברת את התאריך תשלח
בנוסף תבצע לוג לשליחות אחרת אם תכנס פעמים באותו יום לעמוד הזה ישלחו שתי הודעות וכך הלאה

בהצלחה

ViPeRt 12-04-09 08:26

אתה צריך להכניס תא בטבלה שיקרא לצורך העניין send_e הוא תמיד False
שאתה שולח אימייל תעשה שהוא יהיה True וככה הוא ישלח עוד פעם.

* אל תשכח לעשות שאתה עורך את אותו חשבון התא יחזור להיות False כי אז הוא לא ישלח שוב מייל.

Cyeo 12-04-09 11:37

פשוט מאוד - אתה פשוט צריך קודם כל לבצע בדיקה של "האם כבר שלחתי לו תזכורת". אם לא - לשלוח, אם כן - לא לשלוח שוב. תשתמש במסד נתונים בשביל זה, או במה שבא לך.

psycho 12-04-09 12:34

למה אתה בודק בזמן ההצגה של הדף ולא נניח עם CRONJOB שרץ פעם ביום בשעה קבועה?


כל הזמנים הם GMT +2. הזמן כעת הוא 14:55.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ