PDA

View Full Version : مشکل در دستور if در قسمت php



p30online
چهارشنبه 16 مرداد 1392, 17:45 عصر
دوستان چرا وقتی دو تا دکمه در صفحه داریم و نام هر کدام با هم فرق می کند ،چرا اون دستور if که مربوط به این دستور نیست اجرا می شود ؟
بالفرض این دستور نمی خواهم اجرا شود



<?php
if(isset($_POST["sabtenam"]))
{


این دستور می خواهم اجرا شود



if(isset($_POST['nazar']))
{


مشکل کجاست؟در هر قسمت بانک اطلاعاتی را باز و بسته می کنم نکنه اشتباه اینجاست!!!

webtracker
چهارشنبه 16 مرداد 1392, 17:51 عصر
دوتا دکمه تون تو یگ فرم؟

colors
چهارشنبه 16 مرداد 1392, 17:52 عصر
دوستان چرا وقتی دو تا دکمه در صفحه داریم و نام هر کدام با هم فرق می کند ،چرا اون دستور if که مربوط به این دستور نیست اجرا می شود ؟
بالفرش این دستور نمی خواهم اجرا شود



<?php
if(isset($_POST["sabtenam"]))
{


این دستور می خواهم اجرا شود



if(isset($_POST['nazar']))
{


مشکل کجاست؟در هر قسمت بانک اطلاعاتی را باز و بسته می کنم نکنه اشتباه اینجاست!!!

اینای که تو IF چک میکنی اینپوت از نوع submit هستند؟
اگه هستند که نمیشه! یعنی اصلا اطلاعات دکمه های Submit فرستاده نمیشه!

p30online
چهارشنبه 16 مرداد 1392, 18:13 عصر
آره:متفکر:

p30online
چهارشنبه 16 مرداد 1392, 18:14 عصر
دوتا دکمه تون تو یگ فرم؟

نه جدا هست

p30online
چهارشنبه 16 مرداد 1392, 18:15 عصر
اینای که تو IF چک میکنی اینپوت از نوع submit هستند؟
اگه هستند که نمیشه! یعنی اصلا اطلاعات دکمه های Submit فرستاده نمیشه!

آره باید چه کار کنم؟؟؟

Javidhb
چهارشنبه 16 مرداد 1392, 18:15 عصر
اون دو تا دکمه + فرم ها رو هم بزارید....

p30online
چهارشنبه 16 مرداد 1392, 18:21 عصر
این مربوط به قسمت نظرات



<form action="" method="post">
<input checked="checked" type="radio" name="n" value="tarahi kheyli khob ast" /><label> طراحی سایت عالی است!</label><br />
<input type="radio" name="n" value="tarahi site khob ast" /><label>طراحی سایت خوب است!</label><br />
<input type="radio" name="n" value="tarahi site motevaset ast" /><label>طراحی سایت متوسط است!</label><br />
<input type="radio" name="n" value="tarahi site bad ast" /><label>طراحی سایت بد است!</label><br />
<input type="radio" name="n" value="tarahi site kheyli bad ast" /><label>طراحی سایت خیلی بد است!</label><br />
<input style="margin-right:100px" type="submit" name="nazar" value="ثبت" />
</form>

<?php
if(isset($_POST['nazar']))
{
$connect=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("perspolis");

$sql="insert into `nazar` ( `nazar` ) values ('$_POST[n]' )";
if(mysql_query($sql))
echo "نظر شما ثبت شد" ;

mysql_close($connect);
}

?>


این هم مربوط به فرم دیگر



<?php
if(isset($_POST["sabtenam"]))
{
$connect=mysql_connect("localhost","root","")or die(mysql_error);
mysql_query("SET NAMES 'utf8'");
mysql_select_db('perspolis',$connect);

$query="INSERT INTO `sabtenam` (`username`, `password`, `email`, `phone`, `address`) VALUES ('$_POST[username]','$_POST[password]' , '$_POST[email]'
, '$_POST[phone]' , '$_POST[address]')";



mysql_close($connect);
}
?>

<label>پست الکترونیکی:</label><br />
<input placeholder="پست الکترونیکی" required="required" style="width:200px;" type="email" name="email" />
<br />
<label>شماره تماس:</label><br />
<input placeholder="شماره تماس" pattern="[1-9]{10}" style="width:200px;" type="text" name="phone" />
<br />
<label>آدرس:</label><br />
<input placeholder="آدرس" style="width:300px;" type="text" name="address" />
<br />
<input style="margin-right:200px;width:100px;" type="submit" name="sabtenam" value="ثبت" />
</form>


نمی دونم چرا وقتی دکمه فرم پائینی را می زنم بالایی هم اجرا می شود و می گوید n را نمی شناسم ؟من چه باید بنویسم که به فرم بالایی کار نداشته باشد ازش رد شود ؟

qartalonline
چهارشنبه 16 مرداد 1392, 18:27 عصر
خوب شاید به این خاطره که تگ فرم دوم رو باز نکردید.

p30online
چهارشنبه 16 مرداد 1392, 18:31 عصر
خوب شاید به این خاطره که تگ فرم دوم رو باز نکردید.

باز کردم نصفشو نگذاشتم

Javidhb
چهارشنبه 16 مرداد 1392, 18:33 عصر
این کد خودتونه و داره درست کار میکنه....



<?php
if(isset($_POST['nazar']))
{
die('nazar');
$connect=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("perspolis");

$sql="insert into `nazar` ( `nazar` ) values ('$_POST[n]' )";
if(mysql_query($sql))
echo "نظر شما ثبت شد" ;

mysql_close($connect);
}

if(isset($_POST["sabtenam"]))
{
die('sabtenam');
$connect=mysql_connect("localhost","root","")or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_select_db('perspolis',$connect);

$query="INSERT INTO `sabtenam` (`username`, `password`, `email`, `phone`, `address`) VALUES ('$_POST[username]','$_POST[password]' , '$_POST[email]'
, '$_POST[phone]' , '$_POST[address]')";



mysql_close($connect);
}
?>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Untitled</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input checked="checked" type="radio" name="n" value="tarahi kheyli khob ast" /><label> طراحی سایت عالی است!</label>
<input type="radio" name="n" value="tarahi site khob ast" /><label>طراحی سایت خوب است!</label>
<input type="radio" name="n" value="tarahi site motevaset ast" /><label>طراحی سایت متوسط است!</label>
<input type="radio" name="n" value="tarahi site bad ast" /><label>طراحی سایت بد است!</label>
<input type="radio" name="n" value="tarahi site kheyli bad ast" /><label>طراحی سایت خیلی بد است!</label>
<input style="margin-right:100px" type="submit" name="nazar" value="ثبت" />
</form>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>پست الکترونیکی:</label>
<input placeholder="پست الکترونیکی" required="required" style="width:200px;" type="email" name="email" />

<label>شماره تماس:</label>
<input placeholder="شماره تماس" pattern="[1-9]{10}" style="width:200px;" type="text" name="phone" />

<label>آدرس:</label>
<input placeholder="آدرس" style="width:300px;" type="text" name="address" />

<input style="margin-right:200px;width:100px;" type="submit" name="sabtenam" value="ثبت" />
</form>
</body>
</html>

qartalonline
چهارشنبه 16 مرداد 1392, 18:34 عصر
من تست کردم هیچ مشکلی نداره.

p30online
چهارشنبه 16 مرداد 1392, 18:49 عصر
این خطارو میده در صورتی که من روی دکمه ثبت کلیک نکردم

http://www.uploadtak.com/images/e1458_Untitled.png

qartalonline
چهارشنبه 16 مرداد 1392, 18:57 عصر
همه کدتون رو بذارید شاید اشکال از جای دیگه اس.

p30online
چهارشنبه 16 مرداد 1392, 19:00 عصر
زیاده ها


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">


label{
text-indent:20px;
margin-right:30px;
}
input{
border:1px solid #36F;
border-radius:4px;
border:groove;
}
#table
{
border-radius:10px;
border-color:#063;
border:groove
}
#button
{ padding-right:20px;
margin-right:20;
text-align:center;
vertical-align:middle;
background-repeat:no-repeat;
background-image:url(images/butt.png);
width:92px;
height:38px}
#hashye{
border:1px solid #933;
border:groove;
border-radius:10px;

}
</style>
<link href="css/css.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body >
<font color="#CC3300">
<table align="center" width="90%" >
<tr>
<td style="border:none" >
<form action="" method="post">
<input autocomplete="off" name="username" border="0" onfocus="this.value=''" value="نام کاربری" onBlur="if(this.value=='') {this.value = 'نام کاربری' ;}" maxlength="17" type="text" style="
padding-right:10px;
margin-right:20px;
border:none;
background:none;
background-image:url(images/user.png);
background-repeat:no-repeat;
text-indent:40px;
height:50px;
width:180px" />
<input autocomplete="off" name="password" maxlength="17" onfocus="this.value=''" value="رمزورود" onBlur="if(this.value=='') {this.value = 'رمزورود' ;}"
style=" padding-right:10px;
margin-right:20px;
border:none;
background:none;
background-image:url(images/pass.png);
height:50px;
background-repeat:no-repeat;
width:180px; text-indent:40px"
type="password" />
<input type="submit" name="send" value="ورود" />

</form>
<!-------------------------------------->
<?php

if(isset($_POST['send']))
{
$db_link = mysql_connect("localhost","root","") or die("خطا در اتصال به پایگاه داده");
mysql_query("SET NAMES 'utf8'");


mysql_select_db('perspolis', $db_link) or die("خطا در انتخاب پایگاه داده");

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if(empty($username) || empty($password))
{
$error = "نوشتن نام کاربری و گذرواژه الزامی ست.";
printf($error);
}
else
{
$sql = "SELECT * FROM `login` WHERE `username` = '".$username."' AND `password` = '".$password."'";
$result = mysql_query($sql) or die("خطا در انجام درخواست");
$userExist = mysql_num_rows($result);
if($userExist > 0)
{
$_SESSION['login'] = $username;
header("location: manage.php");
}
else
{

printf("نام کاربری یا گذرواژه اشتباه است.");


}
}
}

?>

</td>
</tr>
<!--logo--------------->
<tr>
<td align="left">
<img src="images/logo2.png" />
</td>
</tr>
<!-----------meno link top------>
<tr><td colspan="2">
<table >
<tr>
<br />
<td id="button"><a href="index.php">
<font color="#FFFFFF">صفحه اصلی</font> </a></td>
<td id="button"><a href="modiryat.php">
<font color="#FFFFFF">مدیریت</font> </a></td>
<td id="button"><a href="about.php">
<font color="#FFFFFF">درباره ما</font> </a></td>
<td id="button"><a href="gallery.php">
<font color="#FFFFFF">گالری</font> </a></td>

</tr>
</table>
</td></tr>
<tr><td>
<!-----------tablighat------>
<table id="tablighat" background="images/bgt.jpg">
<tr>
<td width="61" height="61" align="center">
<img src="images/baner.gif" /><img src="images/www.gif" />
</td>
</tr>
</table>
<table>
<br />
<tr>
<td align="center" width="1000px" height="40px" background="images/tabligh.png" style=" padding-top:2px;border-radius:10px; border:thick" >

<b>
<font color="#FFFFFF" >

برای ارتباط با مدیریت <a href="modiryat.php">اینجا</a> را کلیک کنید
</font></b>


</td></tr>
</table>
</td></tr>

<tr><td>
<table border="0px" width="90%" >

<!-----payin--linkha--------------->
<tr>
<td width="25%" >

<table width=300px style="border:thick; border-radius:10px" bgcolor="#FFFFFF">
<tr>
<td bgcolor="#FFFFFF" valign="top">
<div id="rightcol-up"></div><br />
<form action="" method="post">
<input checked="checked" type="radio" name="n" value="tarahi kheyli khob ast" /><label> طراحی سایت عالی است!</label><br />
<input type="radio" name="n" value="tarahi site khob ast" /><label>طراحی سایت خوب است!</label><br />
<input type="radio" name="n" value="tarahi site motevaset ast" /><label>طراحی سایت متوسط است!</label><br />
<input type="radio" name="n" value="tarahi site bad ast" /><label>طراحی سایت بد است!</label><br />
<input type="radio" name="n" value="tarahi site kheyli bad ast" /><label>طراحی سایت خیلی بد است!</label><br />
<input style="margin-right:100px" type="submit" name="nazar" value="ثبت" />
</form>

<?php
if(isset($_POST['nazar']))
{
$connect=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("perspolis");

$sql="insert into `nazar` ( `nazar` ) values ('$_POST[n]' )";
if(mysql_query($sql))
echo "نظر شما ثبت شد" ;

mysql_close($connect);
}

?>
<div id="payan"></div>

<div id="mozoat"></div>


<ul>
<li>
<div ><a href="akhbarlinks/bazikonan.php">اخبار بازیکنان</a></div></li>
<li>
<div ><a href="akhbarlinks/bashgah.php">اخبار باشگاه</a></div></li>
<li>
<div ><a href="akhbarlinks/banovan.php">اخبار بانوان</a></div></li>
<li>
<div ><a href="akhbarlinks/tamrinat.php" >اخبار تمرینات</a></div></li>
<li>
<div ><a href="akhbarlinks/timmeli.php">اخبار تیم ملی</a> </div></li>
<li>
<div ><a href="akhbarlinks/jammelatha.php">اخبار جام ملت های آسیا</a></div></li>
<li>
<div ><a href="akhbarlinks/modiran.php">اخبار مدیران</a></div></li>
<li>
<div ><a href="akhbarlinks/morabiyan.php">اخبار مربیان</a></div></li>
<li>
<div><a href="akhbarlinks/mosabeghat.php">اخبار مسابقات</a></div></li>
</ul>
<div id="payan"></div>
<div id="ozviat"></div>
<div>
برای عضویت در انجمن ونظر دهی ثبت نام کنید
</div>
<div>
<form action="" method="post">
<label>نام کاربری </label>
<input id="ozviattext" autocomplete="off" type="text" name="username" /><br /><br />
<label>رمز ورود</label>
<input id="ozviattext" autocomplete="off" style="margin-right:70px" type="text" name="password" /><br /><br />
<input style="margin-right:100px" type="submit" name="vorod" value="ورود" />

</form>

<?php
if(isset($_POST['vorod']))
{
$db_link = mysql_connect("localhost","root","") or die("خطا در اتصال به پایگاه داده");
mysql_query("SET NAMES 'utf8'");


mysql_select_db('perspolis', $db_link) or die("خطا در انتخاب پایگاه داده");

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if(empty($username) || empty($password))
{
$error = "نوشتن نام کاربری و گذرواژه الزامی ست.";
printf($error);
}
else
{
$sql = "SELECT * FROM `sabtenam` WHERE `username` = '".$username."' AND `password` = '".$password."'";
$result = mysql_query($sql) or die("خطا در انجام درخواست");
$userExist = mysql_num_rows($result);
if($userExist > 0)
{
$_SESSION['sabtenam'] = $username;
header("location: anjoman.php");
}
else
{

printf("نام کاربری یا گذرواژه اشتباه است.");


}
}
}

?>
</div>
<div id="payan"></div>
<div id="tablighatright"></div>
<img style="padding-right:30px" src="images/tabligh1.gif" />
<img src="images/tabligh2.gif" /><br />
<img style="padding-right:30px" src="images/tabligh3.gif" />
<img src="images/tabligh4.gif" />
<br />
<div id="payan"></div>
</td>
</tr>
</table>
</td>
<td width="62%" style="border:thick; border-radius:10px" bgcolor="#FFFFFF">
<table style="margin-right:10px">
<tr><td width="600px">
<font color="#000000">
برای ثبت نام قسمت های زیر را تکمیل نمائید
<form id="hashye" action="" method="post">
<label>نام کاربری:</label><br />
<input autofocus="autofocus" placeholder="نام کاربری" required="required" style="width:180px;" type="text" name="username" />
<br />
<label>رمز ورود:</label><br />
<input placeholder="رمز ورود" required="required" style="width:180px;" type="text" name="password" />
<br />
<label>پست الکترونیکی:</label><br />
<input placeholder="پست الکترونیکی" required="required" style="width:200px;" type="email" name="email" />
<br />
<label>شماره تماس:</label><br />
<input placeholder="شماره تماس" pattern="[1-9]{10}" style="width:200px;" type="text" name="phone" />
<br />
<label>آدرس:</label><br />
<input placeholder="آدرس" style="width:300px;" type="text" name="address" />
<br />
<input style="margin-right:200px;width:100px;" type="submit" name="sabtenam" value="ثبت" />
</form>
<?php
if(isset($_POST["sabtenam"]))
{
$connect=mysql_connect("localhost","root","")or die(mysql_error);
mysql_query("SET NAMES 'utf8'");
mysql_select_db('perspolis',$connect);

$query="INSERT INTO `sabtenam` (`username`, `password`, `email`, `phone`, `address`) VALUES ('$_POST[username]','$_POST[password]' , '$_POST[email]'
, '$_POST[phone]' , '$_POST[address]')";

if(mysql_query($query))
echo "اطلاعات شما با موفقعیت به ثبت رسید و می توانید در انجمن سایت وارد شوید" ;

mysql_close($connect);
}
?>
</font>
</td></tr>
</table>
</td>
</tr>
</table>
</td></tr>
</table>

</font>
</body>
</html>

qartalonline
چهارشنبه 16 مرداد 1392, 19:21 عصر
کد هیچ مشکلی نداره!

safa55
چهارشنبه 16 مرداد 1392, 19:42 عصر
با سلام
در خط 189 از حرف "n" خطا میگیره ، ورودی رو در یک متغیر بریزید بهتره !
منظورم
$_POST[n]

webtracker
چهارشنبه 16 مرداد 1392, 20:08 عصر
یک راحل نه چندان جالب از یک hidden input استقاده کن اگه مقدارش ثبت نام بود بره ثبت نام و اگر دیگری بود بره اون

MinusOne
چهارشنبه 16 مرداد 1392, 20:32 عصر
اگه منظورتون رو درست متوجه شده باشم میتونید از این روش استفاده کنین؛
برای قسمت ثبت نام و نظر به ترتیب تگ فرم رو به صورت زیر کنین:

<form action="?p=nazar" method="post">
<form action="?p=sabtenam" method="post">
بعدش به این شکل عمل کنید.

if(isset($_GET['p']) && $_GET['p'] == 'nazar')
{
$connect=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("perspolis");
$sql="insert into `nazar` ( `nazar` ) values ('$_POST[n]' )";
if(mysql_query($sql))
echo "نظر شما ثبت شد" ;
mysql_close($connect);
}
if(isset($_GET['p']) && $_GET['p'] == 'sabtenam')
{
$connect=mysql_connect("localhost","root","")or die(mysql_error);
mysql_query("SET NAMES 'utf8'");
mysql_select_db('perspolis',$connect);
$query="INSERT INTO `sabtenam` (`username`, `password`, `email`, `phone`, `address`) VALUES ('$_POST[username]','$_POST[password]' , '$_POST[email]', '$_POST[phone]' , '$_POST[address]')";
if(mysql_query($query))
echo "اطلاعات شما با موفقعیت به ثبت رسید و می توانید در انجمن سایت وارد شوید" ;
mysql_close($connect);
}

MinusOne
چهارشنبه 16 مرداد 1392, 20:38 عصر
در ضمن هیچ الزامی نیست که action فرم حتما همون صفحه باشه. میتونید برای هر فرم صفحه ی مجزایی رو به عنوان اکشن در نظر بگیرین. (مثلا submitComment.php و register.php :لبخند:) بعدش با فراغ بال با داده ها کار کنین.

s_salavati2002
پنج شنبه 17 مرداد 1392, 03:19 صبح
مشکل در اینه که وقتی می خوای در داخل رشته از متغیر استفاده کنی میای از " استفاده می کنی که عبارت داخلش parse بشه، ولی اگر دقت کنی متغیر آرایت اینطوری میشه

$_POST[n]
که در اینجا n با 'n' فرق می کنه
پیشنهاد می کنم کدت رو اینطوری بنویسی

$sql="insert into `nazar` ( `nazar` ) values ('".$_POST['n']."' )";
یا اینکه کلا با ' بنویسی

p30online
پنج شنبه 17 مرداد 1392, 12:14 عصر
ممنون از همگی درست شد .