PDA

View Full Version : سوال: مشکل در اتصال و ورود اطلاعات به پایگاه داده



delphiprog3000
سه شنبه 24 اردیبهشت 1392, 08:05 صبح
با سلام به دوستان و اساتید محترم

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

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

عناصر موجود در صفحه :


<form id="form3" name="form3" method="post" action="index.php" >
<label for="name">نام و نام خانوادگی</label>
<input type="text" id="name" name="name" dir="rtl">

<label for="phone">شماره تماس</label>
<input type="text" id="phone" name="phone">

<label for="email">پست الکترونیکی</label>
<input type="text" id="email" name="email" >

<label for="website">آدرس وب سایت</label>
<input type="text" id="website" name="website">

<label for="comments">متن</label>
<textarea id="comments" name="comments" rows="3" cols="30" dir="rtl"></textarea>

<input name="btn_submit" type="submit" id="btn_submit"
onclick="notEmpty(document.getElementById('name'), 'لطفاًً مقدار نام را وارد نمایید')
notEmpty(document.getElementById('phone'), 'لطفاًً مقدار شماره تماس را وارد نمایید')
notEmpty(document.getElementById('email'), 'لطفاًً مقدار پست الکترونیکی را وارد نمایید')
notEmpty(document.getElementById('website'), 'لطفاًً مقدار آدرس وب سایت را وارد نمایید')
notEmpty(document.getElementById('comments'), 'لطفاًً مقدار متن را وارد نمایید')
emailValidator(document.getElementById('req7'), 'لطفاً پست الکترونیکی را به صورت ایمیل وارد نمایید')
isAlphabet(document.getElementById('name'), 'لطفاً مقدار نام را فقط حروف وارد نمایید')

" value="ثبت" />

<input name="btn_cancel" type="submit" id="btn_cancel" value="انصراف" />
</form>


کد php مربوط به اتصال و ورود اطلاعات :



<?php
if ($_POST[btn_submit] != ""){

$name=$_POST[name];
$phone=$_POST[phone];
$email=$_POST[email];
$website=$_POST[website];
$comments=$_POST[comments];



$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("signup", $con);
$cc=mysql_query("SET NAMES 'utf8'");
mysql_set_charset('utf8',$link_id);
//$result = mysql_query ("select count(name) from contact WHERE mellicode='$mellicode' ");
//$count1 = mysql_fetch_array($result);

$save_information= mysql_query("INSERT INTO signup (name,phone,email,website,comments)
VALUES
('$name','$phone','$email','$website','$comments')")
or die (mysql_error());

}
?>

<?php
if ($_POST[btn_submit] != ""){
echo "سلام دوستان";
echo "سلام دوستان";
}
?>


توضیحات : ابتدا بنده به کد شک کردم اما هرچقدر که دقت کردم دیدم کد مشکل نداره و مطابق روال است.حتی کد پایین که echo میباشد اجرا می شود. اما به نظرم به دیتابیس کانکت نمیشود.

سوال : آیا مربوط به Mysql نمیباشد و تعریف یوزر برای این پایگاه داده یا میتوان با همان Localhost و یوزر root اتصال برقرار شود.

بنده هرچه تلاش کردم حتی با root نیز ارتباطم برقرار نشد.و پس از زدن دکمه Submit تنها صفحه request میشود و هیچ نتیجه ای در پایگاه داده ذخیره نمی گردد.

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

با تشکر........

MMSHFE
سه شنبه 24 اردیبهشت 1392, 08:44 صبح
اگه روی هاست کار میکنید، باید از نام کاربری مخصوصی که تعریف کردین استفاده کنید و کاربر root در اختیار شما قرار داده نمیشه (بخاطر مسائل امنیتی). این کد رو تست کنید و ببینید چه خطایی دریافت میکنید:


<?php
if (isset($_POST['btn_submit'])) {
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$website = $_POST['website'];
$comments = $_POST['comments'];
$con = mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('signup') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
mysql_query("
INSERT INTO `signup` (`name`,`phone`,`email`,`website`,`comments`)
VALUES ('{$name}','{$phone}','{$email}','{$website}','{$c omments}')
");
if (mysql_affected_rows() <= 0) {
echo mysql_error();
}
}
?>

delphiprog3000
سه شنبه 24 اردیبهشت 1392, 08:56 صبح
اگه روی هاست کار میکنید، باید از نام کاربری مخصوصی که تعریف کردین استفاده کنید و کاربر root در اختیار شما قرار داده نمیشه (بخاطر مسائل امنیتی). این کد رو تست کنید و ببینید چه خطایی دریافت میکنید:


<?php
if (isset($_POST['btn_submit']) {
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$website = $_POST['website'];
$comments = $_POST['comments'];
$con = mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('signup') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
mysql_query("
INSERT INTO `signup` (`name`,`phone`,`email`,`website`,`comments`)
VALUES ('{$name}','{$phone}','{$email}','{$website}','{$c omments}')
");
if (mysql_affected_rows() <= 0) {
echo mysql_error();
}
}
?>



این کد رو قرار دادم جای کد قبلی این پیغام رو داد :

Parse error: syntax error, unexpected '{' in D:\wamp\www\1\index.php on line 274

فرزند کوروش
سه شنبه 24 اردیبهشت 1392, 09:23 صبح
با اجازه جناب شهرکی ، کد اصلاح شد. دوست گرامی این رو تست کنید

<?php
if (isset($_POST['btn_submit'])) {
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$website = $_POST['website'];
$comments = $_POST['comments'];
$con = mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('signup') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
mysql_query("INSERT INTO `signup`
(`name`,`phone`,`email`,`website`,`comments`)
VALUES ('{$name}','{$phone}','{$email}','{$website}','{$c omments}')
");
if (mysql_affected_rows() <= 0) {
echo mysql_error();
}
}
?>

MMSHFE
سه شنبه 24 اردیبهشت 1392, 11:05 صبح
این کد رو قرار دادم جای کد قبلی این پیغام رو داد :

Parse error: syntax error, unexpected '{' in D:\wamp\www\1\index.php on line 274
دوست عزیز، دیگه اصلاح کردن یک پرانتز که اشتباهاً جا افتاده بوده که کار مشکلی نیست! متن پیغام خطا رو بخونید: میگه انتظار } توی خط 274 نداشته. ببینید چرا این خطا رو داده و کجای کد مشکل داشته. همه چیز که نباید آماده باشه :لبخندساده:

mahmod2000
سه شنبه 24 اردیبهشت 1392, 11:42 صبح
اگر اون کد هم جواب نداد از این استفاده کنید:


<?php
if (isset($_POST['btn_submit'])) {
$name = isset($_POST['name']) ? $_POST['name'] :'';
$phone = isset($_POST['phone']) ? $_POST['phone'] :'';
$email = isset($_POST['email']) ? $_POST['email'] :'';
$website = isset($_POST['website']) ? $_POST['website'] : '';
$comments = isset($_POST['comments'])? $_POST['comments'] : '';
$con = mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('signup') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
mysql_query('INSERT INTO `signup`
(`name`,`phone`,`email`,`website`,`comments`)
VALUES
(
"'.$name.'",
"'.$phone.'",
"'.$email.'",
"'.$website.'",
"'.$comments.'"
)
');
if (mysql_affected_rows() <= 0) {
echo mysql_error();
}
}
?>

delphiprog3000
سه شنبه 24 اردیبهشت 1392, 12:20 عصر
با تشکر از توجه اساتید گرامی. بله اون ارور بخاطر ( بود که میباشد بعد از isset بگذارم.

بنده این کد رو قرار دادم و در عین ناباوری مشکل هنوز باقیست. هیچ دیتایی در پایگاه داده ذخیره نشد ...؟
به نظر شما ایراد از چی میتونه باشه.دیتابیس بنده test و جدول بنده signup می باشد. در ضمن عکسی هم از یوزرهای دیتابیس هم قرار میدم تا مورد نظر شما باشه . با تشکر


<?php
if (isset($_POST['btn_submit'])) {
$name = isset($_POST['name']) ? $_POST['name'] :'';
$phone = isset($_POST['phone']) ? $_POST['phone'] :'';
$email = isset($_POST['email']) ? $_POST['email'] :'';
$website = isset($_POST['website']) ? $_POST['website'] : '';
$comments = isset($_POST['comments'])? $_POST['comments'] : '';
$con = mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('test') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
mysql_query('INSERT INTO `signup`
(`name`,`phone`,`email`,`website`,`comments`)
VALUES
(
"'.$name.'",
"'.$phone.'",
"'.$email.'",
"'.$website.'",
"'.$comments.'"
)
');
if (mysql_affected_rows() <= 0) {
echo mysql_error();
}
}
?>



اینم عکس از محیط Mysql و یوزرهاش:
104180http://barnamenevis.org/images/misc/pencil.png

MMSHFE
سه شنبه 24 اردیبهشت 1392, 13:36 عصر
چه خطایی دریافت کردین؟

mahmod2000
سه شنبه 24 اردیبهشت 1392, 15:47 عصر
شما کد کاملتونو با Sql بزارید پس که بررسی بشه

الان نباید مشکلی باشه به نظرم

delphiprog3000
چهارشنبه 25 اردیبهشت 1392, 11:54 صبح
با سلام به دوستان عزیز.

پیغام خطا اصلا نمیده.هیچ اتفاقی هم نمیوفته یعنی اطلاعات درج نمیشن.

دوست عزیزم تمام چیزایی که می باست بزارم گذاشتم.هم کد رو گذاشتم هم عکس از محیط پایگاه داده به همراه یوزرهایی که ساختم.

برام عجیبه آیا تا به حال اینجور شده که بعد از زدن دکمه سابمیت هیچ اتفاقی نیوفته .در صورتی که در رویداد onclikesh کدهای جاوا که نوشتم کار میکنه.و حتی یه کد دیگه از php هم که نوشتم کار میکنه اما عجیبه که این کد رو که برای ذخیره اطلاعات هست رو میزارم کار نمیکنه و ......

dousti_design
چهارشنبه 25 اردیبهشت 1392, 21:50 عصر
با اجازه دوستان متخصص عزیز
این کد رو تست کنید:


error_reporting("E_ALL");
$con = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_query('USE `test`') or die(mysql_error());
mysql_query("INSERT INTO `signup` (`name`,`phone`,`email`,`website`,`comments`)VALUE S('a','021','b','c','d')") or die(mysql_error());

ببینید اروری میده؟
اگه نمیده اینو بجای خط آخر تست کنید ببینید بازم ارور نمیده؟


mysql_query("adgwrg ") or die(mysql_error());

xcodex
چهارشنبه 25 اردیبهشت 1392, 22:32 عصر
دوست عزیز دستی داخل mysql اطلاعات وارد کنید بعد تلاش کنید ببینید میتونید با select اطلاعات رو نشون بدید تا ببینید connection برقرار میشه

delphiprog3000
شنبه 28 اردیبهشت 1392, 10:01 صبح
با اجازه دوستان متخصص عزیز
این کد رو تست کنید:


error_reporting("E_ALL");
$con = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_query('USE `test`') or die(mysql_error());
mysql_query("INSERT INTO `signup` (`name`,`phone`,`email`,`website`,`comments`)VALUE S('a','021','b','c','d')") or die(mysql_error());

ببینید اروری میده؟
اگه نمیده اینو بجای خط آخر تست کنید ببینید بازم ارور نمیده؟


mysql_query("adgwrg ") or die(mysql_error());


با سلام دوست من دستور شمارو اجرا کردم اما نه کد اول اخطار داد و نه کد دوم. نظرتون چیه چرا اینجور شده مشکل که از wamp نیست.
کد php پاینی که اجرا میشه موندم چرا اینجور

لطفا بازم راه کار بدید با تشکر.

delphiprog3000
دوشنبه 30 اردیبهشت 1392, 08:17 صبح
با سلام. پس از چندی کلنجار با wamp و نصب و پاک کردن قسمتی که سوال امنیتی میپرسه.روی unblock قرارش دادم. و فایروال ویندوز رو خاموش کردم در عین ناباوری دیتا در Mysql درج شد.

بازم از توجه دوستان و اساتید که بنده رو همراهی کردن سپاس گذارم.