I have a login page where a user enters their username and password and then clicks a radio button to determine what page they are logging into.

What I mean by this is, if the user clicks the first radio button I want the form to login the user into their account on my website. If they choose the second radio button, I want the user to login to a separate website.

I've tried all sorts of javascript functions to determine which radio button and how to process the form, but I am stumped.

Here is the code I have so far:

<?
/**
 * Main.php
 *
 * This is an example of the main page of a website. Here
 * users will be able to login. However, like on most sites
 * the login form doesn't just have to be on the main page,
 * but re-appear on subsequent pages, depending on whether
 * the user has logged in or not.
 *
 * Written by: Jpmaster77 a.k.a. The Grandmaster of C++ (GMC)
 * Last Updated: August 26, 2004
 */
include("include/session.php");
?>

<html>
<title>Login Page</title>
<head>
<SCRIPT LANGUAGE="JAVASCRIPT">
<!--

function go(what) {
    for (var i=0;i<3;i++) {
        if (what.group1[i].checked) {
            document.forms[what.group1[i].value].submit();
        }
    }
}

//-->
</SCRIPT>

</head>
<body>

<table>
<tr><td>


<?
/**
 * User has already logged in, so display relavent links, including
 * a link to the admin center if the user is an administrator.
 */
if($session->logged_in){
   echo "<h1>Logged In</h1>";
   echo "Welcome <b>$session->username</b>, you are logged in. <br><br>"
       ."[<a href=\"userinfo.php?user=$session->username\">My Account</a>] &nbsp;&nbsp;"
       ."[<a href=\"useredit.php\">Edit Account</a>] &nbsp;&nbsp;";
   if($session->isAdmin()){
      echo "[<a href=\"admin/admin.php\">Admin Center</a>] &nbsp;&nbsp;";
   }
   echo "[<a href=\"process.php\">Logout</a>]";
}
else{
?>

<h1>Login</h1>
<?
/**
 * User not logged in, display the login form.
 * If user has already tried to login, but errors were
 * found, display the total number of errors.
 * If errors occurred, they will be displayed.
 */
if($form->num_errors > 0){
   echo "<font size=\"2\" color=\"#ff0000\">".$form->num_errors." error(s) found</font>";
}
?>
<form name="login_form" action="process.php" method="POST">
<table align="left" border="0" cellspacing="0" cellpadding="3">

<tr><td>Username:</td><td><input type="text" name="user" maxlength="30" value="<? echo $form->value("user"); ?>"></td><td><? echo $form->error("user"); ?></td></tr>

<tr><td>Password:</td><td><input type="password" name="pass" maxlength="30" value="<? echo $form->value("pass"); ?>"></td><td><? echo $form->error("pass"); ?></td></tr>

<tr><td colspan="2" align="left"><input type="checkbox" name="remember" <? if($form->value("remember") != ""){ echo "checked"; } ?>>

<font size="2">Remember me next time &nbsp;&nbsp;&nbsp;&nbsp;</font>
</td></tr>
<tr>
<td colspan="2" align="left">
Login to Account Page<input type="radio" name="group1" value="Account">
</td></tr>

<tr>
<td colspan="2">
Login to Affiliate Page<input type="radio" name="group1" value="Affiliate">
</td>
</tr>

<tr colspan="2">
<td>
<input type="hidden" name="sublogin" value="1">
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Login"></td></tr>

<tr><td colspan="2" align="left"><br><font size="2">[<a href="forgotpass.php">Forgot Password?</a>]</font></td><td align="right"></td></tr>
<tr><td colspan="2" align="left"><br>Not registered? <a href="register.php">Sign-Up!</a></td></tr>
</table>
</form>

Any help is greatly appreciated.

    5 days later

    IF($POST['group1'] == 'Account') then login to account on my website
    IF($
    POST['group1'] == 'Affiliate') then login to a separate website

      The problem being is that I'm guessing the "other website" is on a different domain.

      The simplest solution would be to have a login for your website and a link to the login page for the other website. Any other solution is going to involve passing their username/password in plain text, altering the form's action URL (different domain will cause some security warnings in most browsers IIRC), etc.

        Write a Reply...