第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 PHP 聯(lián)系表單的每個(gè)不同字段中顯示錯(cuò)誤消息?

如何在 PHP 聯(lián)系表單的每個(gè)不同字段中顯示錯(cuò)誤消息?

PHP
慕尼黑8549860 2023-10-22 21:25:16
我正在遵循教程并填寫了此聯(lián)系表。它工作正常,但我想在每個(gè)字段中顯示不同的消息,而不是使用一個(gè)框。我試著移動(dòng)<?php if($msg != ''): ?>             <div class="alert <?php echo $msgClass; ?>"><?php echo $msg;?></div>          <?php endif; ?>在輸入字段下方,就在該位置顯示而言效果很好,但它只是同時(shí)顯示相同的消息。它不會(huì)單獨(dú)顯示不同的消息。從這里我將如何處理這個(gè)問題?body {    font-size:10px;    font-family:sans-serif, "Open-sans";    margin:0;    padding:0;    box-sizing:border-box;    letter-spacing:0.1rem;}.navbar {    background:#333;    width:100%;}.container {    max-width:1100px;    margin:auto;}.navbar-header {    display: flex;    flex-flow: row wrap;    justify-content: flex-start;}.navbar-brand {    font-size:1.5rem;    padding:1rem;    color:#fff;    text-decoration:none;}form {    font-size:1.3rem;}.form-group {    display:flex;    flex-direction: column;    margin:1.5rem;}label {    color:#333;    margin-bottom:0.7rem;}input, textarea {    max-width:100%;    border:0.5px solid darkslategray;    padding:1.3rem;    font-size:1.5rem;}button {    background:rgb(67, 130, 211);    color:#fff;    font-size:1.2rem;    padding:1rem;    margin:1.5rem;    border:none;  }.alert {    margin:1.5rem;    padding:1.5rem;    font-size:1.5rem;    color:#fff; }.alert-danger {    background-color:rgb(219, 54, 48);}.alert-success {    background-color:rgb(28, 160, 39);}<?php     // Message Vars    $msg = '';    $msgClass = '';        // Check for submit    if(filter_has_var(INPUT_POST,'submit')){        // Get Form Data         $name = htmlspecialchars($_POST['name']);         $email = htmlspecialchars($_POST['email']);        $message = htmlspecialchars($_POST['message']);        // Check Required Fields        if(!empty($email) && !empty($name) && !empty($message)){            // Passed            // Check Email             if(filter_var($email, FILTER_VALIDATE_EMAIL) === false ){                // Failed                $msg = 'Please use a valid email';                $msgClass = 'alert-danger';            } 
查看完整描述

2 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以使用該$msg變量作為數(shù)組而不是字符串來保存特定字段的錯(cuò)誤。


<?php

    $msg = [];

    

    if(filter_has_var(INPUT_POST,'submit')){

        //...


        // Check Required Fields

        if(!empty($email) && !empty($name) && !empty($message)){

  

            if(filter_var($email, FILTER_VALIDATE_EMAIL) === false ){

                $msg['email'] = [

                    'msg' => 'Please use a valid email'

                    'class' => 'alert-danger'

                ];

            } else { 

                //...


                    if(mail($toEmail, $subject, $body, $headers)){

                        // Email Sent

                        $msg['default'] = [

                            'msg' => 'Your email has been sent'

                            'class' => 'alert-success'

                         ];

                    } else {

                        // Failed

                        $msg['default'] = [

                            'msg' => 'Your email was not sent'

                            'class' => 'alert-danger'

                         ];

                    }

            }

        } else {

            // Failed

           $msg['default'] = [

                'msg' => 'Please fill in all fields'

                'class' => 'alert-danger'

             ];

        }

    }

?>

現(xiàn)在,在 HTML 中,您可以檢查特定錯(cuò)誤或消息是否存在,并將其顯示在正確的位置;頂部的默認(rèn)消息和電子郵件輸入下的電子郵件錯(cuò)誤:


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="stylesheet" href="style.css">

    <title>Contact US</title>

</head>

<body>

     <nav class="navbar">

        <div class="container">

            <div class="navbar-header">

                <a href="index.php" class="navbar-brand">My Website</a>

            </div>

        </div>

     </nav>

     <div class="container">


        <!-- HERE -->

         <?php if(isset($msg['default'])): ?>

            <div class="alert <?php echo $msg['default']['class']; ?>"><?php echo $msg['default']['msg']?></div>

         <?php endif; ?>


        <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

            <!-- ... -->


            <div class="form-group">

                <label for="name">Email</label>

                <input type="text" name="email" class="form-control" value="<?php echo isset($_POST['email']) ? $email : ''; ?>">


                <!-- AND HERE -->

                <?php if(isset($msg['email'])): ?>

            <div class="alert <?php echo $msg['email']['class']; ?>"><?php echo $msg['email']['msg']?></div>

         <?php endif; ?>

            </div>


            <!-- ... -->

        </form>

     </div>

</body>

</html>

實(shí)際上,您也可以對(duì)您想要的任何其他輸入執(zhí)行相同的操作。


查看完整回答
反對(duì) 回復(fù) 2023-10-22
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以將驗(yàn)證警告存儲(chǔ)在數(shù)組類型變量中,而不是字符串中。


例如,這一行:


$msg = '請(qǐng)使用有效的電子郵件';


你可以這樣做:


$msg['email'] = 'Please use a valid email';

另外,我認(rèn)為您想驗(yàn)證每個(gè)必填字段是否都存在單獨(dú)的if檢查,而不是全部一起存在,例如:


if(!empty($email) && !empty($name) && !empty($message)){


您可以實(shí)施為:


if (empty($email) || filter_var($email, FILTER_VALIDATE_EMAIL) === false) {

    $msg['email'] = 'Please use a valid email';

}


if (empty($name)) {

    $msg['name'] = 'Please enter a name';

}


if (empty($message)) {

    $msg['message'] = 'Please enter a message';

}

然后,在 HTML 部分的每個(gè)相關(guān)輸入字段下方,您可以添加:


<div class="form-group">

    <label for="name">Name</label> 

    <input type="text" name="name" class="form-control" value="<?php echo isset($_POST['name']) ? $name : ''; ?>">

    

    <?php if(isset($msg['name'])): ?>

       <p> <?php echo $msg['name']; ?>

    <?php endif; ?>

</div>

然而,總的來說,我不得不說這是一種非常老式的 PHP 使用方式,您可以將邏輯代碼與顯示代碼混合在一起。


當(dāng)你掌握了它的竅門后,也許你會(huì)想研究 Laravel、Symfony 甚至 CodeIgniter 是如何工作的,在那里你可以使用所謂的 MVC 將顯示與邏輯分開。


此外,您最終可以使用像 Blade 或類似的模板引擎來回顯您的變量。


查看完整回答
反對(duì) 回復(fù) 2023-10-22
  • 2 回答
  • 0 關(guān)注
  • 182 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)