جزاكم الله خيرا اخواني واسف علي التأخير في الرد كنت اذاكر الموضوع
جزاك الله خيرا اخي vbnet فعلا تنويه مهم وتم التعديل . ومعلومات قيمة جدا جدا جزاك الله خيرا
اخي الحبيب oneyemenweb2 جزاك الله خيرا ونفع بك وجعله في موازين حسناتك
بالنسبة لسجل التغير انا لا اريد عمل سجل تغير
واريد فهم بعض الامور وهي
1 - عند كتابة مسار الملف النصي في المصفح يتم عرض عنوانين البريد المخزنة به تفاديت هذه المشكلة بتشفير النص قبل رفعه
بحيث النص قبل التشفير
كود :
{ali.alfoly1@gmail.com}
{ali.alfoly2@gmail.com}
{ali.alfoly3@gmail.com}
عند تشفير النص يوجد به بعض الاحرف التي تتعارض مع طبيعة لغة البرمجة PHP مثل الرمز # فقمت بتحويل النص المشفر الي Asc
بحيث اصبح بعد التعديل الي
كود :
{80 73 82 54 103 72 122 78 113 120 78 54 69 81 114 77 56 85 97 }
{80 73 82 54 103 72 122 78 113 72 122 78 113 120 78 54 69 81 114 77 56 85 97 }
{80 73 82 54 103 120 78 54 69 81 114 77 56 85 97 }
للعلم هناك ملف خاص بعنواين البريد وملف خاص باسماء المستخدمين كل هذا من اجل ضمان عدم تكرار احدهم
2 - الكود الخاص بالارسال
كود :
Public Function Edet_Text_Email(old_email As String, new_email As String) As String
Dim result As String = getHTTP("http://www.sh-ml.net/Edet_Text_Email.php", "old_email=" & old_email & "&new_email=" & new_email)
Select Case result
Case "post_error"
Return "خطاء في الشبكة"
Case "email_change_ok"
Return "تم تغيير البريد بنجاح"
Case "old_not_found"
Return "البريد السابق غير موجود"
Case "server_not_respous"
Return "المخدم لا يستجيب او ان الملف غير قابل للقراءة والكتابة"
Case "input_is_not_email"
Return "المدخلات ليست بريد الكتروني صحيح"
Case "input_empty"
Return "المدخلات فارغة"
End Select
Return "خطاء غير معروف"
End Function
Friend Function getHTTP(szURL As String, szPost As String) As String
fe:
Try
Dim httprequest As HttpWebRequest
Dim httpresponse As HttpWebResponse
Dim bodyreader As StreamReader
Dim bodytext As String = ""
Dim responsestream As Stream
Dim requestStream As Stream
httprequest = DirectCast(WebRequest.Create(szURL), HttpWebRequest)
httprequest.Method = "POST"
httprequest.ContentType = "application/x-www-form-urlencoded"
httprequest.ContentLength = szPost.Length
requestStream = httprequest.GetRequestStream()
requestStream.Write(Encoding.ASCII.GetBytes(szPost), 0, szPost.Length)
requestStream.Close()
httpresponse = DirectCast(httprequest.GetResponse(), HttpWebResponse)
responsestream = httpresponse.GetResponseStream()
bodyreader = New StreamReader(responsestream)
bodytext = bodyreader.ReadToEnd()
Return bodytext
Catch
GoTo fe
End Try
Return "post_error"
End Function
انا كنت استخدم الكود
كود :
Try '- تعديل الاسم في ملف ااسماء
Dim request As WebRequest
request = WebRequest.Create(
"http://www.sh-ml.net/Edet_Text_Names.php?e=" & Me.Name_selct & "&n=" & New_Det_User.nem)
request.GetResponse()
Catch ex As Exception
Me.Text_Err = "خطاء في حفظ الاسم في ملف الاسماء : اعد المحاولة"
Return
End Try
فكان ذلك اسهل بكثير فرجاء توضيح فائدة الكود السابق حتي اعرف الفرق
3 - كود ملف الـ PHP قمت بتعديله بحيث ازلة شرط التحقق من البريد لاني كما وضحت لحدرتك سيصبح نص ASC وليس بريد
واريد من حدرتك تعديله بحيث لا يقوم بتسجيل سجل تغيرات فقط يقوم بالتعديل وجزاك الله خيرا
كود :
<?php
$filename='/path/to/foo.txt';
$filenamelog='/path/to/log.txt';
$email_array=null;$counter_of_email=0;
if((filter_var($_POST['new_email'], FILTER_VALIDATE_EMAIL))&&(filter_var($_POST['old_email'], FILTER_VALIDATE_EMAIL))) {
$email= mysql_real_escape_string($_POST['new_email']);
$old=mysql_real_escape_string($_POST['old_email']);;
if ((file_exists($filename))&& (is_writable ($filename )) && (is_readable ($filename ))) {
$file = fopen($filename, "r+");
while(!feof($file)) {
$email_array[$counter_of_email] =fgets($file);
$counter_of_email++;
}
fclose($file);
if(in_array( $old, $email_array))
{
$key = array_search($old, $email_array);
$key--;
$email_array[$key]=$email;
file_put_contents($filename, "");
$file = fopen($filename, 'w');
foreach ($email_array as $value) {
fwrite($file, $value.'\n');
}
fclose($file);
$da= date("Y-m-d H:i:s");
$fp = fopen($filenamelog, 'w');
fwrite($fp, "email is change from $old to $email at $da \n");
fclose($fp);
echo 'email_change_ok';
}
else {
echo 'old_not_found';
}
}
else {
echo 'server_not_respous';
}
}
?>