PDA

View Full Version : اجرای چند دستور در یک فرم



teymoorei
جمعه 27 مرداد 1391, 21:38 عصر
سلام دوستان من تازه به php گرویدم . :خجالت:
من می خوام توی یک فرم چند دستور انجام بدم .
یعنی هم حذف کنم هم ذخیره کنم و هم آپدیت کنم .
حالا من action هر فرم رو خالی میزارم که ارسال بشه به صفحه جاری .
اما نمی دونم چرا با هر بار refresh کردن یه رکورد جدید ایجاد میکنه .
لطفا راهنمایی کنید دوستان .
اگه امکانش هست یه نمونه کد برام بزارید .
نمی خوام برای هر دستور به یه صفحه جدید action بدم .
باتشکر

M_TAMMAR
جمعه 27 مرداد 1391, 22:14 عصر
سلام دوست عزیز شما لطف کن اگه ممکن اول کد خودت رو بزار که دوستان راهنمایی کنن.

MMSHFE
شنبه 28 مرداد 1391, 00:05 صبح
دوستمون درست میفرمایند. باید کدتون رو ببینیم تا بفهمیم مشکلش کجاست. ضمناً پیشنهاد میکنم اینجا (http://barnamenevis.org/showthread.php?354470-%D8%A8%D8%B3%D8%AA%D9%86-%DA%A9%D8%AF-%D9%87%D8%A7%DB%8C-php-%D9%BE%D8%B3-%D8%A7%D8%B2-%D8%A7%D8%AA%D9%85%D8%A7%D9%85-%DA%A9%D8%A7%D8%B1&p=1563092&viewfull=1#post1563092) رو هم یه نگاه بندازین.

teymoorei
شنبه 28 مرداد 1391, 00:50 صبح
اینم کد :

<body class="background">

<script language="javascript">
function fill()
{
var p = document.getElementById("txtpass").value;
var pr = document.getElementById("txtrepass").value;
if (p==pr)
{
frmadd.submit();
}
else
{
alert ("رمز عبور با تکرار آن برابر نمی باشد");
}
}
</script>

<div class="layers" align="center"><h3>پنل مدیریت کاربران</h3></div><br /><br />
<div class="layers" align="center"><h4>افزودن کاربر جدید</h4></div><br />
<form name="frmadd" method="post">
<div class="layers" align="center">

<table width="200" border="0" cellpadding="6">
<tr>
<td align="center"><img src="../images/add_female_user.png" width="64" height="64" /></td>
<td align="center"><label>نام کاربری</label>
<input type="text" name="txtuser" id="txtuser" /></td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><label>رمز عبور</label>
<input type="password" name="txtpass" id="txtpass" /></td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><label>تکرار رمز عبور</label>
<input type="password" name="txtrepass" id="txtrepass" /></td>
<td align="center"><input type="button" name="button" id="button" value="ذخیره" onclick="fill();" /></td>
</tr>

</table>

</div>
</form>

<?php
if ((isset($_POST["txt_user_del"]) and (isset($_POST["txt_user_del"]) and (isset($_POST["txt_user_del"])))))
{
$servername ="localhost";
$user="root";
$pass="";
$dbname="mycms";

$pasword = $_POST["txtpass"];
$username = $_POST["txtuser"];

$link = mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$link);
$result = mysql_query("insert into tbl_user_admin (user,pass)value('$username','$pasword')");
mysql_close($link);
}
else
{
echo "";
}
?>


<script language="javascript">
function sendform()
{
var ud = document.getElementById("txt_user_del").value;
var pd = document.getElementById("txt_pass_del").value;

if ((ud=="")||(pd==""))

{
alert("نام کاربری یا رمز عبور را جهت حذف وارد نکرده اید");
}
else
{
frmdelete.submit();
}
}
</script>


<br /><div class="layers" align="center"><h4>حذف کاربر</h3></div><br />
<form name="frmdelete" method="post">
<div class="layers">
<table width="300" border="0" align="center" cellpadding="6">
<tr>
<td align="center"><img src="../images/delete.png" width="64" height="64" /></td>
<td align="center"><label for="txt_user_del">نام کاربری</label>
<input type="text" name="txt_user_del" id="txt_user_del" /></td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><label for="txt_user_del">رمز عبور</label>
<input type="password" name="txt_pass_del" id="txt_pass_del" /></td>
<td align="center">
<input type="button" name="button2" id="button2" value="حذف" onclick="sendform();"/></td>
</tr>
</table>

</div>
</form>
<?php

$servername ="localhost";
$user="root";
$pass="";
$dbname="mycms";

$pasword = $_POST["txt_user_del"];
$username = $_POST["txt_pass_del"];

$link = mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$link);
$result = mysql_query("delete * From tbl_user_admin where user = '$pasword' ans pass = '$username'");
mysql_close($link);
?>
</body>

teymoorei
شنبه 28 مرداد 1391, 16:23 عصر
دوستان لطفا کمک کنید .
کارم گیره

teymoorei
یک شنبه 29 مرداد 1391, 11:53 صبح
واقعا کسی نیست کمک کنه ؟

MMSHFE
یک شنبه 29 مرداد 1391, 12:17 عصر
دوست عزیز، طبق استانداردهای HTML قراردادن بیش از یک فرم در یک صفحه اشتباهه. بهتره یک فرم داشته باشین و همون یک فرم، چند کار رو انجام بده. مثلاً چند دکمه submit داشته باشه با اسامی مختلف و توی صفحه مقصد فرم هم چک کنید ببینید کدوم دکمه submit ارسال شده؟

teymoorei
یک شنبه 29 مرداد 1391, 12:58 عصر
ممنونم از توجه تون .
اما من می حتی اگه یک فرم هم داشته باشم ام action فرم به هیچ جایی نباشه ، باز هم زمان اجرا یک باز اجرا میشه .
میشه برای ایده ای که دادید یه نمونه بزارید ؟
ممنونم میشم .

m-i-l-s-o-n
یک شنبه 29 مرداد 1391, 13:02 عصر
دوتا نکته
1 - چرا چک کردی txt_usr_del وجود داشته باشه بعد txtpass رو گرفتی؟ اینجا رو می گم


if ((isset($_POST["txt_user_del"]) and (isset($_POST["txt_user_del"]) and (isset($_POST["txt_user_del"]))))) { $servername ="localhost"; $user="root"; $pass=""; $dbname="mycms"; $pasword = $_POST["txtpass"]; $username = $_POST["txtuser"];

2 - چزا اون پایین مث بالا چک نکردی که متغیر های پست تعریف شدن یا نه؟

teymoorei
یک شنبه 29 مرداد 1391, 13:26 عصر
میشه یه نمونه برام بزارید ؟

m-i-l-s-o-n
یک شنبه 29 مرداد 1391, 13:34 عصر
جواب منو بده نمونه نداریم :)

آدم با تمرین چیز یاد می گیره شمام که داری همین کارو می کنی نمونه دیگه براچی می خوای.


این کدی که گذاشتی ایراد داره مثلا لازم نیست هر بار که می خوای کوئری بفرستی همونجا به دیتابیش وصل بشی کافیه یک بار و اون بالای صفحه به db وصل بشی و اون پایین close اش کنی

teymoorei
یک شنبه 29 مرداد 1391, 21:49 عصر
سلام
ممنونم که به پست های من توجه می کنید .
اما توضیحات شمارو خوب متوجه نشدم اگه ممکنه لطف کنید و بیشتر برام توضیح بدید .
باتشکر

m-i-l-s-o-n
یک شنبه 29 مرداد 1391, 23:04 عصر
کامنت هایی که نوشتم رو حتما بخون ;)


<?php
// tanzimate mysql balaye safhe va faghat yek bar neveshte shod
$servername ="localhost";
$user="root";
$pass="";
$dbname="mycms";
$link = mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$link);
if(empty($_POST)) // age motoghayere posti nadashtim mohtavaiate safhe ro neshun midim
{
?>
<body class="background">

<script language="javascript">
function fill()
{
var p = document.getElementById("txtpass").value;
var pr = document.getElementById("txtrepass").value;
if (p==pr)
{
frmadd.submit();
}
else
{
alert ("رمز عبور با تکرار آن برابر نمی باشد");
}
}
</script>

<div class="layers" align="center"><h3>پنل مدیریت کاربران</h3></div><br /><br />
<div class="layers" align="center"><h4>افزودن کاربر جدید</h4></div><br />
<form name="frmadd" method="post">
<div class="layers" align="center">

<table width="200" border="0" cellpadding="6">
<tr>
<td align="center"><img src="../images/add_female_user.png" width="64" height="64" /></td>
<td align="center"><label>نام کاربری</label>
<input type="text" name="txtuser" id="txtuser" /></td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><label>رمز عبور</label>
<input type="password" name="txtpass" id="txtpass" /></td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><label>تکرار رمز عبور</label>
<input type="password" name="txtrepass" id="txtrepass" /></td>
<td align="center"><input type="button" name="button" id="button" value="ذخیره" onclick="fill();" /></td>
</tr>

</table>

</div>
</form>

<?php
}
if ((isset($_POST["txtuser"]) && (isset($_POST["txtpass"]) ))) // inja vojud motoghayer haye namrbut ro chek karde budi
{
$pasword = $_POST["txtpass"]; // estefade az motoghayer ha be in shekl baraye kar ba database aslan amn nist.
// darbaraye hamleye "sql injection" va ravesh haye moghabele bahashun hatman tahghigh kon

$username = $_POST["txtuser"];

$result = mysql_query("insert into tbl_user_admin (user,pass) value('$username','$pasword')");
if($result) // behtare natijeye query ro chek koni va age moafaghiat amiz bud be user bgi
{
echo "<p>کاربر با موفقیت اضافه شد.</p>";
}
else
{
echo "<p>متاسفانه مشکلی در اضافه کردن کاربر بوجودآمد.<p>";
}
}


if(empty($_POST))
{
?>

<script language="javascript">
function sendform()
{
var ud = document.getElementById("txt_user_del").value;
var pd = document.getElementById("txt_pass_del").value;

if ((ud=="")||(pd==""))

{
alert("نام کاربری یا رمز عبور را جهت حذف وارد نکرده اید");
}
else
{
frmdelete.submit();
}
}
</script>


<br /><div class="layers" align="center"><h3>حذف کاربر</h3></div><br />
<form name="frmdelete" method="post">
<div class="layers">
<table width="300" border="0" align="center" cellpadding="6">
<tr>
<td align="center"><img src="../images/delete.png" width="64" height="64" /></td>
<td align="center"><label for="txt_user_del">نام کاربری</label>
<input type="text" name="txt_user_del" id="txt_user_del" /></td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><label for="txt_user_del">رمز عبور</label>
<input type="password" name="txt_pass_del" id="txt_pass_del" /></td>
<td align="center">
<input type="button" name="button2" id="button2" value="حذف" onclick="sendform();"/></td>
</tr>
</table>

</div>
</form>
<?php
}
if ((isset($_POST["txt_user_del"]) && (isset($_POST["txt_pass_del"]) )))
{
$pasword = $_POST["txt_user_del"];
$username = $_POST["txt_pass_del"];


$result = mysql_query("delete * From tbl_user_admin where user = '$pasword' ans pass = '$username'");
if($result)
{
echo "<p>کاربر با موفقیت حذف شد.</p>";
}
else
{
echo "<p>متاسفانه مشکلی در حذف کاربر بوجودآمد.<p>";
}
}
?>
</body>
<?php
mysql_close($link);
?>

teymoorei
دوشنبه 30 مرداد 1391, 10:14 صبح
سلام
واقعا ممنونم از توجه تون به مطالب من .
اما یه جایی از کد ها برام کمی گنگ بود .
خط 9 :

if(empty($_POST)) // age motoghayere posti nadashtim mohtavaiate safhe ro neshun midim
{
چرا این شرط ادامه نداره و فقط بررسی کرده اگه خالی بود . بعدش باید چیکار کنه ؟

ضمنا نمی دونم چرا کئوری بخش حذف هم میگه با مشکل مواجه شده .

باتشکر

m-i-l-s-o-n
دوشنبه 30 مرداد 1391, 12:25 عصر
چرا این شرط ادامه نداره و فقط بررسی کرده اگه خالی بود . بعدش باید چیکار کنه ؟

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


ضمنا نمی دونم چرا کئوری بخش حذف هم میگه با مشکل مواجه شده .

فک کنم دستور delete ، * لازم نداره پاکش کن ببین جواب می گیری یا نه

teymoorei
دوشنبه 30 مرداد 1391, 12:37 عصر
سلام
آره این کار رو واسه delete انجام دادم اما بازم کارنکرد .

m-i-l-s-o-n
دوشنبه 30 مرداد 1391, 12:41 عصر
راستی اینجا بی دقتی کردی منم ندیدم.نوشتی یوزر مساوی پسورد پس مساوی یوزر نیم
بجای and هم نوشتی ans
بیشتر دقت کن


$result = mysql_query("delete * From tbl_user_admin where user = '$pasword' ans pass = '$username'");