Hallo mensen,

Ik heb al geruime tijd ervaring met HTML / CSS, maar ben recent met PHP begonnen. Op dit moment maak ik een variant op een raad het getal script die ik van internet heb gedownload. Echter, ik heb een vrij groot probleem. Als ik mijn PHP code in een bestand heb waar voor de rest helemaal niks in staat (zelfs geen HTML basis tags zoals "<head' etc.), doet hij het precies zoals ik het wil, maar zodra ik ook maar een aantal regels HTML ga toevoegen, wat voor het eindproduct wel nodig is (ik moet hem in een bestaand HTML bestand doen), komt hij in een soort vicieuze cirkel terecht en daarmee ook niet tot het gewenste scherm.

Hoe het zou moeten werken (dit is het bestand zonder ook maar iets anders dan PHP): http://inted.nl/getalrader.php
Hoe het nu werkt (hoe het niet zou moeten werken!, dit is de versie waarbij er wel andere regels zijn toegevoegd dan alleen PHP): http://grinding.inted.nl/getalrader.php

De sourcecode :


<?php session_start();

$iHighestValue = 1000;
$iLowestValue = 0;

if(!isset($_GET['sDo']))
{
    $_GET['sDo'] = 'start';
}

if($_GET['sDo'] == 'start')
{
    if(!isset($_SESSION['iNumber']))
    {
        echo 'Random nummer wordt gemaakt...<br />' . "\n";
        $_SESSION['iNumber'] = rand($iLowestValue, $iHighestValue);
        echo 'Je kunt beginnen met raden, door <a href="getalrader.php?sDo=guess">hier</a> te klikken.<br />' . "\n";
    }
    else
    {
        if($_SERVER['REQUEST_METHOD'] != 'POST')
        {
?>
<form action="getalrader.php?sDo=start" method="post">
    Er is al een random nummer... Wil je die resetten?<br />
    <input name="sResetNumber" type="submit" value="Ja" />
    <input name="sResetNumber" type="submit" value="Nee" />
</form>
<?php
        }
        else
        {
            if($_POST['sResetNumber'] == 'Ja')
            {
                unset($_SESSION['iNumber']);
                echo 'Nummer is gereset, klik <a href="getalrader.php?sDo=start">hier</a> om opnieuw te beginnen.<br />' . "\n";
            }
            else
            {
                echo 'Nummer is niet gereset.. Klik <a href="getalrader.php?sDo=guess">hier</a> om te gaan raden.<br />' . "\n";
            }
        }
    }
}
elseif($_GET['sDo'] == 'guess')
{
    if(!isset($_SESSION['iNumGuesses']))
    {
        $_SESSION['iNumGuesses'] = 0;
    }
    if(isset($_SESSION['iNumber']))
    {
?>
<form action="getalrader.php?sDo=guess" method="post">
    Ik raad: <input name="iGuessed" type="text" value="<?php echo htmlspecialchars(@$_POST['iGuessed']); ?>" /><br />
    <input type="submit" value="Raden!" />
</form>
<?php
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {
            $_POST['iGuessed'] = intval($_POST['iGuessed']);
            if($_POST['iGuessed'] == $_SESSION['iNumber'])
            {
                echo 'Je hebt het nummer geraden in ' . (isset($_SESSION['iNumGuesses']) ? $_SESSION['iNumGuesses'] : 0) . ' keer!<br />' . "\n";
                unset($_SESSION['iNumber']);
                unset($_SESSION['iNumGuesses']);
                echo 'Klik <a href="getalrader.php?sDo=start">hier</a> om opnieuw te beginnen<br />' . "\n";
            }
            else
            {
                echo 'Je hebt het nummer niet geraden, helaas! Het nummer is ';
                if($_POST['iGuessed'] > $_SESSION['iNumber'])
                {
                    echo 'kleiner dan';
                }
                else
                {
                    echo 'groter dan';
                }
                $_SESSION['iNumGuesses'] = (isset($_SESSION['iNumGuesses']) ? ($_SESSION['iNumGuesses'] + 1) : 1);
                echo ' ' . $_POST['iGuessed'] . ' (in totaal al ' . $_SESSION['iNumGuesses']. ' keer geraden)';
            }
        }
    }
    else
    {
        echo 'Je hebt nog geen nummer.... Klik <a href="getalrader.php?sDo=start">hier</a> om er een te maken.<br />' . "\n";
    }
}
else
{
    echo 'Deze actie wordt niet toegelaten.. <a href="getalrader.php?sDo=start">Ga terug naar het begin</a>.<br />' . "\n";
}
?>


De code waar het in moet:


<!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">
<head>
<title>PHP Opdrachten</title>
<link rel="stylesheet" style="text/css" href="http://twitter.github.com/bootstrap/1.4.0/bootstrap.css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link href='http://fonts.googleapis.com/css?family=Noticia+Text' rel='stylesheet' type='text/css'>
</head>
<body class="opdrachten">
<div id="container">
	<div id="navigation">
        <ul>
   			 <li><a href="index.php">Home</a></li>
   			 <li><a href="eindprijs.php">Eindprijs</a></li>
    		 <li><a href="gastenboek.php">Gastenboek</a></li>
   			 <li><a href="dieet.php">Dieet</a></li>
             <li><a href="concert.php">Concert</a></li>
			 <li><a href="getalrader.php">Getalrader</a></li>
             <li><a href="highscore.php">Highscore</a></li>
             <li><a href="mastermind.php">Mastermind</a></li>
		</ul>
        <a href="index.php">
    	<div id="logo">
        </div>
        </a>
    </div>
    <div id="header_getalrader">
    </div>
    <div id="opdrachten_content">
    	<div id="opdrachten_content_text">
/*code moet hier*/
        </div>
    </div>
    <div id="footer">
    	<div id="footer_content">
        	<div id="footer_logo">
            PHP opdrachten
            </div>
            <div id="divider_klein">
            </div>
            <div id="footer_disclaimer">
            Al het materiaal op deze website is afkomstig van Martin Kamminga, Vincent van der meulen en Wisse krikke. &copy; 2013  Alle rechten voorbehouden.
            </div>
            <div id="divider_lang">
            </div>
            <div id="footer_link_kolom1">
            <a href="index.php">Home</a><br /> <a href="eindprijs.php">Eindprijs</a>
            </div>
            <div id="footer_link_kolom2">
            <a href="gastenboek.php">Gastenboek</a><br /><a href="dieet.php">Dieet</a>
            </div>
            <div id="footer_link_kolom3">
            <a href="concert.php">Concert</a><br /> <a href="getalrader.php">Getalrader</a>
            </div>
            <div id="footer_link_kolom4">
            <a href="highscore.php">Highscore</a><br /> <a href="mastermind.php">Mastermind</a>
            </div>
       
    </div>
</div>
</body>
</html>


Hopelijk begrijpen jullie me probleem en kan iemand me verder helpen. Alvast bedankt voor de hulp, het wordt gewaardeerd!

Vincent
De meesten hier op het forum hebben wel een probleem met hun script, dus zou je daarom de titel even aan kunnen passen?

En paar [cod[b]
e]-tags om je code zou ook wel handig zijn.[/b]
- Aar - op 25/10/2013 00:22:54

De meesten hier op het forum hebben wel een probleem met hun script, dus zou je daarom de titel even aan kunnen passen?

En paar [cod[b]
e]-tags om je code zou ook wel handig zijn.[/b]


Ik heb het aangepast :) Bedankt!
Ik neem aan dat de extensie van het bestand waar je de php code in gaat zetten wel .php is?

Verder moet je session_start(); helemaal bovenaan plaatsen
Zorg er in ieder geval voor dat <?php session_start(); ?> altijd bovenaan staat.
- Aar - op 25/10/2013 09:11:19

Zorg er in ieder geval voor dat <?php session_start(); ?> altijd bovenaan staat.


Q S op 25/10/2013 09:10:41

Ik neem aan dat de extensie van het bestand waar je de php code in gaat zetten wel .php is?

Verder moet je session_start(); helemaal bovenaan plaatsen



Bedankt jongens! Volgensmij werkt hij nu :) - Althans bij mij, zouden jullie zo vriendelijk willen zijn ook even te kijken of hij bij jullie ook daadwerkelijk het spel bereikt? Bedankt! http://grinding.inted.nl/getalrader.php
Ik heb het getal geraden. Lijkt mij goed te gaan nu.
Q S op 25/10/2013 10:22:07

Ik heb het getal geraden. Lijkt mij goed te gaan nu.


Dan is het dus opgelost! Bedankt iedereen!
Ik heb ook even getest, maar soms als ik een geta raad krijg ik geen feedback. Dan komt er geen tekst in beeld of het te hoog of te laag is.
Ik kan nou in ieder geval een getal invullen en raden.
Er is niet duidelijk tussen welke getallen het getal moet liggen. 0-10,0-100,0-1000?
Reset werkt niet. Als je ?sDo=guess weg haalt wordt gevraagd of je wil resetten en vervolgens gaat ie verder waar ie is gebleven (x keer geraden telt door).
Ik kan input ook leeg laten, dan telt die ook verder.
Waarom moet ik zo vaak op een onduidelijke 'hier' klikken?

Er is al een random nummer... Wil je die resetten?
Ja

Nummer is gereset, klik hier om opnieuw te beginnen.

Random nummer wordt gemaakt...
Je kunt beginnen met raden, door hier te klikken.

Raden

Dat kan ook in één keer. Als ik reset kun je ook gelijk naar het input veld gaan.
Zorg ook dat 'hier' is onderstreept of een andere kleur heeft.
Michael - op 25/10/2013 11:30:45

Ik kan nou in ieder geval een getal invullen en raden.
Er is niet duidelijk tussen welke getallen het getal moet liggen. 0-10,0-100,0-1000?
Reset werkt niet. Als je ?sDo=guess weg haalt wordt gevraagd of je wil resetten en vervolgens gaat ie verder waar ie is gebleven (x keer geraden telt door).
Ik kan input ook leeg laten, dan telt die ook verder.
Waarom moet ik zo vaak op een onduidelijke 'hier' klikken?

Er is al een random nummer... Wil je die resetten?
Ja

Nummer is gereset, klik hier om opnieuw te beginnen.

Random nummer wordt gemaakt...
Je kunt beginnen met raden, door hier te klikken.

Raden

Dat kan ook in één keer. Als ik reset kun je ook gelijk naar het input veld gaan.
Zorg ook dat 'hier' is onderstreept of een andere kleur heeft.


De hier is inderdaad onduidelijk, excuses daarvoor, ik moet de pagina nog stylen :) Voor de rest, het script komt grotendeels van internet aangezien ik zelf nog lerend ben qua PHP, dit is natuurlijk niet handig, maar qua tijd zit ik op dit moment een beetje krap. Hoe zou ik de code moeten aanpassen wil ik afkomen van die schermen, die zijn inderdaad irritant, of heb je daar een tutorial / handige tip voor?

Wat betreft de reset weet ik niet precies hoe dit komt, bij mij zelf werkt hij goed en hij reset hem ook, voor zover ik kan zien, op de juiste manier. Ervaren andere mensen het probleem van een niet werkende reset ook?

Vincent

Reageren