Avatar billede Naddo Nybegynder
17. oktober 2009 - 17:45

Include, cookies, login > member side

Hej

Nu er jeg kørt død i det her!

Er started på at lære lidt om PHP, så fandt en guide til et login script. Og har så ændret i det så det passer til min side.

Min side er bygget op af div, hvor der er include i. og det virker fint. Men når jeg logger ind via login form, skal den på content siden (i midten) komme hen på members siden, men det synes den ikke og så kommer Firefox med dettet:

Denne side viderefører ikke forespørgslen korrekt

Firefox har opdaget at webstedet viderestiller forespørgslen til sig selv på en måde, der forhindrer den i nogensinde at blive færdig.

*  Dette problem kan nogle gange skyldes, at cookies er slået fra, eller modtagelse af cookies er blevet nægtet.

Scripted virker fint hvis det går til en side for sig selv eller åbner i den samme div. Det virker fx heller ikke hvis jeg har login i content. da når man så trykker login så kommer home bare frem....

Hjælp mig med at løse og forstår det

kode
-------------
min index.php hvor alt kommer ind.
her er det php, som har med det at gøre

<div id="content">
                  <?php
                    if(!isset($_GET['page']))
            {
            include ('build/pages/home.php');
            }
                        else       
            {
                    include $_GET['page'];
            }       
?>
   
               
</div>
<div id="rightmenu">

                if(!isset($_GET['login']))
        {
        include_once ('build/loginscript/login.php');
        }
        else
        {
        include $_GET['login'];
        }
        ?>
   
</div

-------------------
login.php

<?php
// Connects to your Database
mysql_connect("80.166.252.106", "XXxXxxx", "XXXXxxX") or die(mysql_error());
mysql_select_db("login_test") or die(mysql_error());

//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))

//if there is, it logs you in and directes you to the members page
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: index.php?page=build/loginscript/members.php");

}
}
}

//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted

// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
die('You did not fill in a required field.');
}
// checks it against the database

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Incorrect password, please try again.');
}
else
{

// if login is ok then we add a cookie
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//then redirect them to the members area
header("Location: index.php?page=build/loginscript/members.php");
}
}
}
else
{

// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?>

------
members.php



<?php
// Connects to your Database
mysql_connect("80.166.252.106", "xxxxxx", "xxxxx") or die(mysql_error());
mysql_select_db("login_test") or die(mysql_error());

//checks cookies to make sure they are logged in
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{

//if the cookie has the wrong password, they are taken to the login page
if ($pass != $info['password'])
{ header("Location: index.php?login=build/loginscript/login.php");
}

//otherwise they are shown the admin area
else
{
echo "Admin Area<p>";
echo "Your Content<p>";
echo "<a href=index.php?login=build/loginscript/logout.php>Logout</a>";
}
}
}
else

//if the cookie does not exist, they are taken to the login screen
{
header("Location: index.php?login=build/loginscript/login.php");
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester