0

I have 2 pages:

index.php

<?php session_start(); ?>
<!DOCTYPE html>

<html>
<head>
    <title></title>

    <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">

    <link rel="stylesheet" type="text/css" href="style.css">

</head>
<body>
    <div class="container">
        <div class="wrapper">
            <h1>Welcome to the Great Number Game!</h1>  
                <h3>I am thinking of a number between 1 and 100</h3>
                <h3>Take a guess!</h3>

<?php

    echo $_SESSION['message'];



?>
                <form method="post" action="process.php">
                    <input type="hidden" name="action" value="guess">
                    <input type="text" name="number">
                    <br>
                    <input type="submit" value="Submit">
                </form>
        </div>
    </div>
</form>
</body>
</html>

and process.php

<?php session_start(); ?>


<?php header('Location: index.php'); ?>

<?php

if (!isset($_SESSION["message"])) {
    $_SESSION["message"] = "";
}

if(!isset($_SESSION['num'])) {
    $_SESSION['num'] = rand(1, 100);
}   




    $new_game = "<a href='logout.php'><button class='btn'>Play again</button></a>";


if ($_POST['number']) {


    $number = $_POST['number'];

    if (is_numeric($_POST['number'])) { 



        if ($number > $_SESSION['num']) {
            $_SESSION['message'] = "<div class='bad-guess'>Too high!</div>";

        }elseif ($number < $_SESSION['num']) {
            $_SESSION['message'] = "<div class='bad-guess'>Too low!</div>";

        }else{
            $_SESSION['message'] = "<div class='lucky-guess'>Congratulations! ".$_POST['number']." was the number!</div><br>".$new_game;


        }   

    }else{
        $_SESSION['message'] = "<div> <b>'$number'</b> is not a number. Please insert a number!</div>";
    }

}

?>

Problem is that then I am starting session, I got the error that my $_SESSION['message'] index is undefined. Then I start guessing number, I got correct messages. So how can I define $_SESSION['message'] for sessions beggining?

Jaras
  • 21
  • 4
  • Possible duplicate of [PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"](https://stackoverflow.com/questions/4261133/php-notice-undefined-variable-notice-undefined-index-and-notice-undef) – Carl Binalla Jun 09 '17 at 06:06

2 Answers2

4

in your index.php page

Put this

echo $_SESSION['message'] != '' ? $_SESSION['message'] : 'No messages'; 
Krunal Limbad
  • 1,533
  • 1
  • 12
  • 23
3

Check if it is set first in index.php

if(isset($_SESSION['message']))
{
    echo $_SESSION['message'];
}
Carl Binalla
  • 5,393
  • 5
  • 27
  • 46