לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 02-12-2009, 21:46
  borbabeten borbabeten אינו מחובר  
 
חבר מתאריך: 17.10.05
הודעות: 161
עזרה עם ajax+php+דרך פעולה(מעוניין לבנות מייל)

שלום לכולם .
זה הולך להיות קצת ארך אז אני מקווה שיש לכם סבלנות .
בניתי טבלה שמכילה הודעות שמשתמשים שולחים לי מהאתר שלי(הצעות , הערות וכו').
אני מעוניין לבנות סוג של מייל פנימי באתר שניתן לגשת אליו רק ע"י סיסמה ולכן בניתי את דף ההתחברות הבא(login.html):














קוד:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> </title> <style type="text/css"> .adg {COLOR:#0066CC; FONT-SIZE: 14px;font-weight:bold;font-family:arial; text-decoration: none; } BODY { margin:0px;padding:0px;background-color:transparent;} </style> </head> <body > <br><br> <form method="POST" action="mail.php"> <table align=center cellpadding=1 cellspacing=0 style="vertical-align:top;width:200px;height:100px;border: 1px solid #26679E;"> <tr> <td align=center> <font class="adg">כניסת מנהל</font> </td> </tr> <tr> <td align=center> <INPUT TYPE="PASSWORD" name="pw" SIZE=20 > </td> </tr> <tr> <td align=center> <input type="submit" value="שלח"> </td> </tr> </table> </form> </body> </html>





















לאחר שהוכנסה סיסמה המידע מועבר לדף mail.php וזהו הדף:














קוד PHP:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<
html>
 
 
<
head>
 
<
title>פישפיק-fishpic.atwebpages.com</title>
 
 
<
style type="text/css">
 
        .
adg {COLOR:#0066CC; FONT-SIZE: 14px;font-weight:bold;font-family:arial; text-decoration: none; } 
        
.piska {COLOR#033763; FONT-SIZE: 15px;font-family:arial; text-decoration: none; }
         
BODY{margin:0px;padding:0px;}
     </
style>
<
SCRIPT type="text/javascript"
 
 
 
var 
xmlhttp;
function 
ajaxFunction(x)
{
alert(x);
var 
x=x
 
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(
xmlhttp.readyState==4)
{
    var 
data=xmlhttp.responseText;
    
alert(data);
 
document.getElementById("divp").innerHTML data;
 
 
}
}
var 
url="deletmail.php";
url += "?id=" encodeURIComponent(x);
url += "&ignoreMe=" Math.random(); // Random string
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
};
 
 
 
        function 
hs(x
         { 
 
         var 
x="tafn"+x
         
if (navigator.appName=='Netscape'
         if (
document.getElementById(x).style.visibility == "hide"
         
document.getElementById(x).style.visibility="show" ;
         else 
         
document.getElementById(x).style.visibility="hide"
         else
         if (
document.getElementById(x).style.display=="none"
         
document.getElementById(x).style.display="block";
         else 
         
document.getElementById(x).style.display="none";
 
        }; 
 
</script> 
 
</head>
 
 
 
 
<body >
<?php
$con
mysql_connect(*****,**********,'***********');
if(!
$con)
{
die(
'Could not connect: ' mysql_error());
}
mysql_select_db("*************"$con);
 
$encoding 'utf-8'
mb_detect_order($encoding); 
mb_internal_encoding($encoding); 
mysql_query("SET NAMES utf8;");
$password=mysql_query("SELECT password FROM mailpassword");
$password=mysql_fetch_array($password);
$password=$password['password'];
$userpassword=$_POST['pw'];
 
if(
$userpassword==$password)
{
$result=mysql_query("SELECT firstname ,id,lastname,email,subject,details FROM mail");
echo 
'<div id="divp" >';
echo 
'<table align=center border=0 style="width:600px;">';
echo 
'<tr><td colspan=2 align=right><font style="COLOR: #26679E; FONT-SIZE: 45px;font-family:arial;font-weight:bold;text-decoration: none;">פישפיק</font><font style="COLOR: #ACACAC; FONT-SIZE: 40px;font-family:arial; text-decoration: none;">דואר</font> </td></tr>';
echo 
'</table>';
echo 
'<table align=center cellspacing=0 cellpadding=0 border=0 style="width:600px;border-left: 1px solid #26679E;border-right: 1px solid #26679E;border-bottom: 1px solid #26679E;">';
while(
$row mysql_fetch_array($result))
{
echo 
'<tr>';
echo 
'<td align=center style="height:25px;border-top:1px solid #26679E;">
<form method="get" action="" onsubmit="ajaxFunction(id.value)">
<input type="hidden" id="id" name="id" value="'
.$row['id'].'"/>
<input type="submit" value="מחק"/>
</form>
</td>
<td onClick="hs('
.$row['id'].')" style="height:25px;border-top:1px solid #26679E;">
<table align=right style="width:100%;">
<tr>
<td align=right>
<font class="adg">'
.$row['email'].'</font>
</td>
<td align=right style="width:100px;">
<font class="adg">'
.$row['subject'].' </font>
</td> <td align=right style="width:140px;">
<font class="adg">'
.$row['firstname'].'&nbsp;'.$row['lastname'].' </font>
</td>
</tr>
</table>
</td>'
;
echo 
'</tr>';
echo 
'<tr><td></td><td><table align=right style="width:100%;"><td></td><td align=right dir="rtl" style="width:400px;"><div id="tafn'.$row['id'].'" style="display:none;"> <p class="piska">'.$row['details']. '</p></div></td> </table></td></tr>';
 
}
echo 
'</table>';
echo 
'</div>';
 
mysql_close($con);
 
}
else
{
echo 
'<br><br>';
echo 
'<table align=center cellpadding=1 cellspacing=0 style="vertical-align:top;width:200px;height:100px;border: 1px solid #26679E;"> '
echo 
'<tr><td align=center> <font> סיסמה שגוייה</font> <a href="login.html" class="adg">נסה שנית</a></td></tr>';
echo 
'</table>';
}
?>
</body> 
 
</html> 





















מה שלמעשה ממבצע דף זה הוא בודק אם הסיסמה שהוזנה נכונה (משווה אותה לסיסמה ב-db) אם נכונה מדפיס את כל המיילים (שורה שורה בדומה למייל של וואלה כאשר יש אפשרות ללחוץ על המייל להרחבה. אם סיסמה שגוייה נותן פלט סיסמה שגוייה עם לינק לדף login.html.
עד פה הכל תקין הבעייה נוצרה כאשר ליד כל שורה יצרתי כפי שניתן לראות form שמכיל כפתור "מחק" המטרה היא שכאשר אני לוחץ על כפתור זה אותה שורה תמחק .כמובן שישנו input מוסתר שמכיל id של השורה בהתאם ל-id בטבלה מעבר לכך אני מעוניין שהשורה תמחק ללא רענון הדף (כאן נכנס השימוש ב-ajax).
ניתן לראות שהטבלה שיצרתי למיילים כתובה בתוך div המטרה שלי הייתה שכאשר תבוצע לחיצה על מחק ישלח id לפונקצייה ajaxFunction פונקצייה זאת קוראת לדף deletmail.php שלמעשה מוחק את השורה (המייל) מהטבלה ובנוסף כותב שוב את הטבלה כדי שבבעזרת ajax נוכל להכניס את הפלט לdiv ללא רענון הדף.
הבעיות שנוצרו:
1.לא מגיע לי לdeletmail.php פשוט מרענן לי את הדף ופולט את הפלט כאילו נכנסתי לדף ללא סיסמה.
(אני מנחש שזה בגלל השיטה של ה-form )
2.נניח שהכל עובד כיצד אני יכול לוודא ששתשים לא יוכלו להגיע לdelete מייל ע"י הכנסת לינק ישיר בשורת בכתובות של הדפדפן.
עכשיו אני יודע שחפרתי,אני יודע שזה ארוך וקשה להבנה, אבל למדתי php וכו' רק לפניי שבוע ואני ממש לא יכול להירדם בלילה עד שאני לא פותר את זה.
במידה ויש למישהו רעיון טוב יותר מהדרך בה ביצעתי את זה על מנת להגיע לאותה תוצאה אני אשמח לשמוע

נערך לאחרונה ע"י borbabeten בתאריך 02-12-2009 בשעה 21:52.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 14:01

הדף נוצר ב 0.14 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר