Search code examples
phpdice

PHP choose the side a die has?


The php section of my code is not doing the correct operations when the user submits his/her number, for example, if the user submits 5, I want the rand function to randomly output 5 as the number selected; however, my code sometimes works and at other times does not work.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">


<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
choose a die number
</title>
</head>
<center>
<body>
<h1>Choose a die number</h1>
<form method = "post" action="choosedie.php"/>
<!--If the user selects a number of sides the die is suppose to have
rand should go through and pick the number randomly, and echo out the 
number that was entered by the user-->

Please choose how many sides a die should have from 1 through 6:
<br/>
<input type = "text" name = "roll"/>
<?php


//Roll a random dice from 1 through 6:
$roll = rand(1,6);
// Add random variable to do comparison on.

Is there a way for me to just compare rand here, without having to create another variable?

$random  = rand(1,6);

// If $roll is equal to $random echo the output out to the user.
If ($roll == $random)
{
echo "<br/>Here is the random $roll with the appropriate maximum value $random\n";

If the user selects 5, I want this to echo out 5, but I am getting different values?

}


?>


</body>
</center>
</html>

Solution

  • I think what you're trying to do here is ask the user to input how many sides the die has and then output what the value is? The question doesn't make a lot of sense... but if the above is what you're trying to do, this should work:

    choosedie.php

    <h1>Choose a die number</h1>
    <form method = "post" action="choosedie.php"/> 
    Please choose how many sides a die should have from 1 through 6:
    <br/>
    <input type="text" name="roll"/>
    <input type="submit" value="Submit" />
    </form>
    
    <?php
    if (isset($_POST["roll"])) {
      $roll = rand(1, $_POST["roll"]);
      printf("A %s was rolled, with a maximum roll of %s", $roll, $_POST["roll"]);
    }
    ?>
    

    This will allow the user to input the number of sides a die has, and then print out what was rolled along with the number of sides.