با شما در این روزهای سخت همراهیم (۴۰٪ تخفیف کمپین همدلی)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ مهدی بیات
مشکل در ارسال فرم
جامعه پی اچ پی ایجاد شده در ۱۶ دی ۱۴۰۱

با سلام و عرض ادب

تو کد زیر ما یک شرطی گذاشتیم که اگر input name و input email خالی بودن یه اروری بهمون نمایش بشه این شرط رو هم با && گذاشتیم. الان زمانی که یکی از input‌ها که پر میشه پیام ارسال با موفقیت رو میده در صورتی که یکی از input‌ها هنوز خالیه! انگار که یکی از شرط‌ها که برقرار میشه میره else رو اجرا میکنه در صورتی که ما از && استفاده کردیم و باید جفت شرط‌ها برقرار بشه و جفت input‌ها نباید خالی باشد تا بره else رو اجرا کنه.

با تشکر از پاسخگوییتون

 
$msg = null;
$sucessMsg = false;
$errorMsg = false;
if (isset($_POST['submit'])) {
    // echo 'form submited';
    if (empty($_POST['email']) && empty($_POST['name'])) {
        $errorMsg = true;
        $msg =  'input is empty!!!';
    }else {
        $sucessMsg = true;
        $msg = 'form submited';
    }
}
?>

html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>formtitle>
head>
<body>
    <form action="" method="POST">
        <input type="text" name='name' placeholder="name">
        <input type="email" name='email' placeholder="email">
        <input type="submit" name='submit'>
    form>
     
    if ( $sucessMsg ) {
        echo $msg;
    }
    if ( $errorMsg ) {
        echo $msg;
    }
    ?>

body>
html>

از این ساختار استفاده کردم اوکی شد:

ابتدا چک کردم اگه خالی نبودن پیام موفقیت بده در غیر این صورت ارور بده که حالا درصورت خالی بودن یکی از فرم‌ها هم ارور میده و درست کار میکنه

if (isset($_POST['submit'])) {
    // echo 'form submited';
    if (empty(!($_POST['email'])) && empty(!($_POST['name']))) {
        $sucessMsg = true;
        $msg = 'form submited';
    }else {
        $errorMsg = true;
        $msg =  'input is empty!!!';
    }
}
مهدی بیات ۱۶ دی ۱۴۰۱، ۱۵:۱۱

سلام مهدی عزیز

برای این مورد باید از || استفاده کنی.

چون && برای زمانی هست که هردو خالی باشند.

اما توی || ما میگیم که اگر حتی یک مورد هم خالی بود خطا بده.

if (empty($_POST['email']) || empty($_POST['name']))
بهترین پاسخ
احمدرضا فاطمی کیا ۱۶ دی ۱۴۰۱، ۱۵:۴۴