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"> </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ø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ø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
