By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,110 Members | 1,010 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,110 IT Pros & Developers. It's quick & easy.

Process form with both Javascript and PHP

P: n/a
I'm new to PHP/Javascript. I have a simple form I want to validate the
fields with javascript and then run the PHP script. All the scripts
are in one page. I want PHP to control where the next page is. It
works fine without the javascript but when I add the javascript the
page doesn't do anything besides the validation. Thanks for your
help... Chong

----login.html--------------------------------
<?php
ob_start();
session_start();
require('datasource.html');
switch ($_POST['process'])
{
case 'Login':
$_SESSION['login'] = $_POST['login'];
$sql = "SELECT first_name, last_name, security_access, expire,
passwd_date FROM sy_user WHERE login = '".$_SESSION['login']."' AND
password = '".substr(sha1($_POST['password']), 0, 10)."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) < 1)
{
$msg = "Invalid login and password!";
}
else
{
$row = mysql_fetch_assoc($result);
$_SESSION['first_name'] = $row['first_name'];
$_SESSION['last_name'] = $row['last_name'];
$_SESSION['security_access'] = $row['security_access'];
$passwd_date = $row['passwd_date'];
$expire = $row['expire'];

if ($passwd_date + $expire < date('Y-m-j'))
{
header('location: expired.html');
}
else
{
header('location: main.html');
}
}
}
?>
<SCRIPT LANGUAGE="JavaScript">
function checkrequired(form)
{
for(f=0;f<form.length;f++)
{
if(form[f].name.substring(4,length)=="reqd")
{
if(form[f].value){continue}
else
{
alert("Please fill "+form[f].name.substring(5));
form[f].focus();
return false;
}
}
}
return true;
}
</script>

<form method="post">
Login:<input name="reqd.login" type="text"><br>
Password:<input name="reqd.password" type="password"><br>
<input type="submit" name="process" value="Login"
onClick="checkrequired(this)">
</form>
<?php echo($msg); ?>
-------------------------------------------------------

Feb 8 '06 #1
Share this Question
Share on Google+
5 Replies


P: n/a
d
<mo*****@yahoo.com> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...
I'm new to PHP/Javascript. I have a simple form I want to validate the
fields with javascript and then run the PHP script. All the scripts
are in one page. I want PHP to control where the next page is. It
works fine without the javascript but when I add the javascript the
page doesn't do anything besides the validation. Thanks for your
help... Chong

----login.html--------------------------------
<?php
ob_start();
session_start();
require('datasource.html');
switch ($_POST['process'])
{
case 'Login':
$_SESSION['login'] = $_POST['login'];
$sql = "SELECT first_name, last_name, security_access, expire,
passwd_date FROM sy_user WHERE login = '".$_SESSION['login']."' AND
password = '".substr(sha1($_POST['password']), 0, 10)."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) < 1)
{
$msg = "Invalid login and password!";
}
else
{
$row = mysql_fetch_assoc($result);
$_SESSION['first_name'] = $row['first_name'];
$_SESSION['last_name'] = $row['last_name'];
$_SESSION['security_access'] = $row['security_access'];
$passwd_date = $row['passwd_date'];
$expire = $row['expire'];

if ($passwd_date + $expire < date('Y-m-j'))
{
header('location: expired.html');
}
else
{
header('location: main.html');
}
}
}
?>
<SCRIPT LANGUAGE="JavaScript">
function checkrequired(form)
{
for(f=0;f<form.length;f++)
{
if(form[f].name.substring(4,length)=="reqd")
{
if(form[f].value){continue}
else
{
alert("Please fill "+form[f].name.substring(5));
form[f].focus();
return false;
}
}
}
return true;
}
</script>

<form method="post">
Login:<input name="reqd.login" type="text"><br>
Password:<input name="reqd.password" type="password"><br>
<input type="submit" name="process" value="Login"
onClick="checkrequired(this)">
</form>
<?php echo($msg); ?>
-------------------------------------------------------


If you moved the javascript call from the onclick() event of the submit
button to the form's onsubmit() event:

<form method="post" onsubmit="return checkrequired(this);">

It'll work as you expect :) The problem at the moment is that your
javascript isn't submitting the form when it's completed. It's returning
"true" or "false", as a function being called by onsubmit() would be
expected to do, but it's being used in a different fashion. Try dropping it
in the <form> tag as I showed above and see if that makes a difference.

dave
Feb 8 '06 #2

P: n/a
Thanks for the reply, Dave. I think I tried that before and it didn't
work. I'll try it again. However, what if I have multiple submit
buttons. The javascript above validates when the Login button is
clicked. What if I have a Quit button as well that calls a different
javascript function. I don't see how the onsubmit event can
distinquish between two different functions when each button is
clicked. That's why I used the onclick event so I can assign a
javascript function to each button. I assume PHP doesn't care which
event I use to call the javascript functions since PHP is server side?
But just so long as the form is submitted. Thanks.... Chong

Feb 8 '06 #3

P: n/a
d
<mo*****@yahoo.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
Thanks for the reply, Dave. I think I tried that before and it didn't
work. I'll try it again. However, what if I have multiple submit
buttons. The javascript above validates when the Login button is
clicked. What if I have a Quit button as well that calls a different
javascript function. I don't see how the onsubmit event can
distinquish between two different functions when each button is
clicked. That's why I used the onclick event so I can assign a
javascript function to each button. I assume PHP doesn't care which
event I use to call the javascript functions since PHP is server side?
But just so long as the form is submitted. Thanks.... Chong


What does the quit button do?

You can have each button assign a value to a hidden input in your form -
called, say, "action", then call the submit() method of the form
(document.getElementById("form_id").submit()). That will definitely be
picked up by any functions looking at the form after said value has been
assigned.

dave
Feb 8 '06 #4

P: n/a

<mo*****@yahoo.com> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...
I'm new to PHP/Javascript. I have a simple form I want to validate the
fields with javascript and then run the PHP script. All the scripts
are in one page. I want PHP to control where the next page is. It
works fine without the javascript but when I add the javascript the
page doesn't do anything besides the validation. Thanks for your
help... Chong

----login.html--------------------------------
<?php
ob_start();
session_start();
require('datasource.html');
switch ($_POST['process'])
{
case 'Login':
$_SESSION['login'] = $_POST['login'];
$sql = "SELECT first_name, last_name, security_access, expire,
passwd_date FROM sy_user WHERE login = '".$_SESSION['login']."' AND
password = '".substr(sha1($_POST['password']), 0, 10)."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) < 1)
{
$msg = "Invalid login and password!";
}
else
{
$row = mysql_fetch_assoc($result);
$_SESSION['first_name'] = $row['first_name'];
$_SESSION['last_name'] = $row['last_name'];
$_SESSION['security_access'] = $row['security_access'];
$passwd_date = $row['passwd_date'];
$expire = $row['expire'];

if ($passwd_date + $expire < date('Y-m-j'))
{
header('location: expired.html');
}
else
{
header('location: main.html');
}
}
}
move your javascript into the HEAD section where it belongs. weird things
happen elsewhere.

?>
<SCRIPT LANGUAGE="JavaScript">
function checkrequired(form)
{
for(f=0;f<form.length;f++)
{
if(form[f].name.substring(4,length)=="reqd")
{
if(form[f].value){continue}
else
{
alert("Please fill "+form[f].name.substring(5));
form[f].focus();
return false;
}
}
}
return true;
}
</script>

<form method="post">
Login:<input name="reqd.login" type="text"><br>
Password:<input name="reqd.password" type="password"><br>
<input type="submit" name="process" value="Login"
onClick="checkrequired(this)">
</form>
<?php echo($msg); ?>
-------------------------------------------------------

Feb 12 '06 #5

P: n/a

"Rich" <ri**@newsguy.com> wrote in message
news:ds*********@drn.newsguy.com...
In article <11**********************@z14g2000cwz.googlegroups .com>,
mo*****@yahoo.com says...

I'm new to PHP/Javascript. I have a simple form I want to validate the
fields with javascript and then run the PHP script. All the scripts
are in one page. I want PHP to control where the next page is. It
works fine without the javascript but when I add the javascript the
page doesn't do anything besides the validation. Thanks for your
help... Chong

----login.html--------------------------------
<?php
ob_start();
session_start();
require('datasource.html');
switch ($_POST['process'])
{
case 'Login':
$_SESSION['login'] = $_POST['login'];
$sql = "SELECT first_name, last_name, security_access, expire,
passwd_date FROM sy_user WHERE login = '".$_SESSION['login']."' AND
password = '".substr(sha1($_POST['password']), 0, 10)."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) < 1)
{
$msg = "Invalid login and password!";
}
else
{
$row = mysql_fetch_assoc($result);
$_SESSION['first_name'] = $row['first_name'];
$_SESSION['last_name'] = $row['last_name'];
$_SESSION['security_access'] = $row['security_access'];
$passwd_date = $row['passwd_date'];
$expire = $row['expire'];

if ($passwd_date + $expire < date('Y-m-j'))
{
header('location: expired.html');
}
else
{
header('location: main.html');
}
}
}
?>
<SCRIPT LANGUAGE="JavaScript">
function checkrequired(form)
{
for(f=0;f<form.length;f++)
{
if(form[f].name.substring(4,length)=="reqd")
{
if(form[f].value){continue}
else
{
alert("Please fill "+form[f].name.substring(5));
form[f].focus();
return false;
}
}
}
return true;
}
</script>

<form method="post">
Login:<input name="reqd.login" type="text"><br>
Password:<input name="reqd.password" type="password"><br>
<input type="submit" name="process" value="Login"
onClick="checkrequired(this)">
</form>
<?php echo($msg); ?>
-------------------------------------------------------

May need to add to your <form> tag. Once the Javascript does the form
validation, it needs to know where to send the form data. You have the
method
set to "post" but were missing the action setting. If you are sending the
form
back to itself you can usually specify that in PHP using...

<form action="<?php $PHP_SELF; ?>" method="post">


that works if you have register_globals on probably. and it's probably not
on by default.
try using <?php echo $_SERVER['PHP_SELF']; ?> instead. it's more likely to
work.

You might need to pull the "onClick" event from your submit button and
include
that in the form tag as well.

Rich
--
Newsguy BonusBytes! - Free monthly rewards
http://newsguy.com/bonusbytes.htm

Feb 12 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.