webForumDet fria alternativet

PHP validering

PHP

2 svar · 815 visningar · startad av AndreasC

Medlem sedan mars 20011 964 inlägg
Frågan#1

Hej

Jag har ett script som är en del utav ett loginscript där jag bl.a har en del funktioner för validering av webformulär. Jag försöker lägga till en funktion och undrar ifall någon har en lösning för det vill sig inte riktigt.

En funktion som fungerar kan se ut såhär:

      /* Email error checking */
      $field = "email";  //Use field name for email
      if(!$subemail || strlen($subemail = trim($subemail)) == 0){
         $form->setError($field, "* Email not entered");
      }
      else{
         /* Check if valid email address */
         $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
                 ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
                 ."\.([a-z]{2,}){1}$";
         if(!eregi($regex,$subemail)){
            $form->setError($field, "* Email invalid");
         }
         $subemail = stripslashes($subemail);
      }

Jag vill sedan lägga till en funktion för att kontrollera ifall användaren har fyllt i någon utav ett antal "radio buttons". Koden, men som inte fungerar, är:

      /* Language selection error checking */
      $field = "group_lang";  //Use field name for language selection
      if(!$subgroup_lang || strlen($subgroup_lang) == 0){
         $form->setError($field, "* You must select the user's language");
      }
      else{
      }

För formuläret ser koden ut såhär (ej formaterad kod, t.ex. ska tabellerna bort vid ett senare tillfälle):

          <tr>
          <td><img src="img/flags/uk.png" style=\"width:50px; height:30px; vertical-align:middle;\" alt="" /><input type="radio" name="group_lang" value="<?php echo $form->value("en"); ?>" /></td>
          </tr>

          <tr>
          <td><img src="img/flags/japan.png" style=\"width:50px; height:30px; vertical-align:middle;\" alt="" /><input type="radio" name="group_lang" value="<?php echo $form->value("jp"); ?>" /></td>
          </tr>

          <tr>
          <td><img src="img/flags/china.png" style=\"width:50px; height:30px; vertical-align:middle;\" alt="" /><input type="radio" name="group_lang" value="<?php echo $form->value("ch"); ?>" /></td>
          </tr>

          <tr>
          <td><img src="img/flags/sweden.png" style=\"width:50px; height:30px; vertical-align:middle;\" alt="" /><input type="radio" name="group_lang" value="<?php echo $form->value("se"); ?>" /></td>
          </tr>

          <tr>
          <td><?php echo $form->error("se"); ?></td>
          </tr>

Hur kan jag formatera php-koden så att det fungerar?

Medlem sedan nov. 2006188 inlägg
#2

För validera email gör något i stil med

<?php
     // Kolla om e-posten är giltig.
     if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,6}$/', $epost)) {
     die("Du uppgav fel email");
}?>

För kontrollera checkboxar och radio kan du andvända dig av en javascript för första kontrollen, sedan php för saker.

Sedan php som dubbel koll.

Medlem sedan feb. 20034 441 inlägg
#3

Sluta skriva i gåtor och visa kod så kanske du får vettiga svar...

Du skriver:

 /* Language selection error checking */
      $field = "group_lang";  //Use field name for language selection
      if(!$subgroup_lang || strlen($subgroup_lang) == 0){
         $form->setError($field, "* You must select the user's language");
      }
      else{
      }

Vad är $field och vad är $subgroup_lang...? Visa din riktiga kod och visa allt så finns det kanske en möjlighet att hjälpa dig...

252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)