check of een waarde voldoet aan voorwaarden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper DS

Jasper DS

15/09/2010 18:19:33
Quote Anchor link
Beste,

ik maak een scriptje om frans te studeren.
Het lukt mij niet om te checken of het woord juist is.
wie kan even helpen en mij terug even op de juiste weg zetten?
De POST van het franse moet dus voldoen aan het franse woord in de database

dit is de code:
script staat in volgende post
Gewijzigd op 15/09/2010 19:58:21 door Jasper DS
 
PHP hulp

PHP hulp

11/01/2025 00:10:10
 
Noppes Homeland

Noppes Homeland

15/09/2010 18:29:59
Quote Anchor link
if(!isset($_POST['submit1'])) {
-> zo kan je niet contoleren of er een post gedaan is!!

$check = mysql_result(mysql_query("SELECT COUNT(*) FROM frans WHERE ......
-> je moet mysql functies niet nesten, dat maakt het debuggen / foutafhandeling onmogelijk
-> gebruik ook altijd maar 1 fetch methode! En de voorkeur heeft dan _fetch_assoc

Neem eerst een wat tutorials door....
 

15/09/2010 18:58:36
Quote Anchor link
Selecteer altijd wat je wilt hebben.
 
Jasper DS

Jasper DS

15/09/2010 19:10:15
Quote Anchor link
hoe kan ik best checken of de post voldoet aan het woord in de db?
 

15/09/2010 19:11:36
Quote Anchor link
mysql_real_escape_string.
Verder moet je db ook nog op het juiste karakterset ingesteld staan (dus niet die Zweedse nonsense rommel die ze standaard hebben).
 
Jasper DS

Jasper DS

15/09/2010 19:20:43
Quote Anchor link
waarom zou ik hier mysql_real_escape_string gebruiken? Ik ga niets naar de db schrijven ik wil checken of het woord dat is ingevuld gelijk is aan het woord dat in de db staat.

mijn db bestaat uit id, woord_fr, woord_nl.
woord_fr word naar het scherm geëchood dan vul je met een input een woord_nl in dan moet er nagekeken worden of het ingevulde woord hetzelfde is als het woord_nl in de database dat hoort bij het woord_fr dat weergeven is.
Gewijzigd op 15/09/2010 19:35:08 door Jasper DS
 
- SanThe -

- SanThe -

15/09/2010 19:27:47
Quote Anchor link
PHP jasper op 15/09/2010 19:20:43:
waarom zou ik hier mysql_real_escape_string gebruiken?


Omdat je userinput ($_POST) in de query zet.

Verder is de totale opzet verkeerd. Je zal het woord uit het formulier niet vinden naast het woord uit de database omdat na het posten eerst een nieuw woord uit de database wordt geselecteerd welk jij vergelijkt met het vorige woord.
 
Jasper DS

Jasper DS

15/09/2010 19:36:13
Quote Anchor link
bedankt santhe dat is een duidelijk antwoord. Kan jij me misschien zeggen hoe ik het dan best doe? of heb je misschien een tutje?

ik heb nu dit:

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
<?php
$sql
= mysql_query("SELECT * FROM frans ORDER BY RAND() LIMIT 1");
while ($res=mysql_fetch_assoc($sql)) {
$ned = $res['woord_nl'];
//output
echo '<form name="form2" method="post" action="">';
echo ''.$res['woord_nl'].'';
echo '<br />';
echo '<tabel>';
echo '<tr>';
echo '<td><input type="text" name="woord_fr"/></td>';
echo '</tr>';
echo '<tr><td><input type="submit" name="submit1" value="Versturen" /></td></tr>';
echo '</tabel>';
echo '</form>';
// foutmeldingen
if(!isset($_POST['submit1'])) {
}
  else {

$check = mysql_result(mysql_query("SELECT COUNT(id) FROM frans WHERE woord_nl='".$ned."' AND woord_fr='".mysql_real_escape_string($_POST['woord_fr'])."'"),0);
$error = array();
    if($_POST['woord_fr'] == "") {
        $error[] = 'Je moet wel iets invullen!';
    }

    if($check == "0") {
        $error[] = 'Fout';
    }

    
// foutel tellen
    $fouten = sizeof($error); // aantal errors tellen
    if($fouten != 0) { // Er is minstens 1 error
        echo '<ul>';
            for($i = 0; $i < $fouten; $i++) {
                echo '<li>'.$error[$i].'</li>';
            }

        echo '</ul>';
    }
else {
        echo 'juist!';
        echo '<br />';
     }
}
}

?>


Zoals santhe zegt
Nu wordt er gekeken naar het volgende woord en niet naar het vorige kan ik dit misschien oplossen met een cookie?
Gewijzigd op 15/09/2010 20:08:28 door Jasper DS
 
- SanThe -

- SanThe -

15/09/2010 20:15:58
Quote Anchor link
Eerst het ingegeven woord controleren en dan pas een nieuw woord en het formulier.
 
Jasper DS

Jasper DS

15/09/2010 20:18:52
Quote Anchor link
en gaat dat met die formulier?
 
- SanThe -

- SanThe -

15/09/2010 20:59:02
Quote Anchor link
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
52
53
54
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $sql = "SELECT id
            FROM frans
            WHERE woord_nl = '"
. mysql_real_escape_string($_POST['woord_nl']) . "'
            AND woord_fr = '"
. mysql_real_escape_string($_POST['woord_fr']) . "'";
    $res = mysql_query($sql);
    if($res)
    {

        if(mysql_num_rows($res) == 1)
        {

            echo 'Juiste vertaling.';
        }

        else
        {
            echo 'Onjuiste vertaling.';
        }
    }

    else
    {
        echo 'SQL Error.';
    }
}


$sql = "SELECT woord_nl
        FROM frans
        ORDER BY RAND()
        LIMIT 1"
;
$res = mysql_query($sql);
if($res)
{

    $row = mysql_fetch_assoc($res);
    echo '<form name="form2" method="post" action="">';
    echo 'Vertaal ' . $row['woord_nl'];
    echo '<input type="hidden" name="woord_nl" value="' . $row['woord_nl'] . '"/>';
    echo '<br />';
    echo '<tabel>';
    echo '<tr>';
    echo '<td><input type="text" name="woord_fr"/></td>';
    echo '</tr>';
    echo '<tr><td><input type="submit" name="submit1" value="Versturen" /></td></tr>';
    echo '</tabel>';
    echo '</form>';
}

else
{
    echo 'SQl Error.';
}


?>
 
Jasper DS

Jasper DS

15/09/2010 21:03:39
Quote Anchor link
bedankt santhe
 



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.