PDA

View Full Version : سوال: مشکل در submit شدن فرم خالی؟



mokhtasatxyz
دوشنبه 05 خرداد 1393, 11:42 صبح
سلام
در سایت من اگر هیچگدام از فیلد ها را وارد نکنیم و دکمه submit را انتخاب نمایید صفحه خراب می شود چکار کنم تا بعد از submit شدن فرم و رفتن به فایل دستورات php مربوطه سایت خراب نشده و بجای ان ،پیغامی نمایش داده شده و سپس به همان فرم اولیه ورود اطلاعات باز گردد؟

من در فایل php یک متغییر تعریف نموده ام که اگر هر کدام از فیلد ها وارد نشده بود یا معتبر نباشند مقدار این فیلد تغییر می کند و در زمان ثبت داده ها در db استفاده از کوئری insert اگر مقدار این فیلد صحیح بود ثبت انجام می گیرد. ولی وقتی فرم را بدون وارد نمودن فیلد ها ارسال می کنم صفحه به همان ادرسی که کد های php در ان قرار دارد ارجاع داده می شود ولی به سرعت سایت خراب شده و مثل اینکه اصلا ان متغییر وجود ندارد و برسی نمی شود.چکار کنم و ایا راه بهتری سراغ دارید برای حل مشکل ارسال خالی یا ناقص فرم؟
ممنون

فرزند کوروش
دوشنبه 05 خرداد 1393, 12:05 عصر
یعنی چی سایت خراب شده؟!! دوست گرامی سورس قرار برده تا بشه راهنمایی کرد

mokhtasatxyz
دوشنبه 05 خرداد 1393, 12:14 عصر
این هم سورس:
119513
و
یا http://www.karyabiatinegar.ir/reg_kj_frm.php

فرزند کوروش
دوشنبه 05 خرداد 1393, 13:59 عصر
نیاز نیس کل سورس رو بدی فقط تیکه کدی که روش مشکل داری همینجا ارسال کن

mokhtasatxyz
سه شنبه 06 خرداد 1393, 14:00 عصر
مشکل اینجاست که دقیقا نمیدانم مشکل کد ها از کجاست
به نظر خودم کد ها از نظر منطقی درست است ولی آنطور که باید عمل کند ،نمی کند
قسمتی که باید مشکل از ان باشد راخلاصه شده با توضیحات می گویم
کامل کد ها را که قبلا گذاشته ام



if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form110"))
{
$valid=1;//متغییری برای تست اعتبارسنجی و خالی نبودن فیلد های اجباری
if(strlen($_POST['us'])>0)
$a=/*$qqq->filter_inputs*/($_POST['us']);
else $valid=-1;

if((strlen($_POST['ps'])>0)&&(strlen($_POST['ps1'])>0)&&($_POST['ps']==$_POST['ps1']))
$b=/*$qqq->filter_inputs*/($_POST['ps']);
else $valid=-1;


...
...
...
...


if(is_numeric($_POST['tel_m']))
$e1=/*$qqq->filter_inputs*/($_POST['tel_m']);
else $valid=-1;

if(strlen($_POST['rabet'])>0)
$f1=/*$qqq->filter_inputs*/($_POST['rabet']);
else $valid=-1;

if($valid==1)//برسی مقدار متغییر که در صورت 1 بودم مقدار این متغییر مقادیر به کوئری insert ارسال می گردند
{

//کوئری insert:
$insertSQL = sprintf("INSERT INTO karj (us_kj, ps_kj, name_kj, family_kj, sex_kj, father_name_kj, num_meli_kj, date_tavalod_kj, mahal_tavalod_kj, din_kj, date_esarat_kj, date_jang_kj, janbazi_kj, nasab_isar_group_kj, mizan_naghs_kj, taahol_kj, num_farzand_kj, takafol_kj, khedmat_kj, end_tahsilat_kj, r_g_m_tahsil_kj, maharatha_kj, maharat_nam_kj, driver_kj, addres_kj, code_posti_kj, tel_s_kj, tel_m_kj, rabet_kj, date_add_edit) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($a, "text"),
GetSQLValueString($b, "text"),
GetSQLValueString($c, "text"),
GetSQLValueString($d, "text"),
GetSQLValueString($f, "text"),
GetSQLValueString($e, "text"),
GetSQLValueString($g, "text"),
GetSQLValueString($h, "text"),
GetSQLValueString($i, "text"),
GetSQLValueString($j, "text"),
GetSQLValueString($k, "int"),
GetSQLValueString($l, "int"),
GetSQLValueString($m, "text"),
GetSQLValueString($n, "text"),
GetSQLValueString($o, "text"),
GetSQLValueString($p, "text"),
GetSQLValueString($q, "int"),
GetSQLValueString($r, "text"),
GetSQLValueString($s, "text"),
GetSQLValueString($t, "text"),
GetSQLValueString($u, "text"),
GetSQLValueString($z, "text"),
GetSQLValueString($z1, "text"),
GetSQLValueString($a1, "text"),
GetSQLValueString($b1, "text"),
GetSQLValueString($c1, "text"),
GetSQLValueString($d1, "text"),
GetSQLValueString($e1, "text"),
GetSQLValueString($f1, "text"),
GetSQLValueString(mktime(), "text"));
mysql_select_db($database_ati_db_connection, $ati_db_connection);
$Result1 = mysql_query($insertSQL, $ati_db_connection) or die(mysql_error());

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ذخیره داده ها در جدول zabanha_kj در صورت موفقیت در ثبت داده ها در کوئری insert قبل و داشتن اشنایی با زبان خارجی
if((isset($Result1))&&(isset($lh))&&($lh=='1'))
{
if(isset($lh1))
{
unset($Result1);
$insertSQL= sprintf("INSERT INTO zabanha_kj (name_zab, lev_lern_zab, meli_code_kj)VALUES(%s, %s, %s)",GetSQLValueString($v1, "text"),GetSQLValueString($w1, "text"),GetSQLValueString($g, "text"));
mysql_select_db($database_atineg_db_conn, $atineg_db_conn);
$Result1 = mysql_query($insertSQL, $atineg_db_conn) or die(mysql_error());
}
if((isset($Result1))&&(isset($lh2)))
{
unset($Result1);
$insertSQL= sprintf("INSERT INTO zabanha_kj (name_zab, lev_lern_zab, meli_code_kj)VALUES(%s, %s, %s)",GetSQLValueString($v2, "text"),GetSQLValueString($w2, "text"),GetSQLValueString($g, "text"));
mysql_select_db($database_atineg_db_conn, $atineg_db_conn);
$Result1 = mysql_query($insertSQL, $atineg_db_conn) or die(mysql_error());
}
elseif((isset($Result1))&&(isset($lh3)))
{
unset($Result1);
$insertSQL= sprintf("INSERT INTO zabanha_kj (name_zab, lev_lern_zab, meli_code_kj)VALUES(%s, %s, %s)",GetSQLValueString($v3, "text"),GetSQLValueString($w3, "text"),GetSQLValueString($g, "text"));
mysql_select_db($database_atineg_db_conn, $atineg_db_conn);
$Result1 = mysql_query($insertSQL, $atineg_db_conn) or die(mysql_error());
}
}
if(isset($Result1))
{
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// ارجاء کاربر به index در صورت موفقیت در ثبت داده ها
?>
<meta http-equiv="refresh" content="0;url=index.php">
<?php
}
}
else
{
// ارجاء کاربر به reg_kj_frm در صورت عدم موفقیت در ثبت داده ها
?>

<meta http-equiv="refresh" content="0;url=reg_kj_frm.php">
<?php

}
}

mokhtasatxyz
چهارشنبه 07 خرداد 1393, 08:40 صبح
یعنی یک نفر هم از استاتید وجود ندارد که بفهمه مشکل از کجاست:افسرده:
پس این همه کاربر دائمی توی این انجمن چکار می کنند؟:عصبانی:

omidabedi
چهارشنبه 07 خرداد 1393, 09:25 صبح
کدهاتونو نخوندم اما میتونه مشکل از درست کنترل نکردن اطلاعات و if ها و خطایابی باشه
برنامه کاریو انجام میده که خودتون خواستید

یه چیز دیگه ای که به چشمم خورد meta tag refresh بود شاید مشکل از اینا باشه

بجای اینا بزارید رشته ای رو چاپ کنه تا بهتر متوجه بشید