خطا اتصال به دیتابیس در سمت سرور

بروز شد ۲ سال ۳ ماه قبل توسط ر مرادی

سلام.بنده برای کانکت شدن به سرور و دیتابیس مجازی از زمپ استفاده کردم و این کدها رو داخلش قرار دادم:

<?php
$server="localhost";
$user="root";
$pass="";
$dbname="bimekade";
$dsn="mysql:host=$server;dbname=$dbname";
try{
      $connect=new PDO($dsn,$user,$pass);
      $connect ->exec ("SET character_set_connection = 'UTF8'");
      $connect ->exec ("SET NAMES 'UTF8'");
}
catch (PDOException $error){
      echo "enable to connect".$error->getMessage();
}

 

همه چی درست کار میکنه.

الان میخوام وارد سرور واقعیش کنم منتها من این اپ رو طبق یک اموزش ساختم که راجع به سرور واقعی چیزی نگفته.

وقتی وارد سرور واقعی میکنم ورود و ثبت نام انجام نمیشه.

توی قسمت

pass

dbname

server

و… چیزی باید عوض کنم؟

اطلاعاتش رو از کجا بیارم؟

بیشتر مدرسین فقط روند عادی و ساده یک کار رو توضیح میدن, منظورم من از امنیت این هست که ورودهای که از کاربر دریافت میکنید رو باید با استفاده از متدهای خاص که برای هر زبان, فریم ورک یا CMS فیلتر کنید تا مبادا کدهای مخربی وارد دیتابیس نشد.

وجود کدهای مخرب در دیتابیس حداقل موارد زیر رو داره:

  • حذف, ویرایش یا افزودن به داده های موجود در دیتابیس بدون دسترسی لازم برای یک کاربر 
  • از دسترس خارج کردن سایت
  • به دست آوردن اطلاعات کاربران یا هک کوکی های کاربران سایت که منجرب به هک شدن خود شخص میشه
  • و موارد دیگه

بزودی دوره کنترل امنیت اطلاعات روی سایت منتشر خواهد شد میتونید شرکت کنید.

افزایش امنیت رو بیشتر توضیح میدید

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

برای پیدا کردن مشکلات باید حتما یا به لینک مورد نظر شما دسترسی داشته باشیم یا اگر خطای داره اون رو ارسال کنید تا بررسی بکنیم.

اما چند احتمال میدم:

  • اطلاعات اتصال به دیتابیس تون درست نباشه
  • به درستی کاربر رو به دیتابیس  وصل نکرده باشید
  • تیبل انتخاب شده وجود نداره یا نامش اشتباه هست
  • کالمن های که انتخاب کردید وجود نداره یا نامش رو درست وارد نکردید

پیشنهاد میکنم به امنیت داده هایی که از سمت کاربر دریافت میکنید شدیدا حساس باشید, در کدهای بالا شما هیچ نکته امنیتی رو رعایت نکردید و با چند حرکت میشه سه نوع حمله روی سایت انجام داد.

موفق باشید

include “connect.php”;
$email=$_POST[“email”];
$pass=$_POST[“pass”];
$query=”SELECT * FROM tbl_user WHERE email=:email AND password=:pass”;
$result=$connect->prepare($query);
$result->bindParam(“:email”,$email);
$result->bindParam(“:pass”,$pass);
$result->execute();
$row=$result->fetch(PDO::FETCH_ASSOC);
if($row==false){
    echo “not exist”;
}else{
    echo $row[“email”];
}
?>

 

با استفاده از این کدها هم میخوام وارد حساب کاربری بشم

مهندس مشکل ارتباط با سرور من از دی ان اس ها بود و با پیام به پشتیبانی سرویس دهنده درست شد.

منتها بازم برنامه من کار نمیکنه.

یعنی وقتی نام کاربری و رمز رو میزنم این سری ارتباط با سرور برقرار میشه ولی چه غلط بزنم نام کاربری رو چه درست هیچ اتفاقی نمیوفته و در هر دو صورت فقط تایمر و دیالوگ من کنسل میشه.

 نیازی نیست خودتون دی ان اس رو دستی ست کنید, با سرویس دهنده ای که هاست رو ازش خریداری کرده اید مکاتبه کنید براتون بررسی میکنند, اگر مقدور هست آدرس دامنه را ارسال کنید تا چک کنم آیا درست هستش یا خیر 

سایت و دامین رو خیلی وقت پیش خریده بودم منتها وقت هاست تموم شده و بعد هفت هشت ماه دوباره تمدید کردم.یعنی تنظیمات دی ان اس بهم ریخته؟

اموزش تنظیم دی ان اس رو هم میگید مهندس

اگر هاست رو جدیدا خریداری کرده باشید همراه با دامنه, باید این مراحل رو دنبال کنید:
1- دامنه ثبت و تایید شده است
2- DNS ها تنظیم شده باشد

من ادرس دامنه ام رو میزنم داخل مرورگر بعلاوه اسم فایل وقتی چیزی باز نمیکنه.

فک کنم مشکل از دامنه یا هاست باشه!

 echo “enable to connect”.$error->getMessage();

شما در این خط به سیستم گفتید که اگر مشکلی وجود داشت اون مشکل رو چاپ کنه لطفا خطای نمایشی روی سیستم را ارسال کنید تا ببینیم مشکل چی هستش, لطفا کدهای جدید رو هم ارسال کنید, 

 

بنده دقیقا همه اینکارایی که گفتید رو انجام دادم.

یوز ایجاد کردم

دیتابیس ایجاد کردم

دیتابیس رو به یوزر وصل کردم

یوز و پس رو هم داخل فایل پی اچ پی تغییر دادم ولی بازم ارتباط برقرار نمیشه!

یک دامنه و یک هاست از ماندگاروب خریدم من

کار دیگه ای هم باید بکنم؟

بعد از اینکه در بخش MySQL® Databases یک کاربر و یک دیتابیس ایجاد کردید, در همان بخش در پایین صفحه یک بخش بنام Add User To Database وجود دارد که میتوانید دیتابیس و کاربر مورد نظر را انتخاب کنید و سپس روی دکمه add بزنید, در صفحه بعدی که باز میشود تمامی گزینه ها را تیک بزنید و ذخیره کنید, کار تمام است و الان اون کاربر به اون دیتابیس دسترسی خواهد داشت.

مقدار server هم نیاز نیست تغییری بدیدهمون localhost باشه.

و اینکه تو قسمت 

server 

 که من لوکال هاست زدم نباید چیزی رو تغییر بدم؟

چجوری باید یوزر ایجاد شده رو به دیتابیس وصل کنیم؟

اگه یه راهنمایی کلی بکنید ممنون میشم

با سلام کاربر گرامی.

در بالا شما اطلاعات اتصال به دیتابیس محلی خودتون رو تغییر ندادید. برای درست کار کردن باید در سمت سرور یک دیتابیس ایجاد و نام آن را در متغیر dbname قرار بدهید و یک یوز هم برای دیتابیسی که ساخته آید ایجاد کنید و نام یوز را در متغیر user و پسورد یوزر را در متغیر pass قرار بدهید.

این نکته را هم فراموش نکنید نیاز است تا یوز ایجاد شده را به دیتابیس وصل کنید.

تمامی موارد بالا از بخش مدیریت دیتابیس به نام MySQL Databases قابل انجام می باشد.

موفق باشید، لطفا پروفایل خودتون رو تکمیل کنید.

ارسال پاسخ

برای وارد کد از تگ pre استفاده کنید.

به تگ شروع attribute کلاس EnlighterJSRAW بدهید.

برای تنظیم زبان کد ها از attribute خاص data-enlighter-language استفاده کنید.

<pre class="EnlighterJSRAW" data-enlighter-language="php">..your codes..</pre>

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

مقالات پیشنهادی

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۱۰۱۱
۰
۲۲ آذر ۱۳۹۹

هوش مصنوعی

هوش مصنوعی یا هوش ماشینی, به هوشمندی نشان داده شده توسط ماشین در شرایط مختلف گفته میشود که مقابل هوش طبیعی در انسان ها قرار دارد که ...


۸۸۳
۰
۱۱ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۱۰۷۰
۰
۲۹ آبان ۱۳۹۹

وردپرس

وردپرس یک سیستم مدیریت محتوای قوی می باشد که با استفاده از آن می توان وب سایت ها و وبلاگ های گوناگونی با هر شرایطی را طراحی کرد چرا که این سیستم و ...


۸۲۱
۰
۱۳ آذر ۱۳۹۹