geeft standaard de foutmelding velden invullen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hugo L

Hugo L

25/02/2008 09:04:00
Quote Anchor link
hoi hoi..

Ben bezig om een script te schrijven maar wil niet echt lukken..
Bij toevoegen heb probeer ik checks in te bouwen. maar als ik dan erna toe ga zonder ik nog iets heb ingevuld komt die al met de melding dat ik niets heb ingevuld..

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
<?php
include('variabelen.php');
{

if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))

$aErrors = array();
if(empty($_POST['titel'])){
  $aErrors[] ='- U bent vergeten om titel in te vullen';
}

if(empty($_POST['door'])){
  $aErrors[] ='- U bent vergeten om  doorin te vullen';
}



if(count($aErrors) == 0){
    // geen fouten, verwerk het formulier, plaats hier je code
      
    addslashes(htmlspecialchars($_POST['titel']));
    addslashes(htmlspecialchars($_POST['artiest']));
    addslashes(htmlspecialchars($_POST['sleevenr']));
    addslashes(htmlspecialchars($_POST['trefwoorden']));
    addslashes(htmlspecialchars($_POST['door']));


       $query="INSERT INTO multimedia  (titel, artiest, genre, datum, trefwoorden, minuten, sleevenr , jaar, door) VALUES (
       '"
. $_POST['titel'] . "',
       '"
. $_POST['artiest'] . "',
       '"
. $_POST['genre'] . "',
       '"
. date("Y-m-d H:i:s")  . "',
       '"
. $_POST['trefwoorden'] . "',
       '"
. $_POST['minuten'] . "',
       '"
. $_POST['sleevenr'] . "',
       '"
. $_POST['jaar'] . "',
       '"
. $_POST['door'] . "')";
        
        mysql_query($query) or die (mysql_error());
           ?>

        <SCRIPT language="JavaScript">alert("De DVD is Succesvol toegevoegd")</SCRIPT>
 <?php
}
else {
    echo '<ul class="errors">'.PHP_EOL;
    foreach ($aErrors as $sError) {
          echo '<li>'.$sError.'</li>'.PHP_EOL;
    }

    echo '</ul>'.PHP_EOL;
}
}

?>


iemand een oplossing?
 
PHP hulp

PHP hulp

27/04/2024 05:53:42
 
Jan Koehoorn

Jan Koehoorn

25/02/2008 09:16:00
Quote Anchor link
Aan het einde van regel 4 moet sowieso een accolade openen staan. Er is nog meer fout, maar dat is de eerste.
 
Erik Rijk

Erik Rijk

25/02/2008 09:17:00
Quote Anchor link
Er klopt weinig van je script :/

Een { na je include.
Geen { na de controle of er een formulier gepost is.
Geen foutcontrole op je query.

gebruik voor het inserten van gebruikersdata mysql_real_escape_string.
 
Hugo L

Hugo L

25/02/2008 09:33:00
Quote Anchor link
Erik Rijk schreef op 25.02.2008 09:17:
Er klopt weinig van je script :/
Geen { na de controle of er een formulier gepost is.


waar moet ik die zetten..

en heb de post in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'" . mysql_real_escape_string($_POST['titel']). "',


veranderd..

en regel 4 { toegevoegd
en in regel 3 wegehaald

maar werkt nog steeds niet
Gewijzigd op 01/01/1970 01:00:00 door Hugo L
 
Jan Koehoorn

Jan Koehoorn

25/02/2008 09:35:00
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
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL);
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // hier je formuliercontrole
    }
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
    <!--
    HIER JE FORMULIER
    -->
</body>
</html>
 
Hugo L

Hugo L

25/02/2008 09:41:00
Quote Anchor link
@Jan

Mag ik je hartelijk bedanken!
het werkt! :)

kan ik weer verder gaan stoeien ermee :)
 
Jan Koehoorn

Jan Koehoorn

25/02/2008 09:43:00
Quote Anchor link
Nog wat verbeteringen in je script:
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
<?php
    $aErrors
= array();
    $aRequired = array ('titel', 'door');
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        foreach ($aRequired as $val) {
            if (empty ($_POST[$val])) {
                array_push ($aErrors, 'U bent vergeten ' . $val . ' in te vullen');
            }
        }
    }

    if (empty ($aErrors)) {
        $sql = "
            INSERT INTO multimedia
            (
                titel,
                artiest,
                genre,
                datum,
                trefwoorden,
                minuten,
                sleevenr,
                jaar,
                door
            )
            VALUES
            (
                '"
. mysql_real_escape_string ($_POST['titel']) . "',
                '"
. mysql_real_escape_string ($_POST['artiest']) . "',
                '"
. mysql_real_escape_string ($_POST['genre']) . "',
                NOW(),
                '"
. mysql_real_escape_string ($_POST['trefwoorden']) . "',
                '"
. mysql_real_escape_string ($_POST['minuten']) . "',
                '"
. mysql_real_escape_string ($_POST['sleevenr']) . "',
                '"
. mysql_real_escape_string ($_POST['jaar']) . "',
                '"
. mysql_real_escape_string ($_POST['door']) . "'
            )
            "
;
    }

    else {
        // error laten zien
    }
?>

Nog een vraag: wat wil je met minuten en jaren als je al een datum hebt?
 
Hugo L

Hugo L

25/02/2008 09:52:00
Quote Anchor link
bebdankt!

de bedoeling van de datum is:
het kunnen zien wanneer ik een dvd aan mijn collectie heb toegevoegd.

als ik je script gebruik krijg ik de volgende notice:
Notice: Undefined index: titel in C:\xampp\htdocs\dvd\toevoegen.php on line 29 (volgens voorbeeld dus 27)

en dat t/m 35..
 
Jan Koehoorn

Jan Koehoorn

25/02/2008 09:55:00
Quote Anchor link
Ik vroeg niet naar de bedoeling van je datum, ik vroeg naar de bedoeling van die extra velden "minuten" en "jaren"?

Klopt, hij hoort zo:
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
<?php
    $aErrors
= array();
    $aRequired = array ('titel', 'door');
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        foreach ($aRequired as $val) {
            if (empty ($_POST[$val])) {
                array_push ($aErrors, 'U bent vergeten ' . $val . ' in te vullen');
            }
        }

        if (empty ($aErrors)) {
            $sql = "
                INSERT INTO multimedia
                (
                    titel,
                    artiest,
                    genre,
                    datum,
                    trefwoorden,
                    minuten,
                    sleevenr,
                    jaar,
                    door
                )
                VALUES
                (
                    '"
. mysql_real_escape_string ($_POST['titel']) . "',
                    '"
. mysql_real_escape_string ($_POST['artiest']) . "',
                    '"
. mysql_real_escape_string ($_POST['genre']) . "',
                    NOW(),
                    '"
. mysql_real_escape_string ($_POST['trefwoorden']) . "',
                    '"
. mysql_real_escape_string ($_POST['minuten']) . "',
                    '"
. mysql_real_escape_string ($_POST['sleevenr']) . "',
                    '"
. mysql_real_escape_string ($_POST['jaar']) . "',
                    '"
. mysql_real_escape_string ($_POST['door']) . "'
                )
                "
;
        }

        else {
            // error laten zien
        }
    }

?>
 
Hugo L

Hugo L

25/02/2008 10:29:00
Quote Anchor link
Hij werkt niet :S..

Geen foutmeldingen..
maar hij voegt hem niet toe aan de database..
als ik de sql echo en dna in mysql gooi pakt die hem wel..

Minuten is voor het aan minuten hoelang de dvd duurt.
Jaar is voor welk jaar de dvd is uitgekomen...
 
Frank -

Frank -

25/02/2008 10:31:00
Quote Anchor link
De code van Jan voert dan ook nergens een query uit en controleert ook nergens of de query is gelukt. Er ontbreekt dus nog een stuk code, dat mag je zelf even bouwen.
 
Jelle Posthuma

Jelle Posthuma

25/02/2008 10:32:00
Quote Anchor link
Ik zie ook nergens mysql_query($sql); staan...
Dan is het logisch dat er niks in de DB komt.

Edit:
pgFrank was me weer eens voor :).
Gewijzigd op 01/01/1970 01:00:00 door Jelle Posthuma
 
Hugo L

Hugo L

25/02/2008 10:53:00
Quote Anchor link
oja sorry mijn fout..

hij werkt nou iig perfect..

mag ik jullie wederom hartelijk bedanken!
 



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.