شنبه یه خبراییه 🔥 منتظر شنبه باش 😉🥳
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ mahdi bayat
مشکل در ارسال فرم
جامعه پی اچ پی ایجاد شده در ۱۶ دی ۱۴۰۱

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

تو کد زیر ما یک شرطی گذاشتیم که اگر 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!!!';
    }
}
mahdi bayat ۱۶ دی ۱۴۰۱، ۱۵:۱۱

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

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

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

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

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