Re: apache, mysql, php4 for windows.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>Are you sure the cookie is set on your machine? What
>is your IE setting
>about what cookie should accept? Because this is
>generaly the problem

Okay maybe it's best I post my code here and explain a
bit about it.

--my login code--

<?php

error_reporting (E_ALL ^ E_NOTICE);


//Put in your own info for username, password, DB,
email@address, Cookiename,
//the name of this page (currently login.php) and the
name of your subscribe
//or new user page (currently new.php).  I went ahead
and included all the HTML
//so this page should work as is, with only the
changes described above needed
// - Lysander (Lysander@onlychildclub.com)

$dblink = mysql_pconnect("localhost","usr","pass");
mysql_select_db("tassie_tipping");

$headers=0; //Make Sure HTML Headers are in place
before the form

//after Authenticating the script automatically sends
the browser to
//the webpage of your choice (note if your page calls
this
//script with ?redirect="foobar.php" it will
automatically
//redirect to foobar.php after authenticating.  Set
the default
//redirect page here

if ( !isset($redirect))
   {
     $redirect = "tip.php";
   }

if (isset($Username) && isset($Password)) {

  $query = "select * from tipping where nickname =
\"$Username\" and password = \"$Password\"";

  if ( !($dbq = mysql_query($query, $dblink))) {
    echo "Unable to query database.  Please Contact <a
href=\"sales@tassiedemononline.org.au\">mailto:sales@tassiedemononline.org.au</a>.\n";
    exit;
  }

  $lim = mysql_num_rows( $dbq );

  if ($lim != 1) {

  $headers=1; //HTML headers in place
  echo "<HTML><HEAD><TITLE>Login
Page</TITLE></HEAD><BODY>";
  echo "<B><center><font color=red>Invalid User ID or
Password. Please Try again</B><BR></font></center>";

  }

  if ($lim == 1) {

//make unique session id and store it in Database
  $timer = md5(time());
  $sid = $Username . "+" . $timer;
  SetCookie("login",$sid,time()+3600); //Set Cookie
for 30 days
  $query = "update tipping set sid=\"$timer\" where
nickname=\"$Username\"";

  if( !($dbq = mysql_query( $query, $dblink))) {
    echo "Unable to update database.  Please contact
<a
href=\"sales@tassiedemononline.org.au\">mailto:sales@tassiedemononline.org.au</a>.\n";
  exit;
  }

  header("Location: $redirect");
  exit;

}

if (isset($login)) {
  $headers=1;
  $sidarray = explode("+", "$login");
  $query = "select * from tipping where nickname =
\"$sidarray[0]\" and sid = \"$sidarray[1]\"";

  if ( !($dbq = mysql_query($query, $dblink))) {
    echo "Unable to find database.  Please Contact <a
href=\"mailto:sales@tassiedemononline.org.au\";>sales@tassiedemononline.org.au</a>.\n";
    exit;
  }

  if (mysql_num_rows( $dbq ) == 1) {
    echo "<HTML><HEAD><TITLE>Login
Page</TITLE></HEAD><BODY>";
    echo "<center>You are already logged in as
$sidarray[0].<BR>";
    echo "You may logon as another user or simply
begin using our services with your current
session.<BR>";
    echo "Click <A
Href=\"http://www.tassiedemononline.org.au/tiplogin.php\";>Here</A>
to return to our homepage.</center>";
  }
}
if ($headers == 0) {
echo " ";
}
}

echo "<Form Action=\"tiplogin.php\" METHOD=POST>";
echo "<H2>User Name</H2>";
echo "<Input TYPE=\"text\" Name=\"Username\"
Value=",$Username,">";
echo "<BR>";
echo "<H2>Password</H2>";
echo "<Input TYPE=\"password\" Name=\"Password\">";
echo "<BR>";
echo "<Input Type=\"submit\" Value=\"Submit\">";
echo "<Input Type=\"hidden\" Name=\"redirect\"
Value=\"tip.php\">";
echo "</FORM>";

?>

--end--

Okay as you can see in the code there are some
//comments.  Will help explain what each function
does, or what it's meant to do.

A quick overview is that you are shown a login form. 
(no cookies loaded onto the users PC as of yet)  The
user must input a username and password which must
match in the database.  If there is a match the user
is given a cookie on their PC with an expiry period
which than loads onto the next page $redirect which
the $redirect page checks to see if the user still
matches in the database and see's if the cookie (id)
or sid matches with the database.  If matches it
allows you to see the page, if not it says your
session has times out and to try again.

It works fine under my linux machine, no problems. 
But as soon as I tried under windows after I installed
all my programs I needed it failed badly.

What it does under windows is show the form and input
my username and password (does not matter if they are
correct or not because the results are the same) and I
click the submit button and all it does is reload the
form.

What it appears to be doing is not even doing the
mysql query.  (form the looks of it)  It seems to loop
through the page again as if your loading it the first
time.  Either that or my form is not submitting the
data at all.

If I don't enter data on my linux server on the login
I get a error message (which is in the code) but if I
do it on windows it does nothing.  Just loads the form
again.

So I am going to try something new later today and
have the form and the logn process on two different
pages and see what happens.  Not sure if this will do
anything different but I will try.  Anyone got any
suggestions?

My other PHP pages under windows work fine, they query
my mysql database(s) fine and output the results as
they should.  This is the only thing I am having
problems with at the pressent time.

All help/suggestions are appreicated.

Jerry



http://mobile.yahoo.com.au - Yahoo! Mobile
- Check & compose your email via SMS on your Telstra or Vodafone mobile.

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux