开发者

How do I place error messages inside a form with PHP only?

Here is my validation script:

$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
$uploadedfile = $_FILES['uploadedfile'];

if (isset($_POST['submit'])) {

  if ($_POST['name'] != "") {
    $_POST['name'] = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
    if ($_POST['name'] == "") {
      $errors .= 'Please enter a valid name.<br/><br/>';
    }
  } else {
    $errors .= 'enter your name<br/>';
  }

  if ($_POST['email'] != "") {
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errors .= "$email is <strong>NOT</strong> a valid email address.<br/><br/>";
    }
  } else {
    $errors .= 'enter your email address<br/>';
  }

  if((empty($_POST['text'])) && ($_FILES['uploadedfile']['size'] < 1))
    /*if((empty($_POST['text'])) && (empty($_FILES['uploadedfile'])))*/ {
      $errors .= 'either enter your text or attach a file.<br/><br/>';
    }

  if ($_POST['text'] != "") {
    $text = filter_var($_POST['text'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
    if ($_POST['text'] == "") {
      $errors .= 'Please enter a valid text.<br/><br/>';
    }
  }


  if (!$errors) {do some commands}

  else {
    echo '<div style="color: red; font-weight: bold; text-align: center"> The form was not sent. Please <br />' . $errors . '<br/>
      </div>';



  }

After this script comes my HTML with the form:

<form id="form" action="quot_form.php" method="post" enctype="multipart/form-data">

<div class = "left">
<fieldset>
    <legend><h3>Personal information</h3></legend>
    <p>
        <label for="name">Full name<span class = "star">*</span>:
        </label>
        <input type="text" name="name" id="name" value="<?php echo $name?>" />
    </p>    
    <p>
        <label for="company">Company:
        </label>
        <input type="text" name="company" id="company" value="<?php echo $company?>" />
    </p>    
    <p>
        <label for="email">Email<span class = "star">*</span>:
        </label>
        <input type="text" name="email" id="email" value="<?php echo $email?>" />
    </p>
    <p>
        <label for="phone">Telephone:
        </label>
        <input type="text" name="phone" id="phone" value="<?php echo $phone?>" />
    </p>
    <p>
        <label for="fax">Fax:
        </label>
        <input type="text" name="fax" id="fax" value="<?php echo $fax?>" />
    </p>
    <p>
        <label for="country">Country:
        </label>
        <input type="text" name="country" id="country" value="<?php echo $country?>" />
    </p>
</fieldset> 
<div class="spacer"></div>
<h3>General comments:</h3>
    <p>
        <textarea id = "comment" name="comment"></textarea><br /><br />
    </p>

    <div id = "mandatory">
        <span class = "star">*</span> Required fields
    </div>
</div>
<div class = "right">
<fieldset>
    <legend><h3>Enter text or upload file<span class = "star">*</span>:</h3></legend>
    <p>
        <textarea name="text"><?php echo $text?></textarea>
    </p>
    <p class = "upload">        
        <input type="file" name="uploadedfile" />
    </p>
</fieldset> 
    <div class="spacer_small"></div>
<fieldset>  
    <legend><h3>Languages<span class = "star">*</span>:</h3></legend>

    <div class="spacer_small"></div>

    <div>

        <span class = "language">from</span> <select name="from"> <option value="ach">Acoli</option><option value="afr">Afrikaans</option><option value="alb">Albanian</option><option value="amh">Amharic</option><option value="hbo">Ancient Hebrew</option><option value="ara">Arabic</option><option value="aze">Azerbaijani</option><option value="baq">Basque</option><option value="bel">Belarusian</option><option value="ben">Bengali</option><option value=".bo">Bosnian</option><option value="bre">Breton</option><option value="bul">Bulgarian</option><option value="cat">Catalan</option><option value="che">Chechen</option><option value="chi">Chinese</option><option value="chk">Chuukese</option><option value="mus">Creek</option><option value=".cr">Croatian</option><option value="ces">Czech</option><option value="dak">Dakota</option><option value="dan">Danish</option><option value="din">Dinka</option><option value="dut">Dutch</option><option value="eng">English</option><option value="epo">Esperanto</option><option value="est">Estonian</option><option value="fng">Fanagalo</option><option value=".fs">Farsi (Persian)</option><option value="fin">Finnish</option><option value=".fl">Flemish</option><option value="fra">French</option><option value="fur">Friulian</option><option value="gae">Gaelic</option><option value="glg">Galician</option><option value="geo">Georgian</option><option value="deu">German</option><option value="ell">Greek</option><option value="grc">Greek (Ancient)</option><option value="grn">Guarani</option><option value="guj">Gujarati</option><option value=".hc">Haitian-Creole</option><option value="hau">Hausa</option><option value="heb">Hebrew</option><option value="her">Herero</option><option value="hin">Hindi</option><option value=".hm">Hmong</option><option value="hun">Hungarian</option><option value="ice">Icelandic</option><option value="ibo">Igbo</option><option value="ind">Indonesian</option><option value="gai">Irish</option><option value="ita">Italian</option><option value="jpn">Japanese</option><option value="jav">Javanese</option><option value="kab">Kabyle</option><option value="xal">Kalmyk-Oirat</option><option value="khm">Khmer</option><option value="kor">Korean</option><option value="kur">Kurdish</option><option value="lat">Latin</option><option value="lav">Latvian</option><option value="lit">Lithuanian</option><option value="mac">Macedonian</option><option value="mlg">Malagasy</option><option value="may">Malay</option><option value="mal">Malayalam</option><option value="mlt">Maltese</option><option value="mao">Maori</option><option value="mar">Marathi</option><option value="mas">Masai</option><option value="myn">Mayanlanguages</option><option value="mon">Mongolian</option><option value="nah">Nahuatl (Aztec)</option><option value="nde">NdebeleNorth</option><option value="nbl">NdebeleSouth</option><option value="nep">Nepali</option><option value="nor">Norwegian</option><option value="nob">Norwegian(Bokmal)</option><option value="pan">Panjabi</option><option value="fas">Persian (Farsi)</option><option value="pol">Polish</option><option value="por">Portuguese</option><option value="pus">Pushto</option><option value="raj">Rajasthani</option><option value="ron">Romanian</option><option value="rus">Russian</option><option value="san">Sanskrit</option><option value="...">Serbian</option><option value="scr">Serbo-Croat</option><option value="sot">Sesotho (S. Sotho)</option><option value="sna">Shona</option><option value=".sg">Sign Language</option><option value="sin">Sinhalese</option><option value="sit">Sino-Tibetan</option><option value=".ss">SiSwati (Swazi)</option><option value="slk">Slovak</option><option value="slv">Slovenian</option><option value="esl" selected="selected">Spanish</option><option value="swa">Swahili</option><option value="sve">Swedish</option><option value="tgl">Tagalog</option><option value="tah">Tahitian</option><option value="tam">Tamil</option><option value="tat">Tatar</option><option value="tel">Telugu</option><option value="tet">Tetum</option><option value="tha">Thai</option><option value="bod">Tibetan</option><option value="tso">Tsonga</option><option value="tsn">Tswana</option><option value="tur">Turkish</option><option value="ukr">Ukrainian</option><option value="urd">Urdu</option><option value="ven">Venda</option><option value="vie">Vietnamese</option><option value="cym">Welsh</option><option value="yid">Yiddish</option><option value="zha">Zhuang (Chuang)</option><option value="zul">Zulu</option> </select><br />
        <div class="spacer_small"></div>
        <div class="spacer_small"></div>
        <div class="spacer_small"></div>
        <span class = "language">to</span>  <select name="to"> <option value="ach">Acoli</option><option value="afr">Afrikaans</option><option value="alb">Albanian</option><option value="amh">Amharic</option><option value="hbo">Ancient Hebrew</option><option value="ara">Arabic</option><option value="aze">Azerbaijani</option><option value="baq">Basque</option><option value="bel">Belarusian</option><option value="ben">Bengali</option><option value=".bo">Bosnian</option><option value="bre">Breton</option><option value="bul">Bulgarian</option><option value="cat">Catalan</option><option value="che">Chechen</option><option value="chi">Chinese</option><option value="chk">Chuukese</option><option value="mus">Creek</option><option value=".cr">Croatian</option><option value="ces">Czech</option><option value="dak">Dakota</option><option value="dan">Danish</option><option value="din">Dinka</option><option value="dut">Dutch</option><option value="eng" selected="selected">English</option><option value="epo">Esperanto</option><option value="est">Estonian</option><option value="fng">Fanagalo</option><option value=".fs">Farsi (Persian)</option><option value="fin">Finnish</option><option value=".fl">Flemish</option><option value="fra">French</option><option value="fur">Friulian</option><option value="gae">Gaelic</option><option value="glg">Galician</option><option value="geo">Georgian</option><option value="deu">German</option><option value="ell">Greek</option><option value="grc">Greek (Ancient)</option><option value="grn">Guarani</option><option value="guj">Gujarati</option><option value=".hc">Haitian-Creole</option><option value="hau">Hausa</option><option value="heb">Hebrew</option><option value="her">Herero</option><option value="hin">Hindi</option><option value=".hm">Hmong</option><option value="hun">Hungarian</option><option value="ice">Icelandic</option><option value="ibo">Igbo</option><option value="ind">Indonesian</option><option value="gai">Irish</option><option value="ita">Italian</option><option value="jpn">Japanese</option><option value="jav">Javanese</option><option value="kab">Kabyle</option><option value="xal">Kalmyk-Oirat</option><option value="khm">Khmer</option><option value="kor">Korean</option><option value="kur">Kurdish</option><option value="lat">Latin</option><option value="lav">Latvian</option><option value="lit">Lithuanian</option><option value="mac">Macedonian</option><option value="mlg">Malagasy</option><option value="may">Malay</option><option value="mal">Malayalam</option><option value="mlt">Maltese</option><option value="mao">Maori</option><option value="mar">Marathi</option><option value="mas">Masai</option><option value="myn">Mayanlanguages</option><option value="mon">Mongolian</option><option value="nah">Nahuatl (Aztec)</option><option value="nde">NdebeleNorth</option><option value="nbl">NdebeleSouth</option><option value="nep">Nepali</option><option value="nor">Norwegian</option><option value="nob">Norwegian(Bokmal)</option><option value="pan">Panjabi</option><option value="fas">Persian (Farsi)</option><option value="pol">Polish</option><option value="por">Portuguese</option><option value="pus">Pushto</option><option value="raj">Rajasthani</option><option value="ron">Romanian</option><option value="rus">Russian</option><option value="san">Sanskrit</option><option value="...">Serbian</option><option value="scr">Serbo-Croat</option><option value="sot">Sesotho (S. Sotho)</option><option value="sna">Shona</option><option value=".sg">Sign Language</option><option value="sin">Sinhalese</option><option value="sit">Sino-Tibetan</option><option value=".ss">SiSwati (Swazi)</option><option valu开发者_如何学Ce="slk">Slovak</option><option value="slv">Slovenian</option><option value="esl">Spanish</option><option value="swa">Swahili</option><option value="sve">Swedish</option><option value="tgl">Tagalog</option><option value="tah">Tahitian</option><option value="tam">Tamil</option><option value="tat">Tatar</option><option value="tel">Telugu</option><option value="tet">Tetum</option><option value="tha">Thai</option><option value="bod">Tibetan</option><option value="tso">Tsonga</option><option value="tsn">Tswana</option><option value="tur">Turkish</option><option value="ukr">Ukrainian</option><option value="urd">Urdu</option><option value="ven">Venda</option><option value="vie">Vietnamese</option><option value="cym">Welsh</option><option value="yid">Yiddish</option><option value="zha">Zhuang (Chuang)</option><option value="zul">Zulu</option> </select>
    </fieldset> 

        <div class="fileinputs">
        <input type="submit" class="file" name="submit" value = "SEND" />
        <div class="fakefile">
        <img src="images/send_small.png" />
        </div>
                </div>
                <div class="fileinputs">
                    <input type="reset" class="file" />
                    <div class="fakefile">
                            <img src="images/reset_small.png" />
                    </div>
                </div>

Currently, the error messages appear outside the page, above it. How do I place them inside the form?

Thank you!


If the HTML is in the same file as that code or if it's included by that code, you can simply move the else portion of your if-statement directly into the HTML

<form>
<?php
   if ($errors) {          
       echo '<div style="color: red; font-weight: bold; text-align: center"> The form was not sent. Please <br />' . $errors . '<br/></div>';
   }
?>
</form>

Not exactly the most elegant solution, but you get the idea.

If the HTML is somewhere else, the same idea applies except you'll have to pass in the value of $errors so it's available.


You have to pass $errors variable to the place where the form is being displayed, eg. some view. It should be echo'ed there, not in the validation code.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜