small error when submitting form
hello ive got a sign in page it works and sends data to database but soon as i had validation code for an email address using java, and then when i click submit it comes up with this error below for every textbox even though all the textboxes have data entered in them this error appears when the form is submitted... any ideas what could be causing this
Notice: Undefined index: StudentName in /home/stud/1/0472547/public_html/Signupcomplete.php on line 49
sukhy_1
Junior Poster in Training
63 posts since Mar 2008
Reputation Points: 10
Solved Threads: 3
java or javascript?
It's hard to tell, since you aren't showing us your javascript.... but,...
I would say your "Validate" is somehow over riding everything.
You may be trying to pass the information from these fields via javascript to php, this isn't impossible, it's just tricky...
Your best bet is to force the validate before the submit.. for instance, most people will have to focus on the submit button so, force the running of "validate to happen onFocus of the submit button. This will ensure that if all fields aren't proper, they won't be able to click submit, but, if all is good, it will validate and they will be able to push the button..
Just a guess as I can't see your code.
Sage
sagedavis
Junior Poster in Training
86 posts since Nov 2007
Reputation Points: 10
Solved Threads: 6
OK, I'm pasting the code you IMd me here, because there are others who may be able to help with this as well.
<script src="signupcheck.js" language="JavaScript" type="text/javascript">
</script>
<Script language = javascript>
function Validate() {
Message = "";
Message = Message + Checkmyusername();
if (Message == "") {
return true;
}
else {
alert(Message)
return false;
}
}
function Checkmyusername() {
email = document.f1.myusername.value;
AtPos = email.indexOf("@");
StopPos = email.lastIndexOf(".");
Message = "";
if (email == "") {
Message = "Not a valid Email address" + "\n";
return Message;
}
if (AtPos == -1 || StopPos == -1) {
Message = "Not a valid email address" + "\n";
return Message;
}
if (StopPos < AtPos) {
Message = "Not a valid email address" + "\n";
return Message;
}
if (StopPos - AtPos == 1) {
Message = "Not a valid email address" + "\n";
return Message;
}
return Message;
}
</script>
<form name="f1" method="post" action="Signupcomplete.php" onSubmit="return Validate()" enctype = text/plain>
<tr>
<td>Fields marked with an asterisk (*) are mandatory</td>
</tr>
<tr><td height=20></td></tr>
<tr>
<td>Your Name*<small> (Enter First and Last Name)</small></td>
<td><input type="text" name="StudentName"></td>
</tr>
<tr>
<td>Email Address*<small> (This will be your User Name)</small></td>
<td><input type="text" name="myusername"></td>
</tr>
<tr>
<td>Type a password*</td>
<td> <input type="password" name="mypassword" maxlength="16" value="" /></td>
</tr>
<tr>
<td>I accept: <input type="checkbox" value="0" name="agree">
<p><input type="submit" name="Submit" value="Sign Up"></td>
</tr>
</td>
</center>
</table>
</form>
</body>
</html>
Some ideas here... The function that you really want to call is CheckMyUsername because Validate is not really pushing the information that you want it to, and you can handle everything within the CheckMyUsername function anyway. This, I believe is where your code is breaking.
after each line you need a ";" I have added these in your code above for you. To be honest, this depends on what browser you are using.. IE7 doesn't care about this, but it is still good practice regardless.
I believe (if I am not mistaken) that your variables need to be declared as such... so,
where you have variables you need to type
var foo = "bar";
one thing that you should do after each step run an alert just to see where you are breaking...
I also think you need to put the function call on the button itself and make it an on focus event, or onmousedown that triggers the function call and not onsubmit.
Hope this helps
Sage
sagedavis
Junior Poster in Training
86 posts since Nov 2007
Reputation Points: 10
Solved Threads: 6
hello still dont work but ive noticed the data still gets input to the database but that notice keeps appearing the only data that dont get entered is the username because its got javascript dont understand what the problem could be...
sukhy_1
Junior Poster in Training
63 posts since Mar 2008
Reputation Points: 10
Solved Threads: 3
but ive got that code in my php, when i take the vaildation off for email everything works, its just when i add that javascript the notices come up cheers
sukhy_1
Junior Poster in Training
63 posts since Mar 2008
Reputation Points: 10
Solved Threads: 3
<?
$sql = sprintf(
"INSERT INTO StudentRecords (StudentName, TelephoneNumber, DOB) ".
"VALUES ('%s','%s','%s')",
mysql_real_escape_string(stripslashes($_REQUEST['StudentName'])),
mysql_real_escape_string(stripslashes($_REQUEST['TelephoneNumber'])),
mysql_real_escape_string(stripslashes($_REQUEST['DOB']))),
$result=mysql_query($sql) or die(mysql_error());
$sql= sprintf ("INSERT INTO members (password,username) VALUES ('%s','%s')",
md5(stripslashes($_REQUEST['mypassword'])),
mysql_real_escape_string(stripslashes($_REQUEST['myusername'])));
$result=mysql_query($sql) or die(mysql_error());
echo "You are now a member safe";mysql_close($con)
?>
sukhy_1
Junior Poster in Training
63 posts since Mar 2008
Reputation Points: 10
Solved Threads: 3