webForumDet fria alternativet

PHP validering

2 svar · 813 visningar · startad av AndreasC

AndreasCMedlem sedan mars 20011 924 inlägg
#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?

dwmediaMedlem sedan nov. 2006224 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.

MickeA.comMedlem sedan feb. 20034 528 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...

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb