starter hangt zich (spreekwoordelijk ;)) op aan galgje script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick Zwaal

Nick Zwaal

21/03/2011 21:32:32
Quote Anchor link
Op aanraden van Mark post ik dit hier;

Ik heb geprobeerd het 'simpel script galgje v2' na te maken (http://www.phphulp.nl/php/script/php-algemeen/simpel-spel-galgje-v-2/1306/), maar dit is mij niet gelukt, volgens de foutmelding omdat de sessie niet gestart kan worden; hieronder de foutmelding en het PHP-script, tevens een link naar de site waar dit script nu draait.

(FOUTMELDING: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/projectdomes.com/projectdomes.com/httpd.www/phptest/test4.php:16) in /customers/projectdomes.com/projectdomes.com/httpd.www/phptest/test4.php on line 17 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/projectdomes.com/projectdomes.com/httpd.www/phptest/test4.php:16) in /customers/projectdomes.com/projectdomes.com/httpd.www/phptest/test4.php on line 17)


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?PHP
            session_start();
            if($_SERVER['REQUEST_METHOD']=='POST'){
                $woorden = array('Liefde', 'Draakje', 'Meesterlijk', 'Kameleon', 'Kikker', 'Project', 'Grappig'); //De woorden die moeten worden gelezen.
                $rand = rand(0,count($woorden)-1);
                $woord = $woorden[$rand];
                $_SESSION['woord']=$woord;
                $teller = 8; //Aantal kansen voor dood.
                for ($x=0;$x<strlen($woord);$x++){
                    $hidden.='-';
                }
            }
else{
                $letter=$_POST['letter'];
                $woord=$_SESSION['woord'];
                $hiddenword=$_POST['hidden'];
                $gebruikt=$_POST['gebruikt'];
                $teller=$_POST['teller'];
                $gebruikt.=$letter;
                $hidden='';
                $juist=false;
                for($x=0;$x<strlen($woord);$x++){
                    if(substr($woord,$x,1)==$letter){
                        $hidden.=$letter;
                        $juist=true;
                    }
else{
                        $hidden.=substr($hiddenword,$x,1);
                    }
                }

                if(!$juist){
                    $teller--;
                }

                if($woord==$hidden){
                    echo 'Gefeliciteerd u heeft het woord geraden!<br />';
                    echo 'Het woord was: '.$woord.'<br />';
                    $einde=true;
                }

                if($teller==0){
                    echo 'Je hebt 8 keer geraden, we moeten je helaas informeren dat je tot de overledenen behoort.'; //Evt 8 veranderen in een ander getal.
                    echo '<br />Het woord was: '.$woord;
                    $einde=true;
                }
            }

            if(!$einde){
                echo 'Voorlopig is dit geraden:<br />';
                echo $hidden;
                echo '<br />Je hebt nog '.$teller.' levens.<br />';
                if($gebruikt){
                    echo 'De volgende letters heb je al gebruikt: '.strtoupper($gebruikt);
                }
            }

        ?>


Ik begrijp niet wat er mis is aan de registratie. Heb ik naast session_start() meer nodig om een sessie te starten?
Overigens merk ik op php.net dat deze functie depricated is, wat is er voor alternatief voor session_start?
((session_start():'This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.'))

Ik kom er niet achter wat ik hier fout doe, maar vermoedt nu dat ik verouderde scripting gebruik (Ik heb PHP 5.3.5 op de server staan), kan iemand mij helpen?

((De foutmelding is te zien op http://www.projectdomes.com/phptest/test4.php))
 
PHP hulp

PHP hulp

22/12/2024 08:10:52
 
Jasper DS

Jasper DS

21/03/2011 21:35:40
Quote Anchor link
Er is waarschijnlijk al output voor je session_start()
 
Nick Zwaal

Nick Zwaal

21/03/2011 21:45:56
Quote Anchor link
Het is het allereerste PHP wat ik op de site heb, maar het staat wel in de <body> van mijn pagina. Is dit problematisch?

EDIT:
Boven PHP staat dit, verder niets:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmln="http://www.w3.org/1999/xhtml">
<head>
<link href="styles.css" rel="stylesheet" type="text/css" />
<title>Galgje</title>
</head>
<body>
<div class="placehldr2" align="center">
<div class="placehldr" align="center">
<p><h2>Reserved for project Domes.</h2></p>
<br />
<p>[ Under construction ]</p>
<p>In the meanwhile, feel free to play gallows below.</p>
</div>
Gewijzigd op 21/03/2011 21:47:02 door Nick Zwaal
 
Jasper DS

Jasper DS

21/03/2011 21:47:14
Quote Anchor link
ja, er mag geen output zijn voor session_start() zet dat dus volledig bovenaan. Wat nog beter is -> maak eerst alle php en begin daarna pas aan de html / output
 
- SanThe -

- SanThe -

21/03/2011 21:49:57
Quote Anchor link
Nick Zwaal op 21/03/2011 21:32:32:
Overigens merk ik op php.net dat deze functie depricated is, wat is er voor alternatief voor session_start?
((session_start():'This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.'))


Waar haal je dit vandaan? Linkje graag.
 
Wouter J

Wouter J

21/03/2011 21:51:07
Quote Anchor link
Je kan inderdaad veel beter alle PHP boven het doctype afhandelen. Eigenlijk zou je het in de body alleen nog maar hoeven echoën, in praktijk zijn hier soms nog wat foreach/if loops voor nodig maar in principe meer niet.
 
Nick Zwaal

Nick Zwaal

21/03/2011 21:56:45
Quote Anchor link
- SanThe - op 21/03/2011 21:49:57:
Nick Zwaal op 21/03/2011 21:32:32:
Overigens merk ik op php.net dat deze functie depricated is, wat is er voor alternatief voor session_start?
((session_start():'This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.'))


Waar haal je dit vandaan? Linkje graag.

Ik moet je een link verschuldigd zijn, ik kan het niet meer vinden :s
PHP.net geeft niets aan over deprecated.

Dan moet ik twee strings door elkaar heb gehaald op PHP.net, sorry voor de ophef!

Toevoeging op 21/03/2011 21:57:43:

PHP Jasper op 21/03/2011 21:47:14:
ja, er mag geen output zijn voor session_start() zet dat dus volledig bovenaan. Wat nog beter is -> maak eerst alle php en begin daarna pas aan de html / output


Wouter J op 21/03/2011 21:51:07:
Je kan inderdaad veel beter alle PHP boven het doctype afhandelen. Eigenlijk zou je het in de body alleen nog maar hoeven echoën, in praktijk zijn hier soms nog wat foreach/if loops voor nodig maar in principe meer niet.


Dan ga ik jullie advies maar eens ten harte nemen. Ik ga even stuntelen ;)

EDIT: Betekend dit dat 'alles' input is? (Dit bijv:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">)


EDIT2: Alles boven weggehaald om te kijken wat het doet; heb het geupload (http://www.projectdomes.com/phptest/test5.php) en de errors zijn weg ;)
Nu kan ik eindelijk beginnen aan de code ^^
Gewijzigd op 21/03/2011 22:07:50 door Nick Zwaal
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.