PDA

View Full Version : سوال: سوالات یک مبتدی



tom1987
دوشنبه 17 خرداد 1389, 12:39 عصر
سلام؛
سوالی داشتم که کمی گیجم کرده:
درحال آموختن PHP هستم، و برای خود مثالی زدم، فرمی ساختم با HTML و خواستم مقادیر را با $_REQUEST فراخوانی کنم، کمی هم عبارت شرطی برایش ساختم.
حال میخواهم تو عبارات شرطی (IF) بگویم اگر ایمیل و Comment خالی باشد (برابر 0) برای کاربر پیغام خطایی را چاپ کن. میخواهم طی یک فرمان IF این کار را انجام دهم به صورت زیر:
فرم من:



<!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" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="author" content="TOM" />

<title>Contact Form</title>
</head>
<body>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<form action="form1.php" method="send">
<center>
<div class="style1">
<span class="style2">Name: </span>
<input class="style2" name="name" type="text"><span class="style2">
Subject:&nbsp;&nbsp;&nbsp;&nbsp; </span>
<input class="style2" name="subject" type="text"><br class="style2">
<span class="style2">Email: </span>
<input class="style2" name="email" type="text"><span class="style2">
Website:&nbsp;&nbsp;&nbsp; </span>
<input class="style2" name="website" type="text"><br><span class="style2">
Comment: <textarea name="comment" style="width: 314px; height: 97px"></textarea><br>
Gender:&nbsp;&nbsp;
<input checked="checked" name="gender" type="radio" style="width: 20px" value="M"/>Man&nbsp;&nbsp;
<input name="gender" type="radio" value="W"/>Woman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Age:&nbsp;&nbsp; <select name="age">
<option> Select </option>
<option>10 ~ 13</option>
<option>14 ~ 17</option>
<option>18 ~ 24</option>
<option>25 ~ 32</option>
<option>33 ~ 62</option>
<option>63 ~ 80</option>
<option>81 ~ n!</option>
<center></select><br><input name="Submit1" type="submit" value=" SEND "></span></div></center>
</center>

</body>
</html>کدهای PHP من:


<!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" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="TOM" />

<title>Complete</title>
</head>

<body>

<?php

$name = $_REQUEST ['name'];
$title = $_REQUEST ['subject'];
$email = $_REQUEST ['email'];
$site = $_REQUEST ['website'];
$comment = $_REQUEST ['comment'];
$gender = $_REQUEST ['gender'];
$age = $_REQUEST ['age'];

echo 'Hello <em>' .$name. '</em>, thank you for your message: <b>' .$title. '</b>.<br>We hope answer your
comment soon as posible. Your website is: <i>' .$site. '</i><br />Your comment: <br />' .$comment. '<br /><br /><br />';

if ($email or $comment == 0) {
echo 'Please check the form!';
} else {
echo "";
}

if ($gender == 'M') {
echo '<br />Hi Mr, ' .$name. ' we hope have a nice day.';
} else {
echo 'Hello Mis, ' .$name. ' we hope have a nice times.';
}

if ($age == 'Select') {
echo("<br/> Please check your Age!");
} elseif ($age == '10 ~ 30') {
echo ' You are a child!!';
} elseif ($age == '14 ~ 18') {
echo ' You are smaller 18 Year :(';
} elseif ($age == '18 ~ 24') {
echo ' Your age is good for ever :))';
} else {
print ' You are too old!!';
}

?>

</body>
</html>مشکل من در قسمت، اولین IF می‌باشد: (به شرح زیر)


if ($email or $comment == 0) {
echo 'Please check the form!';
} else {
echo "";
}آیا کُدِ فوق صحیح است؟ یا باید بجای or از & استفاده کنم؟ گرچه با آن هم جواب نداد.
البته میدانم که بصورت جداگانه پاسخ میدهد اما میخواهم بصورت مجتمع باشد..
آیا امکان دارد؟

xoogle.ir
دوشنبه 17 خرداد 1389, 13:10 عصر
کدتون رو به این شکل اصلاح کنید :

if (empty($email) || empty($comment)) {
echo 'Please check the form!';
} else {
echo "";
}

xoogle.ir
دوشنبه 17 خرداد 1389, 13:12 عصر
ضمنا متد فرمتون رو هم به post تغییر بدین متدی به نام send وجود نداره.

tom1987
دوشنبه 17 خرداد 1389, 15:25 عصر
دستتون درد نکنه، با راهنمایی شما مشکلم حل شُد. (کاملاً مسئله را فهمیدم.)

فقط کمی مختصرش کردم:


if (empty($email) || empty($comment)) {
echo 'Please check the form!';
}



قسمت else چون مقداری نداشت، ننوشتم!! بعدها که مشکلی پیش نمی‌آورد؟

f_naderi
دوشنبه 17 خرداد 1389, 15:29 عصر
if (($email==0) || ($comment == 0)) {
echo 'Please check the form!';
} else {
echo "";
}

سلام فکر میکنم مشکل شما به این خاطر بود که برای متغیر $email علامت دو تا مساوی برابر صفر رو قرار ندادید

tom1987
سه شنبه 18 خرداد 1389, 00:43 صبح
بنده از phpDesigner برای نوشتن برنامه‌های PHPم استفاده می‌کنم و مثالی برای تعیین اعتبار NULL بودن زدم بصورت زیر:

فُرم ساده‌ای تعریف کردم:


<!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" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="TOM" />

<title>Form2</title>
</head>

<body>

<form action = "form2.php" method = "post" >

<p>
<label for="name">Name</label>
<input type="text" name="name" id="name">
<br>
<label for="email">Email &nbsp</label>
<input type="text" name="email" id="email">
<br>
<label for="comment">Comment</label>
<input type="text" name="comment" id="comment">
</p>
<p>
<input type="submit" name="send" id="send" value="Submit">
</p>

</body>
</html>


کُدهای PHP را همراه دستورات IF برای تشخیص محتوا بشرح زیر نوشتم:


<!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" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="TOM" />

<title>Complete form2</title>
</head>

<body>

<?php

$name = $_REQUEST ['name'];
$email = $_REQUEST ['email'];
$comment = $_REQUEST ['comment'];

echo 'Hello ' .$name. ' ,thank you for the message.<br />We answer your comment soon as posible in ' .$email. '<br />
Your comment: ' .$comment. '<br />';

if (!empty ($_REQUEST ['name']) || !empty($_REQUEST ['email']) || !empty($_REQUEST['comment'])) {
$name = $_REQUEST ['name'];
$email = $_REQUEST ['email'];
$comment = $_REQUEST ['comment'];
} elseif ($name = NULL) {
echo '<br /><br />Wrong! please check your name.';
} elseif ($email = NULL) {
echo '<br /><br />Wrong! please check your email.';
} else {
$comment = NULL;
echo '<br /><br />Wrong! please check your comment.';
}

?>

</body>
</html>


IDE من هیچ پیغام خطایی بهم نشون نداد!! اما کدهای IF کار نکردند!
البته زمانی که کُدهای IF را جداگانه نوشتم جواب داد، اما بصورت مجتمع، خیر!!
آیا امکان نوشتم همه‌ی دستورات IF بصورت یکجا وجود دارد؟ یا حتماً باید جدا نوشت؟

rapidpich
سه شنبه 18 خرداد 1389, 22:57 عصر
دو تا مساوی بگزار تو IF