ورود

نسخه کامل مشاهده نسخه کامل : سوال در مورد ارتباط ریموت با sql



nani_joon
04-01-2012, 13:20
با سلام
من یه تازگی سایتم رو آپلود کردم و برای اولین بار بود
وقتی میخوام با دیتابیس ارتباط برقرار کنم این خطا رو میده :

Warning: mysql_connect() [function.mysql-connect ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])]: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 in /home/nrivandi/public_html/showVote.php on line 13
Lost connection to MySQL server at 'reading initial communication packet', system error: 0

لطفا راهنمایی کنید ممنون میشم.

MAXXX
04-01-2012, 19:49
به نظر شبیه اررور های فایر وال میاد
بهترین راه اینه که با پشتیبانی هاستتون تماس بگیرید واررور رو براشون بفرستید بهتون میگن چیکار کنید

nani_joon
05-01-2012, 08:48
من به پشتیبانی هاست ایمیل زدم این جوابو دادن "اسکریپت مورد نظر با بانک اطلاعاتی ارتباط نداره
تنظیمات اسکریپترا بررسی کنید"
خودم یه تغییراتی تو کد دادم حالا این ارور رو میده :
Host 'IP sitam' is not allowed to connect to this MySQL server

neopersia
05-01-2012, 15:21
شما باید توی سروری که دیتابیس قرار داره ip سروری رو که اسکرپت توش اجار میشه رو آزاد کنید تا بتونه متصل شه
اگر به صورت دستی انجام میدید باید فایل my.cnf آیپی سرور اسکرپت رو اضافه کنید. بعداً هم احتمالاً باید از طریق iptables پورت 3306 رو که مربوط به mysql هست باز کنید تا فایروال اجازه اتصال بده. بعد هم سرور mysql رو ریستارت کنید تا تغییرات اجرا بشه

اما اگر کنترل پنل دارید راحت میتونید از طریق کنترل پنل همین کار ها رو انجام بدید

ضمن اینکه اصلاً چرا میخواید این کار رو انجام بدید؟ ضروریه؟ چون سرعت اجرای اسکرپت احتمالاً خیلی کمتر میشه. بار اضافی روی سروره!

nani_joon
05-01-2012, 16:10
my.cnf رو نمیتونم باز کنم.
چند صفحه از سایتم هست که باید به دیتابیس وصل شه.

این کد php که نوشتم :
mysql_connect("nrivandi.com:3306",$user,$pass) or die(mysql_error());

وقتی به جای nrivandi.com:3306 مینویسم localhost دیگه ارور نمیده ولی قسمت نظرسنجی سایتم یکی در میون درست کار میکنه !

اگه ممکنه یه نگاه به قسمت نظرسنجی سایتم بندازید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

neopersia
05-01-2012, 16:23
خوب دیتابیس شما لوکاله دیگه نیازی به ریموت کانکشن نیست!
اگر مشکلی وجود داره از اسکرپته و باید دیباگ کنید تا مشکل رو پیدا کنید

nani_joon
05-01-2012, 17:35
آخه چرا رو سیستم خودم درست کار میکنه ولی وقتی آپلود کردم مشکل داره.

هر اطلاعاتی که میخوام وارد دیتابیس کنم بار اول هیچی به دیتابیس اضافه نمیشه ، بار دوم میشه!
تا حالا به همچین چیزی برخوردین ؟

چه جوری دیباگ کنم ؟ با dreamweaver نوشتم.

nani_joon
05-01-2012, 17:42
ببخشید میشه آدرس ایمیلتونو بدین ؟

neopersia
05-01-2012, 17:56
آخه چرا رو سیستم خودم درست کار میکنه ولی وقتی آپلود کردم مشکل داره.

هر اطلاعاتی که میخوام وارد دیتابیس کنم بار اول هیچی به دیتابیس اضافه نمیشه ، بار دوم میشه!
تا حالا به همچین چیزی برخوردین ؟

چه جوری دیباگ کنم ؟ با dreamweaver نوشتم.
به احتمال 99 درصد مشکل از سورسه!
مگر اینکه سرور انقدر مشکل داشته باشه که بین دو تا درخواست دچار مشکل بشه و کار نکنه که اینطور که من دیدم بعیده
شما اول چک کنید که الگوریتم ثبت نظرات درست باشه. ببینید شرطی استفاده نکرده باشید که بیخودی جلوی ثبت نظر رو بگیره. بعد ارورها رو هم چک کنید ببینید جایی ارور نده. دیباگ کردن هم اینطور که میگید در لوکال درست کار میکنه یه کم مشکل میشه. بهتره که به صورت دستی متغیرها و اجرا شدن توابع رو توی سورس اکو کنید ببینید همه چی طبق برنامه پیش میره یا نه



ببخشید میشه آدرس ایمیلتونو بدین ؟
اگر سوالی هست همینجا مطرح کنید دارم جواب میدم دیگه :دی

nani_joon
06-01-2012, 09:46
من اونطوری که گفتین دیباگ کردم انگار فرم یکی در میون ارسال میشه.

با این کد مقدار radiobox صفحه قبل رو میریزم تو متغیر choice
choice = $_POST['choice$

تو صفحه بعد که echo میکنم بار اول مثلا سومی رو میزنم مقدار 3 رو نشون میده بار دوم هر چی بزنم همون 3 رو نشون میده ولی اضافه نمیشه دوباره دفعه سوم میشه مثل اول!


$choice = $_POST['choice'];
echo $choice;
//connect to DB
mysql_connect("localhost","nrivandi_n","123456") or die(mysql_error());
mysql_select_db("nrivandi_NR_DB") or die( mysql_error() );



switch($choice){
case 1 : $query="UPDATE tbl_votes SET vote1=vote1+1"; break;
case 2 : $query="UPDATE tbl_votes SET vote2=vote2+1"; break;
case 3 : $query="UPDATE tbl_votes SET vote3=vote3+1"; break;
case 4 : $query="UPDATE tbl_votes SET vote4=vote4+1"; break;
}
$result = mysql_query( $query );

$query2 = "select* from tbl_votes";
$result2 = mysql_query( $query2 ) or die( mysql_error() );
$row = mysql_fetch_row( $result2 );


ادامش داخل تیبل هامه.



---------- Post added at 09:46 AM ---------- Previous post was at 09:44 AM ----------

یه صفحه تست هم ایجاد کردم که اطلاعات رو وارد دیتابیس کنه دقیقا مثل همین رفتار میکنه
یعنی همون یکی در میون میریزه.

neopersia
07-01-2012, 17:21
این کد که گذاشتید مشکلی نداره
به نظر هم میرسه که مشکل سایت رو برطرف کردید

فقط لطفاً در انجمن برای قرار دادن کد از تگها مناسب استافده کنید: ► ► ► راهنما : ارسال پست در انجمن طراحی وب و زیر شاخه های آن ◄ ◄ ◄ ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])