Cookies are not set properly in PHP script

Im very new in php and trying to use cookie, but it is not fighting on my site, can anyone direct me, please, what happens in my code:

<?php
session_start();
?>
<script>
function Redirect(url)
{
 location.href = url;
}

</script>
<?php 

define('_VALID_ACCESS', true);
include_once "includes/connect.php";
include_once "includes/login.php";


if(empty($_POST['loginname']) || empty($_POST['password']))
{
    $msg = "User or password is empty";
}
else
{
    if(login($_POST['loginname'], $_POST['password']) == true)
    {
        $usern = $_POST['loginname'];
        session_register('loginname');
        $loginname = $usern;        
        sleep(1);
            if(activestatus($_POST['loginname'], $_POST['password']) == true)
            {
            $usern = $_POST['loginname'];
            session_register('loginname');
            $loginname = $usern;        
            sleep(1);

            $hour = time() + 3600;
            setcookie("ID_my_site", $_POST['loginname'], $hour);
            setcookie("Key_my_site", $_POST['password'], $hour); 
            $test = $_COOKIE["ID_my_site"];
            $msg = "<script> Redirect ('home.html?testname=".$test."')</script>"; 
             //header("Location: home.html"); 
            }
            else
            {
            $msg = "<script> Redirect ('valid.php?testname=".$usern."')</script>"; 
            }

    }
    else
    {
        $msg = "<font color=red>User or Password is wrong</font>";
    }
}
echo '<div id="divTarget">' . $msg . '</div>'; 
?>
  <link rel="stylesheet" href="css/blueprint/screen.css" type="text/css" media="screen, projection">
  <link rel="stylesheet" href="css/blueprint/print.css" type="text/css" media="print">
  <link rel="stylesheet" href="css/blueprint/ie.css" type="text/css" media="screen, projection">  
 <body>
 <div class="container" id="login_container">
<form id="login" action="action.php" method="post" name="loginform" >
    <fieldset id="login_screen"  style="width:350px">
        <label id="login_label" for="login">User Login </label> 
        <br><br>
        <label for="login">Email Address</label>
        <input type="text" name="loginname" id="loginname" value="email@coolmates.com">    
        <p id="space"><label for="password">Password</label>
        <input type="password" id="password" name="password"  value="********" ></p>
        <input type="checkbox">Keep me signed in until i signout
        <p id="test"><input type="submit" value="Submit"></p>
        <a href="forgetpassword.html">Forgot
        your password</a>&nbsp;&nbsp;|<span id="free">Not a member?</span><a href="regForm.html">Sign up</a><blink><span id="free">Free</span></blink> 
        </p>
    </fieldset>
</form> </div>
</body>
+5
source share
4 answers

Turn on display_errors and set error_reporting to E_ALL, and you will see the error message "headers already sent" - you need to call setcookie (), BEFORE ANY HTML SEND. From php.net/setcookie:

setcookie() cookie HTTP . , cookie script ( ). , ,  , .

, :

<script>
function Redirect(url)
{
 location.href = url;
}

</script>

, cookie.

, , , script, $_SESSION cookie script , .

+6

( ):

setcookie("ID_my_site", $_POST['loginname'], $hour,'/');

( ):

setcookie("ID_my_site", "$_POST['loginname']", $hour,'/');
+3

1st session_register, .

session_register 4.1.0 PHP 5.3

$_SESSION["loginname"] = $_POST["loginname"]

2nd, , , .

$_SESSION["foo"] = 1;
header("Location: stuff.php");

stuff.php. , , , , , , .

if($_SESSION["authenticated"] == 0)
{
    header("Location: login.php");
    die();
}
+2

- cookie - No-No!!!

- , - , , ( MD5)

+1

All Articles