PDA

View Full Version : مبتدی: شرط اشتباه



emperatorphp
چهارشنبه 06 خرداد 1394, 09:02 صبح
بسم الله الرحمن الرحیم
سلام


چرا همش چه فیلد ها پر باشند چه خالی واد شرط زیر میشه برنامم





if (empty($_POST["subject"]) || empty($_POST["sho_dis"]) || empty($_POST["txt_data3"]) ) {
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
echo '<br>';
} else {
ممنون میشم راهنمایی کنید.
وبلاگ (http://khoshkebijar-basij.mihanblog.com/)

vahidqara
چهارشنبه 06 خرداد 1394, 09:15 صبح
اگه تمامی فیلدها اجباریست باید or رو به and تبدیل کنی

hamedarian2009
چهارشنبه 06 خرداد 1394, 09:17 صبح
سلام. احتمالا نام فیلدهای فرمتون با اینها یکی نیست بهتره کد فرم رو اینجا قرار دهید و بهتره از AND استفاده کنید

Tarragon
چهارشنبه 06 خرداد 1394, 10:44 صبح
سلام
بنظرم or بهتر باشه تا and
چون اگر and باشه اون وقت اگر هر ۳ تا فیلد خالی باشند ارور می گیره نه وقتی یکیشون خالیه!
همچنین فکر یم کنم مشکل شما از نام فیلد ها هستش نام فیلد ها رو چک کنید.

1sarbaz
چهارشنبه 06 خرداد 1394, 10:49 صبح
طبق این پیام کدتون :


وارد نمودن تمام ی فیلد ها اجباری است

شرط ها رو به AND تبدیل کن درست میشن ! :D

H:Shojaei
چهارشنبه 06 خرداد 1394, 11:07 صبح
بسم الله الرحمن الرحیم
سلام


چرا همش چه فیلد ها پر باشند چه خالی واد شرط زیر میشه برنامم





if (empty($_POST["subject"]) || empty($_POST["sho_dis"]) || empty($_POST["txt_data3"]) ) {
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
echo '<br>';
} else {
ممنون میشم راهنمایی کنید.
اینطور که من متوجه شدم شما میخواید هر فیلدی خالی بود بگه همه فیلدا اجبارین همشو پر کنید...
از and که استفاده کنید واسه این مورد اشتباست چون وقتی همه خالی باشن اون خطا میاد پس همینی که نوشتید درسته میگه هرکدوم از این فیلدها خالی بود خطا رو نمایش بده...
حالا مشکل چیه.!؟ اول این که کدها رو به این صورت بنویسید (empty(trim($_POST["subject"]() چون مقدار " " خالی نیست
اگر اسمها رو درست نوشتید نوع تسکتهایی که ارسال میکنید هم واسه این تابع مهمه نوعشون چیه؟ مثلا فایل با این روش جواب نمیده که البته فایل هم ندارید مثال زدم...
-------
من موندم دوستان واقعا به and تبدیل بشه درست میشه!!!!!!!!؟؟؟؟؟؟؟؟؟؟؟؟؟ دارم شک میکنم واقعا!!!!!! نه آقا and ربطی به این موضوع نداره...

fatima-php
چهارشنبه 06 خرداد 1394, 11:26 صبح
اینو استفاده کنید:

$flag = true;
foreach(array('subject', 'sho_dis', 'txt_data3') as $item) {
if (trim($_POST[$item]) === '') {
$flag = false;
break;
}
}
if(!$flag) {
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
}
else {
}
دوستان بد نیست یکم Manual سایت PHP رو بخونید: http://php.net/empty

fatima-php
چهارشنبه 06 خرداد 1394, 11:34 صبح
توی نسخه های قبل از 5.5 PHP نمیتونید از empty(trim($_POST['subject'])) یا امثال اون استفاده کنید و باید پارامتر empty حتماً متغیر مستقیم باشه:


Note:
Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.


منبع: لینک بالا

hamedarian2009
چهارشنبه 06 خرداد 1394, 11:36 صبح
البته تو این مورد استفاده از OR درسته

H:Shojaei
چهارشنبه 06 خرداد 1394, 14:12 عصر
توی نسخه های قبل از 5.5 PHP نمیتونید از empty(trim($_POST['subject'])) یا امثال اون استفاده کنید و باید پارامتر empty حتماً متغیر مستقیم باشه:
منبع: لینک بالا
اتفاقا سر زدم به سایتش ولی توجه نکردم همین خط رو هم تا نصفه هاش خوندما بازم توجه نکردم چی میشه..! ممنون...

واسه این کار هم پس $_POST['']=='' راحت تره ...

1sarbaz
چهارشنبه 06 خرداد 1394, 14:26 عصر
شرتا حواس همرو پرت کرد ! :لبخند:
اینو بزن شاید درست بشه.


<?php

if ( !trim($_POST["subject"]) || !trim($_POST["sho_dis"]) || !trim($_POST["txt_data3"]) ){
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
}else {

}

emperatorphp
چهارشنبه 06 خرداد 1394, 14:33 عصر
اینو استفاده کنید:

$flag = true;
foreach(array('subject', 'sho_dis', 'txt_data3') as $item) {
if (trim($_POST[$item]) === '') {
$flag = false;
break;
}
}
if(!$flag) {
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
}
else {
}
دوستان بد نیست یکم Manual سایت PHP رو بخونید: http://php.net/empty

سلام تشکر ولی درست نبود این کد جواب نمیده

emperatorphp
چهارشنبه 06 خرداد 1394, 14:34 عصر
اگه تمامی فیلدها اجباریست باید or رو به and تبدیل کنی

سلام تشکر or جواب باید بده

emperatorphp
چهارشنبه 06 خرداد 1394, 14:37 عصر
شرتا حواس همرو پرت کرد ! :لبخند:
اینو بزن شاید درست بشه.


<?php

if ( !trim($_POST["subject"]) || !trim($_POST["sho_dis"]) || !trim($_POST["txt_data3"]) ){
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
}else {

}

سلام همین کار رو کردم اما درست نشد!!!
تشکر

emperatorphp
چهارشنبه 06 خرداد 1394, 14:45 عصر
این کد همون قسمت


if(isset($_POST["subject"]) and isset($_POST["sho_dis"]) and isset($_POST["txt_data3"]) and isset($_POST["sub_add"]) ) {
if (!trim(empty($_POST["subject"])) || !trim(empty($_POST["sho_dis"])) || !trim((empty($_POST["txt_data3"]))) ) {
echo '<div class="diverr"> وارد نمودن تمام ی فیلد ها اجباری است </div>';
echo '<br>';
} else {

این کد فرم



<form onsubmit="$('#hdnText').val(encodeURIComponent($('#txt_data3 ').Editor('getText')))" action="m_news_add.php" method="post" enctype="multipart/form-data">

<input type="text" placeholder="عنوان" class="mange_text" name="subject" id="subject" maxlength="45" >
<textarea type="text" placeholder="توضیح کوتاه " class="mange_textarea" name="sho_dis" id="sho_dis" maxlength="150" rows="5" ></textarea>
<input type="hidden" id="hdnText" name="hdnText">
<select name="zoom_cat" class="manag_select" id="zoom_cat">
<option value="-1" selected="selected">انتخاب گروه خبر</option>
<?php
$on = mysqli_connect("localhost", "root", "");
mysqli_select_db($on, "namazjome") or die('cannot connect to database');
mysqli_query($on, "SET NAME 'utf8'");
mysqli_set_charset($on, "utf8");
$result = mysqli_query($on, "SELECT name_gro
FROM tblgro
");
while ($row = mysqli_fetch_assoc($result))
{
echo "<option>" . $row['name_gro'] ."</option> ";
}
?>
</select>
<ul class="manag_ul">
<a href="m_news_gro.php">
<li class="fa fa-plus">
</li></a>
</ul>
<br><br><br><br>
<br><br><br>
<br><br>
<div class="manag_lable">
<lable>
انتخاب عکس پیش نمایش خبر
</lable>
<br>
<input type="file" name="fileToUpload" id="fileToUpload">
</div>
<br><br>
<textarea id="txt_data3" name="txt_data3" style="width: 100%; height: 400px;"></textarea>
<script> $("#txt_data3").Editor();</script>
<br>
<input type="submit" value="ثبت" class="mange_submit" name="sub_add" id="sub_add">
</form>

barnamenevis2016
چهارشنبه 06 خرداد 1394, 14:53 عصر
ویرایش شد...اشتباه کردم:لبخند:

fatima-php
چهارشنبه 06 خرداد 1394, 16:04 عصر
سلام تشکر ولی درست نبود این کد جواب نمیده

بجای === از == استفاده کنید ببینید درست میشه؟

emperatorphp
چهارشنبه 06 خرداد 1394, 17:58 عصر
بجای === از == استفاده کنید ببینید درست میشه؟
ممنون پاسخ میدید اما باز نتیجه به داخل شرط میره حتی وقتی تمام فیلدها رو پر میکنم

H:Shojaei
چهارشنبه 06 خرداد 1394, 18:43 عصر
ممنون پاسخ میدید اما باز نتیجه به داخل شرط میره حتی وقتی تمام فیلدها رو پر میکنم
!!!!!!!
پر میکنید!؟ داخل شرط باید چیزی باشه که یعنی همه فیلدا خالی هستن خطای این مورد باید نمایش داده بشه!!! یا من بد فهمیدم یا شما اشتباه گفتید!
در کل کدی که دارید مینویسید داخل if اگر همه فیلد ها خالی باشه میره اگر نه میره به else همه فیلدها پر شدن...

emperatorphp
چهارشنبه 06 خرداد 1394, 19:16 عصر
مشکل از فرم من بود قسمت


onsubmit="$('#hdnText')

که حل شد
تشکر