Avatar billede komz Nybegynder
16. juni 2006 - 17:34 Der er 2 kommentarer

validering af form med javscript

Hej Eksperter!

I har jo ry for at kunne løse alt, så her kommer mit problem. Jeg har sat 'brugernavn' til kun at må indeholde tal via. javascript. Hvis jeg forsøger at lave et brugernavn med bogstaver og trykker submit, får jeg også rigtigt nok en alert med tekst om brugernavnet er ulovligt, men den poster formen alligevel - og det er der mit problem ligger... den må ikke poste formen hvis formen ikke overholder de givne kriterier i javascriptet :o)

Er der nogen der kan hjælpe ? =)


-----------------------------------------

<?php require_once('../Connections/hhmedia.php'); ?>
<?php
$MM_flag="MM_insert";
if (isset($_POST[$MM_flag])) {
  $MM_dupKeyRedirect="opret-fejl.php?besked=";
  $loginUsername = $_POST['brugernavn'];
  $LoginRS__query = "SELECT brugernavn FROM community WHERE brugernavn='" . $loginUsername . "'";
  mysql_select_db($database_hhmedia, $hhmedia);
  $LoginRS=mysql_query($LoginRS__query, $hhmedia) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);

 
  if($loginFoundUser){
    $MM_qsChar = "?";
   
    if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";
    $MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;
    header ("Location: $MM_dupKeyRedirect");
    exit;
  }
}

session_start();

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "opretbruger")) {
  $insertSQL = sprintf("INSERT INTO community (brugernavn, aktiveret, status, sidste_login, email, navn, aktiv_figur, koen, ip, aar, mdr, dag, onlinetid, oprettet, lukket, aktiveringskode) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['brugernavn'], "text"),
                      GetSQLValueString($_POST['aktiveret'], "text"),
                      GetSQLValueString($_POST['status'], "text"),
                      GetSQLValueString($_POST['sidste_login'], "date"),
                      GetSQLValueString($_POST['email'], "text"),
                      GetSQLValueString($_POST['navn'], "text"),
                      GetSQLValueString($_POST['aktiv_figur'], "text"),
                      GetSQLValueString($_POST['koen'], "text"),
                      GetSQLValueString($_POST['ip'], "text"),
                      GetSQLValueString($_POST['aar'], "int"),
                      GetSQLValueString($_POST['mdr'], "text"),
                      GetSQLValueString($_POST['dag'], "text"),
                      GetSQLValueString($_POST['onlinetid'], "int"),
                      GetSQLValueString($_POST['oprettet'], "date"),
                      GetSQLValueString($_POST['lukket'], "text"),
                      GetSQLValueString($_POST['aktiveringskode'], "int"));

  mysql_select_db($database_hhmedia, $hhmedia);
  $Result1 = mysql_query($insertSQL, $hhmedia) or die(mysql_error());

  $insertGoTo = "send-brugeraktivering.php?aktiveringskode=$aktiveringskode";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_hhmedia, $hhmedia);
$query_rsTopbar = "SELECT * FROM sideoverskrift_tekst WHERE id = 2";
$rsTopbar = mysql_query($query_rsTopbar, $hhmedia) or die(mysql_error());
$row_rsTopbar = mysql_fetch_assoc($rsTopbar);
$totalRows_rsTopbar = mysql_num_rows($rsTopbar);

$tid = date("Y-m-d H:i:s", time());
$ip = $_SERVER['REMOTE_ADDR'];
$aktiveringskode = rand(10000000, 99999999);
$adgangskode = rand(1000000000, 9999999999);

?>
<html>
<script language="JavaScript" type="text/JavaScript">
var checkStr = "123456789";

function check(tegn) {
    for (i=0; i<checkStr.length; i++) {
        if (checkStr.indexOf(tegn) == -1) {
            return false;
        }
    }
}

function sendMig() {
    astr = document.opretbruger.brugernavn.value;
    for (j=0; j<astr.length; j++) {
        if (check(astr.charAt(j)) == false) {
            alert('Dit KVAJ..!!!\nJeg skrev jo, du KUN m\345tte skrive tal!');
            return false;
        }
    }
    document.opretbruger.submit();
}
</script>
<script language="JavaScript" type="text/JavaScript">
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal indeholde en gyldig e-mail adresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' skal indeholde et nummer.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' skal indeholde et nummer mellem '+min+' og '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' skal udfyldes.\n'; }
  } if (errors) alert('Følgende fejl opstod:\n'+errors);
  document.MM_returnValue = (errors == '');
}
</script>
<head>
<title><?php echo $row_rsTopbar['overskrift']; ?></title>

<link href="../css/style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.lengde {
    width: 222px;
    border: 1px solid #A7A6AA;
    color: #4B4B4B;
    background-color: #FFFFFF;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php include("../config.php"); ?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td>
        <img src="../images/topbar/topbar_01.gif" width="8" height="17" alt="" /></td>
        <td bgcolor="#DC3102" width="399" height="17" class="topbar">
        <?php echo $row_rsTopbar['overskrift']; ?>
        </td>
        <td>
        <img src="../images/topbar/topbar_03.gif" width="7" height="17" alt="" /></td>
</tr></table><br>

Hvis dette er dit første besøg på HH-Media, så vær ikke nervøs! Det kræver blot du indtaster følgende felter, og så er du igang.<hr>
<form action="<?php echo $editFormAction; ?>" method="POST" name="opretbruger" id="opretbruger" onSubmit="MM_validateForm('navn','','R','brugernavn','','R','email','','RisEmail','adgangskode','','R');return document.MM_returnValue">
<table width="100%"  border="0" cellspacing="1" cellpadding="1">
  <tr>
    <td>Navn: (irl) </td>
    <td><input name="navn" type="text" class="mainforms" id="navn" size="35" maxlength="20"></td>
    <td rowspan="6">&nbsp;</td>
  </tr>
  <tr>
    <td>Brugernavn:</td>
    <td><input name="brugernavn" type="text" class="mainforms" id="brugernavn" size="35" maxlength="16"></td>
  </tr>
  <tr>
    <td>E-mail:</td>
    <td><input name="email" type="text" class="mainforms" id="email" size="35" maxlength="50"></td>
  </tr>
  <tr>
    <td>K&oslash;n:</td>
    <td><select name="koen" class="lengde" id="koen">
      <option value="dreng">dreng</option>
      <option value="pige">pige</option>
      </select></td>
  </tr>
  <tr>
    <td valign="top">F&oslash;dseldag:</td>
    <td><select name="dag" class="mainforms" id="dag">
      <option value="01">01</option>
      <option value="02">02</option>
      <option value="03">03</option>
      <option value="04">04</option>
      <option value="05">05</option>
      <option value="06">06</option>
      <option value="07">07</option>
      <option value="08">08</option>
      <option value="09">09</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      <option value="13">13</option>
      <option value="14">14</option>
      <option value="15">15</option>
      <option value="16">16</option>
      <option value="17">17</option>
      <option value="18">18</option>
      <option value="19">19</option>
      <option value="20">20</option>
      <option value="21">21</option>
      <option value="22">22</option>
      <option value="23">23</option>
      <option value="24">24</option>
      <option value="25">25</option>
      <option value="26">26</option>
      <option value="27">27</option>
      <option value="28">28</option>
      <option value="29">29</option>
      <option value="30">30</option>
      <option value="31">31</option>
    </select>
      <select name="mdr" class="mainforms" id="mdr">
        <option value="01">Januar</option>
        <option value="02">Februar</option>
        <option value="03">Marts</option>
        <option value="04">April</option>
        <option value="05">Maj</option>
        <option value="06">Juni</option>
        <option value="07">Juli</option>
        <option value="08">August</option>
        <option value="09">September</option>
        <option value="10">Oktober</option>
        <option value="11">November</option>
        <option value="12">December</option>
      </select>
      <select name="aar" class="mainforms" id="aar">
        <option value="1950">1950</option>
        <option value="1951">1951</option>
        <option value="1952">1952</option>
        <option value="1953">1953</option>
        <option value="1954">1954</option>
        <option value="1955">1955</option>
        <option value="1956">1956</option>
        <option value="1957">1957</option>
        <option value="1958">1958</option>
        <option value="1959">1959</option>
        <option value="1960">1960</option>
        <option value="1961">1961</option>
        <option value="1962">1962</option>
        <option value="1963">1963</option>
        <option value="1964">1964</option>
        <option value="1965">1965</option>
        <option value="1966">1966</option>
        <option value="1967">1967</option>
        <option value="1968">1968</option>
        <option value="1969">1969</option>
        <option value="1970">1970</option>
        <option value="1971">1971</option>
        <option value="1972">1972</option>
        <option value="1973">1973</option>
        <option value="1974">1974</option>
        <option value="1975">1975</option>
        <option value="1976">1976</option>
        <option value="1977">1977</option>
        <option value="1978">1978</option>
        <option value="1979">1979</option>
        <option value="1980">1980</option>
        <option value="1981">1981</option>
        <option value="1982">1982</option>
        <option value="1983">1983</option>
        <option value="1984">1984</option>
        <option value="1985">1985</option>
        <option value="1986">1986</option>
        <option value="1987">1987</option>
        <option value="1988">1988</option>
        <option value="1989">1989</option>
        <option value="1990" selected>1990</option>
        <option value="1991">1991</option>
        <option value="1992">1992</option>
        <option value="1993">1993</option>
        <option value="1994">1994</option>
        <option value="1995">1995</option>
        <option value="1996">1996</option>
        <option value="1997">1997</option>
        <option value="1998">1998</option>
        </select>
      <br><br>
      <input name="opretbruger" type="submit" class="mainbuttons" id="opretbruger" value="opret bruger" onClick=sendMig();>
      <input name="forfra" type="reset" class="mainbuttons" id="forfra" value="slet data">
      <input name="aktiveret" type="hidden" id="aktiveret" value="nej">
      <input name="status" type="hidden" id="status" value="Normal">
      <input name="lukket" type="hidden" id="lukket" value="nej">
      <input name="aktiv_figur" type="hidden" id="aktiv_figur" value="normal.gif">
      <input name="onlinetid" type="hidden" id="onlinetid" value="0">
      <input name="ip" type="hidden" id="ip" value="<?php echo $ip ?>">
      <input name="aktiveringskode" type="hidden" id="aktiveringskode" value="<?php echo $aktiveringskode ?>">
      <input name="oprettet" type="hidden" id="oprettet" value="<?php echo $tid ?>">
      <input name="sidste_login" type="hidden" id="sidste_login" value="<?php echo $tid ?>">
      <input name="adgangskode" type="hidden" id="adgangskode" value="<?php echo $adgangskode ?>">
      </td>
  </tr>
</table>
<input type="hidden" name="MM_insert" value="opretbruger">
</form>
</body>
</html>
<?php
mysql_free_result($rsTopbar);
?>

-------------

På forhånd tak
Avatar billede keysersoze Ekspert
16. juni 2006 - 18:12 #1
function sendMig() {
    astr = document.opretbruger.brugernavn.value;
    if (isNaN(astr.value)) {
        alert('Dit KVAJ..!!!\nJeg skrev jo, du KUN m\345tte skrive tal!');
        return false;
        } else {
        document.opretbruger.submit();
    }
}
Avatar billede keysersoze Ekspert
05. august 2006 - 14:44 #2
lukketid?
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