PHP Lingo script.
Ik moet een woord intypen, en hij moet dan checken of dit woord in een array of database staat en dan aangeven of het woord goed geraden is.
Misschien iemand een ideetje hoe ik dit ga aanpakken?
Gewijzigd op 13/02/2012 18:38:03 door Joakim Broden
Ik kom er gewoon echt niet uit.
Formulier met 1 veld en submit button.
Controleer of formulier verzonden is.
Zo ja: controleer of woord voorkomt in array of database (zie tips Hertog Jan)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$woordenlingo = array("Banaan","Agenda","Appel"); // Array aangemaakt genaamd woordenlingo, waar de woorden in komen te staan.
if (in_array("Banaan", $woordenlingo)) { // Als Banaan in array woordenlingo zit, echo dan Banaan gevonden!
echo "Banaan gevonden!";
}
if (in_array("Agenda", $woordenlingo)) { // Als Agenda in array woordenlingo zit, echo dan Agenda gevonden!
echo "Agenda gevonden!";
}
if (in_array("Appel", $woordenlingo)) { // Als Appel in array woordenlingo zit, echo dan Appel gevonden!
echo "Appel gevonden!";
}
?>
$woordenlingo = array("Banaan","Agenda","Appel"); // Array aangemaakt genaamd woordenlingo, waar de woorden in komen te staan.
if (in_array("Banaan", $woordenlingo)) { // Als Banaan in array woordenlingo zit, echo dan Banaan gevonden!
echo "Banaan gevonden!";
}
if (in_array("Agenda", $woordenlingo)) { // Als Agenda in array woordenlingo zit, echo dan Agenda gevonden!
echo "Agenda gevonden!";
}
if (in_array("Appel", $woordenlingo)) { // Als Appel in array woordenlingo zit, echo dan Appel gevonden!
echo "Appel gevonden!";
}
?>
<form name="lingo" method="POST" action="">
Woord: <input type="text" name="woord" />
<input type="submit" value="Begin!" />
</form>
Toevoeging op 13/02/2012 19:58:54:
Iemand misschien ideeën?
Gewijzigd op 13/02/2012 19:38:29 door Matciano van Wijk
Je hebt nu drie vergelijkingen staan, waar telkens een woord 'hard' gecodeerd is. Dat zal dus niet lukken. Kijki hoe je daar een variabele van maakt. En dan kan het in 1x.
Toevoeging op 13/02/2012 20:39:26:
INDEX.php
Code (php)
1
2
3
2
3
<?php
$woordenlingo = array("Banaan","Agenda","Appel"); // Array aangemaakt genaamd woordenlingo, waar de woorden in komen te staan.
?>
$woordenlingo = array("Banaan","Agenda","Appel"); // Array aangemaakt genaamd woordenlingo, waar de woorden in komen te staan.
?>
<form name="lingo" method="POST" action="lingo.php">
Woord: <input type="text" name="woord" id="woord" />
<input type="submit" value="Begin!" />
</form>
LINGO.PHP
en, lukt het daarmee?
Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\Lingo\lingo.php on line 4
Matciano van Wijk op 13/02/2012 20:50:53:
Nee, hij weergeeft een error.
Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\Lingo\lingo.php on line 4
Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\Lingo\lingo.php on line 4
zet je array boven die regel.. ;s
Gewijzigd op 13/02/2012 21:08:24 door Obelix Idefix
1, Kijken of een formulier gepost is doe je met if ($_SERVER['REQUEST_METHOD'] == 'POST') { niet met if(isset($_POST['submit'])) {.
2, Niet onnodig variabelen kopiëren. $_POST['woord'] is al een variabele dus waarom zou je daar een variabele $woord van maken.
3, In LINGO.php vraag je om $woordenlingo, maar die maak je nergens aan. Ja in INDEX.php maak je die $woordenlingo aan maar die staat toch niet in verband met LINGO.php?
4, Niet zoveel onnodige bestanden aanmaken, je kunt het ook wel één php bestand doen.
Even een opzet je:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Maak het woord aan wat geraden moet worden
$woord = 'appel';
// Maak Lingo woorden aan
$woorden = array('appel', 'banaan', 'lepel');
// Maak formuliert
<form action="" method="post">
Woord: <input type="text" name="woord" id="woord" />
<input type="submit" value="Begin!" />
</form>
// Controlleer formulier
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Formulier verstuurd
// Kijken of $_POST['woord'] in array is,
// Kijken of $_POST['woord'] gelijk is aan $woord
}
?>
// Maak het woord aan wat geraden moet worden
$woord = 'appel';
// Maak Lingo woorden aan
$woorden = array('appel', 'banaan', 'lepel');
// Maak formuliert
<form action="" method="post">
Woord: <input type="text" name="woord" id="woord" />
<input type="submit" value="Begin!" />
</form>
// Controlleer formulier
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Formulier verstuurd
// Kijken of $_POST['woord'] in array is,
// Kijken of $_POST['woord'] gelijk is aan $woord
}
?>
Paar aandacht punten.
1. Wat gebeurd er als je een word met hoofdletters in vult.
2. Wat gebeurd er als je een formulier verstuurd, dan word er een pagina refresh gedaan en veranderd je op gegeven woord dus (als je met een random woord gaat werken)
Gewijzigd op 13/02/2012 21:25:27 door Joakim Broden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$randomWoord = array_rand($woordenarray);
Toevoeging op 13/02/2012 22:49:29:
Oke, heb array_rand dus nu gedefinieerd in een variabele.
Alleen als ik dus een willekeurig woord uit mijn array invul is het nog steeds altijd goedgekeurd?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$woordenarray = array("Banaan","Agenda","Appel","Lingo","Script","Program");
$willekeurigwoord = array_rand($woordenarray);
$woord = $_POST['woord'];
if(in_array($woord, $woordenarray)) {
echo "<strong>$woord</strong> gevonden!";
}
else
{
echo "U heeft het fout, probeer het nog eens!";
}
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$woordenarray = array("Banaan","Agenda","Appel","Lingo","Script","Program");
$willekeurigwoord = array_rand($woordenarray);
$woord = $_POST['woord'];
if(in_array($woord, $woordenarray)) {
echo "<strong>$woord</strong> gevonden!";
}
else
{
echo "U heeft het fout, probeer het nog eens!";
}
}
?>
if(in_array($woord, $woordenarray)) { Hier kijk je namelijk of het woord in je Array zit. Dus als je een woord uit je array in vult is het altijd goed.
Dus je moet het $woord vergelijken met je $willekeurgwoord ipv $woordenarray.
Dus zoiets?
als $woord gelijk is aan willekeurig woord, dan goedkeuren, anders echoen dat het fout is?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$woordenarray = array("Banaan","Agenda","Appel","Lingo","Script","Program");
$willekeurigwoord = array_rand($woordenarray);
$woord = $_POST['woord'];
if(in_array($woord == $woordenarray)) {
echo "<strong>$woord</strong> gevonden!";
}
else
{
echo "U heeft het fout, probeer het nog eens!";
}
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$woordenarray = array("Banaan","Agenda","Appel","Lingo","Script","Program");
$willekeurigwoord = array_rand($woordenarray);
$woord = $_POST['woord'];
if(in_array($woord == $woordenarray)) {
echo "<strong>$woord</strong> gevonden!";
}
else
{
echo "U heeft het fout, probeer het nog eens!";
}
}
?>
volgens mij is die zo goed even proberen
if(in_array($woord == $woordenarray))
ohja het moet een komma zijn ipv de == sorry :p wat is het verschil als die dit met array_search zou doen?