الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إرسال معلومات بالعربي ويظهر برموز غريبة

بدأه هدف الشمالي في 29 فبراير 2012 · 12 رد · 924 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الأفاضل

عندي صفحة بها الكود التالي :

<?
echo "
<form action='adddatas4.php' method='post'>
<br>
<input type='text' name='Username'><br>
<br>
<input type='text' name='Password'><br>
<input type='submit' value='Add'>
</form>";
?>

وكما هو واضح هناك مستطيلين لأخذ القيم المدخله من المستخدم ثم إرسالها لصفحة adddatas4.php والتي بها الكود التالي :

<?php
$Username=$_POST['Username'];
$Password=$_POST['Password'];
//open a new connection
$con = mysql_connect('fdb3.atspace.com','','');

//selecting our database first
mysql_select_db('892683_asd2791') or die('prblem');

//requesting MySQL to create a new Database
$sql    = "INSERT INTO users (Username,Password) VALUES ('$Username','$Password');";
$query  =  mysql_query( $sql );

  if($query)
    {
      print 'ok';
    }
  else
    {
      print 'pr';
    }

mysql_close($con);

?>

طبعًا حذفت بعض البيانات الخاصة , ثم يتم إرسال البيانات لقاعدة بيانات

وعندما أرسل بيانات بالعربي تظهر برموز غير مفهومة

مع العلم أن القاعدة والجدول وعامودي الجدول بترميز utf_general_ci

وإذا قمت بإدخال بيانات للجدول من لوحة التحكم بالعربي فإنها تظهر عربي بدون مشكلة .

تم تعديل هذه المشاركة بواسطة هدف الشمالي في 29 فبراير 2012 في 01:02

#2

السلام عليكم ورحمة الله وبركاته

أخى الكريم يجب أن توحد الترميز الذى تستخدمة فى كل صفحات موقعك وقاعدة البيانات الخاصه بك.

أولاً: قم بفتح الصفحات ببرنام ++notepad وقم بالضغط على : Encoding ثم Convert to UTF-8 ثم قم بحفظ الصفحة.

ثانياً: قم بتغيير ترميز الصفحة فى أعلى كود html للصفحة إلى

  charset="utf-8"

لا تنسى أن يكون ترميز قاعدة البيانات بنفس الترميز

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

و كمان خلي بالك و انت بتعمل حفظ للملف encoding utf-8

@My Twitter

[spacing]

EGYPT

[/spacing]

#4
ahmedsaoud31 كتب:

السلام عليكم ورحمة الله وبركاته

أخى الكريم يجب أن توحد الترميز الذى تستخدمة فى كل صفحات موقعك وقاعدة البيانات الخاصه بك.

أولاً: قم بفتح الصفحات ببرنام ++notepad وقم بالضغط على : Encoding ثم Convert to UTF-8 ثم قم بحفظ الصفحة.

ثانياً: قم بتغيير ترميز الصفحة فى أعلى كود html للصفحة إلى

  charset="utf-8"

لا تنسى أن يكون ترميز قاعدة البيانات بنفس الترميز

وعليك السلام ورحمة الله وبركاته

بالنسبة لأولًا : أنا حفظت الصفحة بترميز UTF-8 من خلال seve as لذلك عن فتح الملف بالـ ++notepad والضغط على

Encoding ثم Convert to UTF-8 فإنه لايعطيني إمكانية الحفظ لأن الملف يبدو أنه بهذا الترميز , إلا إذا غيرت الترميز ثم عدت للترميز المذكور

وبالنسبة لثانيًا : فقد عملت كود الصفحة الأولى هكذا :

<html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body>

<form action='adddatas4.php' method='post'>
<br>
<input type='text' name='Username'><br>
<br>
<input type='text' name='Password'><br>
<input type='submit' value='Add'>
</form>
    </body>
</html>

وأما كود الصفحة الثانية عملته هكذا :

<html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$Username=$_POST['Username'];
$Password=$_POST['Password'];
//open a new connection
$con = mysql_connect('fdb3.atspace.com','892683_asd2791','123456');

//selecting our database first
mysql_select_db('892683_asd2791') or die('prblem');

//requesting MySQL to create a new Database
$sql    = "INSERT INTO users (Username,Password) VALUES ('$Username','$Password');";
$query  =  mysql_query( $sql );

  if($query)
    {
      print 'ok';
    }
  else
    {
      print 'pr';
    }

mysql_close($con);

?>
</html>

وبعد كذا جربت إرسال معلومات بالعربي ولازالت المشكلة باقية .

تم تعديل هذه المشاركة بواسطة هدف الشمالي في 29 فبراير 2012 في 14:01

#5

وهذان الملفان لتتأكدو من الإعدادت

mainadd.php

adddatas4.php

تم تعديل هذه المشاركة بواسطة هدف الشمالي في 29 فبراير 2012 في 14:05

#6

أيضًا قمت بتحويل القاعدة والجدول إلى الترميز cp1256_bin وغيرته للترميز utf8_bin ولكن بدون جدوى .

#7

ملاحظة : كل كود في ملف php وليس html

وقمت بالتعديل التالي ولم يجدي :

الصفحة الأولى :

<html http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body>

<form action='adddatas4.php' method='post'>
<br>
<input type='text' name='Username'><br>
<br>
<input type='text' name='Password'><br>
<input type='submit' value='Add'>
</form>
    </body>
</html>

الصفحة الثانية :

<html http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$Username=$_POST['Username'];
$Password=$_POST['Password'];
//open a new connection
$con = mysql_connect('fdb3.atspace.com','892683_asd2791','123456');

//selecting our database first
mysql_select_db('892683_asd2791') or die('prblem');

//requesting MySQL to create a new Database
$sql    = "INSERT INTO users (Username,Password) VALUES ('$Username','$Password');";
$query  =  mysql_query( $sql );

  if($query)
    {
      print 'ok';
    }
  else
    {
      print 'pr';
    }

mysql_close($con);

?>
</html>

تم تعديل هذه المشاركة بواسطة هدف الشمالي في 29 فبراير 2012 في 14:30

#8

1 - عليك التأكد ان الـ collation المستخدم في قاعدة البيانات هو utf_general_ci

2 - عند فتح الاتصال بقاعدة البيانات ادخل الامر

mysql_query("SET NAMES 'utf8'");

3 - استخدم سطر الـ HTML التالي عند عرض الصفحة:

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title></title>
	</head>

بالتوفيق ...

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#9

تأكدت من collation

وعدلت الكود كالتالي :

<html http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$Username=$_POST['Username'];
$Password=$_POST['Password'];
//open a new connection
$con = mysql_connect('fdb3.atspace.com','892683_asd2791','123456');
mysql_query("SET NAMES 'utf8'");

//selecting our database first
mysql_select_db('892683_asd2791') or die('prblem');


//requesting MySQL to create a new Database
$sql    = "INSERT INTO users (Username,Password) VALUES ('$Username','$Password');";
$query  =  mysql_query( $sql );

  if($query)
    {
      print 'ok';
    }
  else
    {
      print 'pr';
    }

mysql_close($con);

?>
</html>

والنتيجة يتم إضافة صف في الجدول ولكن فارغ ,

#10

اممم .. حاول طباعة محتوى المتغيرات $Username و $Password على الشاشة قبل الاضافة .. لعل الاشكال من المتغيرات نفسها !!! (تحتاج البرمجة نفس طويل :))

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#11

أظني وجدت السبب ولكن لاأدري مالحل ,

لما أرفع ملف php في موقع الاستضافة ثم أقوم بتحريره ووضع حروف عربية في متغير هكذا :

13305417321.png

لما أقوم بالضغط على Seve File وذلك لحفظ الملف يحصل التالي :

13305417322.png

وأظن حل هذه المشكلة أعلاه بإذن الله سيحل مشكلتي , مع العلم بأني حفظت الملف بترميز UTF-8 من خلال برنامج الـ notepad قبل رفعه إلى الإستضافة .

#12
هدف الشمالي كتب:

أظني وجدت السبب ولكن لاأدري مالحل ,

لما أرفع ملف php في موقع الاستضافة ثم أقوم بتحريره ووضع حروف عربية في متغير هكذا :

13305417321.png

لما أقوم بالضغط على Seve File وذلك لحفظ الملف يحصل التالي :

13305417322.png

وأظن حل هذه المشكلة أعلاه بإذن الله سيحل مشكلتي , مع العلم بأني حفظت الملف بترميز UTF-8 من خلال برنامج الـ notepad قبل رفعه إلى الإستضافة .

أجريت محاولة على استضافة عربية وليس فيها مشكلة تغيير الحروف العربية بعد عملية الحفظ في ملفات php , بمعنى لما أحفظ حرف ب مثلاً فإنه لايتغير لازالت المشكلة على حالها في القاعدة , والله المستعان .

#13

يمكنك أن تجد عددا من التلميحات فيما يخص مشاكل التعامل مع اللغة العربية وكيفية ضبطها وتصحيحها بشكل سليم على الرابط التالي:

http://www.ar-php.org/faq-php-arabic.html

مواضيع مشابهة