Avatar billede OnkelJoakim Novice
31. maj 2007 - 13:18 Der er 5 kommentarer og
1 løsning

Slette felter i FORM efter SQL INSERT query

Hej Eksperter!


Jeg har en formular med nogle personoplysninger, som skal sættes ind i en database. De data man indtaster skal verificeres om hvor vidt de er indtastet og/eller  er korrekte. Det meste er lavet jeg mangler dog bare at få FORM'en til at blive "resat" når data'ene er sendt. Det bliver de ikke.

Problemet er 'sikkert' i show_form()

Siden ser pt således ud http://www.abc72.dk/form_page.php
<code>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nyt medlem i Albertslund Billard Klub</title>
    <script type="text/javascript" src="http://include.moonscript.com/javascript/calendarDateInput.js"></script>
</head>

<body>
<?
function error_bool($error, $field) {
        if($error[$field]) {
            print("<td style=color:red>");
        }
        else {
            print("<td>");
        }
    }

function show_form() {
global $HTTP_POST_VARS, $print_again, $error;
?>

<form action="" method="post">
<table>
    <tr>
        <th>Beskrivelse</th>
        <th>Input</th>
    </tr>
    <tr>
        <td>Fødselsdag : </td>
        <td><script>DateInput('licensnr', true, 'YYYY-mm-dd', '2000-FEB-29')</script></td>
    </tr>
    <tr>
        <?php error_bool($error, "fornavn"); ?> Fornavn :</td>
        <td><input type="text" name="fornavn" value="<? echo $_POST["fornavn"]; ?>"/></td>
    </tr>
    <tr>
        <?php error_bool($error, "efternavn"); ?> Efternavn : </td>
        <td><input type="text" name="efternavn" value="<? echo $_POST["efternavn"]; ?>" /></td>
    </tr>
    <tr>
        <?php error_bool($error, "telefonnr"); ?> Telefonnr : </td>
        <td><input type="text" name="telefonnr" value="<? echo $_POST["telefonnr"]; ?>"/></td>
    </tr>
    <tr>
        <?php error_bool($error, "adresse"); ?> Adresse: </td>
        <td><input type="text" name="adresse" value="<? echo $_POST["adresse"]; ?>"/></td>
    </tr>
    <tr>
        <?php error_bool($error, "postnr"); ?> Postnr : </td>
        <td><input type="text" name="postnr" value="<? echo $_POST["postnr"]; ?>"/></td>
    </tr>
    <tr>
        <?php error_bool($error, "email"); ?> email : </td>
        <td><input type="text" name="email" value="<? echo $_POST["email"]; ?>"/></td>
    </tr>
    <tr>
        <td>Primær disciplin : </td>
        <td><select name="prim_disciplin">
            <option selected value="Carambole">Carambole</option>
                <option value="Kegler">Kegler </option>
                <option value="Pool">Pool </option>
                <option value="Snooker">Snooker</option>
              </select></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" name="Submit" value="Submit"></td>
    </tr>
</table>
</form>
<?
}
if(isset($_POST["Submit"])) {
    check_form();
    $_POST["Reset"];
} else {
    show_form();
}

function check_email_address($email) {
  // First, we check that there's one @ symbol, and that the lengths are right
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
      return false;
    }
  }
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}


function check_form()
{
global $HTTP_POST_VARS, $error, $print_again;
$error['fornavn'] = false;
    if($_POST["fornavn"]=="") {
        $error['fornavn'] = true;
        $print_again = true;
        $message = "Fornavn mangler<br>";
    }
$error['efternavn'] = false;
    if($_POST["efternavn"]=="") {
        $error['efternavn'] = true;
        $print_again = true;
        $message.="Efternavn mangler<br>";
    }
$error['telefonnr'] = false;
    if($_POST["telefonnr"]=="") {
        $error['telefonnr'] = true;
        $print_again = true;
        $message.="Telefon nummer mangler<br>";
    }
$error['adresse'] = false;
    if($_POST["adresse"]=="") {
        $error['adresse'] = true;
        $print_again = true;
        $message.="Adressen mangler<br>";
    }
$error['postnr'] = false;
    if($_POST["postnr"]=="") {
        $error['postnr'] = true;
        $print_again = true;
        $message.="Post nummer mangler<br>";
    }
      if(!check_email_address($_POST['email'])) {
        $error['email'] = true;
        $print_again = true;
        $message.="Email mangler eller er ugyldig <br>";
    }
    if($print_again) {
        show_form();
       
      } else {
        show_form();
          $message="Medlem tilføjet... <br>";

    mysql_connect("HOST", "BRUGERNAVN", "********");
    mysql_select_db("DATABASE");
    $query = "INSERT INTO person (cpr, fornavn, efternavn, adresse, postnr, telefonnr, email, prim_disciplin) values ('".$_POST["licensnr"]."','".$_POST["fornavn"]."','".$_POST["efternavn"]."','".$_POST["adresse"]."','".$_POST["postnr"]."','".$_POST["telefonnr"]."','".$_POST["email"]."','".$_POST["prim_disciplin"]."')";
    $result = mysql_query($query)
            or die (mysql_error());
      }
    echo "$message";
    echo "<br>";
}

?>
<hr>

</body>

</html>
</code>
Avatar billede jakobdo Ekspert
31. maj 2007 - 13:26 #1
Det er jo fordi du angiver f.eks. :<? echo $_POST["email"]; ?> i value!
Det skal du bare lade hver med til sidst.
Avatar billede OnkelJoakim Novice
31. maj 2007 - 13:39 #2
Super ;-)

Svar -> Points

Rasmus
Avatar billede jakobdo Ekspert
31. maj 2007 - 13:44 #3
Svar!
Avatar billede jakobdo Ekspert
31. maj 2007 - 13:49 #4
Takker for point.
Avatar billede OnkelJoakim Novice
31. maj 2007 - 14:04 #5
Takker for hurtigt svar ;-)
Avatar billede jakobdo Ekspert
31. maj 2007 - 14:18 #6
Du kunne også bruge en:
header('Location: ' . $_SERVER['PHP_SELF']);
exit();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester