Gastboek, Gegevens plaatsen in database loopt mis

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stef van de Ven

Stef van de Ven

28/10/2009 15:16:00
Quote Anchor link
Hoi allemaal,

Ik ben een website aan het maken voor een jeugdvereniging waar ik bij zit en tot nu toe liep dat allemaal soepeltjes. Ik heb redelijk verstand van html en css, maar php blijkt toch wat moeilijker te zijn voor een beginner. :$

Ik ben nu bezig met een gastenboek, want Tboek is niet echt een geweldige oplossing. Ik heb mijn registratie script van mijn inlog systeem erbij gepakt en heb deze zodanig bewerkt dat het script alleen de nodige dingen zou posten in mijn database. (inlogscript komt van: http://www.phphulp.vindme.nl/AKLogin/code/index.php )

Mijn registratie script werkt wel, maar na aanpassing voor mijn gastenboek kan het script de gegevens niet in de database plaatsen. (query error)

Registratiescript is te vinden in bovenstaande link...
Mijn aangepaste gastenboek 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?PHP

/* Kijken of er iets gepost wordt. */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    /* Kijken of er op de knop GO wordt geklikt. */
    if(isset($_POST['Go']))
    {

          /* Kijken of er een naam is ingevuld. */
             if(isset($_POST['Naam']) && $_POST['Naam'] != '')
             {

                                /* Kijken of er een email adres is ingevuld. */
                                if(isset($_POST['Email']) && $_POST['Email'] != '')
                                {

                                    /* Kijken of het email adres langer dan 5 is. */
                                    if(strlen($_POST['Email']) > 5 )
                                    {

                                        /* Kijken of het email adres wel geldig is. */
                                        if(ereg('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$', $_POST['Email']))
                                        {

                /* Kijken of er een bericht is ingevuld. */
                                        if(isset($_POST['Bericht']) && $_POST['Bericht'] != '')
                                        {
                                            
                                                            /* Query uitvoeren om de gegevens in de database te plaatsen. */
                                                            $cQuery =
                                                            "
                                                                INSERT INTO
                                                                    gastenboek
                                                                    (
                                                                            Naam,
                                                                            Email,
                        Bericht
                                                                    )
                                                                VALUES
                                                                    (
                                                                        '"
.mysql_real_escape_string($_POST['Naam'])."',
                                                                        '"
.mysql_real_escape_string($_POST['Email'])."',
                                                                        '"
.mysql_real_escape_string($_POST['Bericht'])."',
                                                                        '"
.mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
                                                                        '"
.mysql_real_escape_string( 0 )."',
                                                                    )
                                                            "
;
                                                            
                                                            /* Resultaat van de query. */
                                                            $cResultaat = mysql_query($cQuery);
                                                            
                                                            /* Kijken of de query is gelukt. */
                                                            if(!$cResultaat)
                                                            {

                                                                /* Fout opgetreden met invoeren van gegevens. */
                                                                echo 'Er is een fout opgetreden met het aanmaken van jouw bericht, <a href="javascript: history.go(-1)"class="link_orange">Terug</a>.';
                                                                exit();
                                                            }

                                                            else
                                                            {                                                  
                                                                /* Account is succesvol aangemaakt. */
                                                                echo 'Bericht succesvol aangemaakt. U moet uw account eerst activeren om in te kunnen loggen.<br>';
                                                            }}

                else
                                        {
                                            /* bericht is niet geldig. */
                                            echo 'U heeft geen bericht ingevult, <a href="javascript: history.go(-1)"class="link_orange">Terug</a><br><br>';
                                            exit();
            } }

                                        else
                                        {
                                            /* Email adres is niet geldig. */
                                            echo 'Dit email adres is niet geldig, <a href="javascript: history.go(-1)"class="link_orange">Terug</a><br><br>';
                                            exit();
                                        }
                                 }

                                    else
                                    {
                                        /* Email adres is te kort. */
                                        echo 'Dit email adres is te kort, <a href="javascript: history.go(-1)"class="link_orange">Terug</a><br><br>';
                                        exit();
                                    }
                                }

                                else
                                {
                                    /* Geen email adres ingevuld. */
                                    echo 'Er is geen email adres ingevuld, <a href="javascript: history.go(-1)"class="link_orange">Terug</a><br><br>';
                                    exit();
                                }
                            }

        else
        {
            /* Geen gnaam ingevuld. */
            echo 'U heeft geen naam ingevuld, <a href="javascript: history.go(-1)"class="link_orange">Terug</a><br><br>';
            exit();
        }
    }
}

?>


<form id="GB" name="Gastenboek bericht plaatsen" method="post" action="">
<table width="303" border="0">

<tr>
<td><p>Naam:</p></td>
<td><input type="text" name="Naam" /class="tekst"></td>
</tr>

<tr>
<td><p>Email Adres:</p></td>
<td><input type="text" name="Email" /class="tekst"></td>
</tr>

<tr>
<td><p>Bericht:</p></td>
<td><input type="text" name="Bericht" /class="tekst1"></td>
</tr>

<tr>
<td><br><input name="Go" type="submit" id="Go" value=" Verstuur * " /class="btn"></td></tr>
</table>
</form>

Heeft iemand een oplossing hier voor, ik met mijn totaal geen php ervaring, weet niet wat ik moet doen. (A)

alvast bedankt!
 
PHP hulp

PHP hulp

24/04/2024 01:02:06
 
Mar cel

Mar cel

28/10/2009 15:21:00
Quote Anchor link
Kijk is goed naar de komma's bij je query. De komma's na email en ".mysql_real_escape_string( 0 )."' moeten weg.
 
Koen

koen

28/10/2009 15:26:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'".mysql_real_escape_string( 0 )."',


die laatste comma op regel 40 impliceert dat er meer moet komen... wat t niet doet.
maar deze was ook al opgemerkt, sorry
Gewijzigd op 01/01/1970 01:00:00 door koen
 
Stef van de Ven

Stef van de Ven

28/10/2009 15:27:00
Quote Anchor link
De komma na email moet blijven staan, na het kopiëren is het "Bericht" van de query weggevallen...

Ik heb de komma na '".mysql_real_escape_string( 0 )."' weggehaald,
maar nog steeds krijg ik een error (A)
Gewijzigd op 01/01/1970 01:00:00 door Stef van de Ven
 
Koen

koen

28/10/2009 15:28:00
Quote Anchor link
wat voor error krijg je stef?
je probeert trouwens een stuk of 4 values te proppen in 2 cellen
Gewijzigd op 01/01/1970 01:00:00 door koen
 
Stef van de Ven

Stef van de Ven

28/10/2009 15:29:00
Quote Anchor link
Er is een fout opgetreden met het aanmaken van jouw bericht, Terug

Dit betekend dus dat de query niet gelukt is blijkbaar...
 
Koen

koen

28/10/2009 15:32:00
Quote Anchor link
misschien dus omdat je de naam en email, en ook het bericht(en meer) wilt proppen in 2 cellen,
namelijk:
naam, email
 
Stef van de Ven

Stef van de Ven

28/10/2009 15:34:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<? php

INSERT INTO
gastenboek
(
     Naam,
     Email,
     Bericht
?>


Dit is wat er nu staat, dit zou toch gewoon goed moeten zijn? :S
Of wat moet ik anders veranderen dan?
 
Koen

koen

28/10/2009 15:36:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
'".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
'".mysql_real_escape_string( 0 )."',

waar laat je deze waardes dan?
 
Stef van de Ven

Stef van de Ven

28/10/2009 15:41:00
Quote Anchor link
Ik voel me ineens heel erg dom!

Ik heb die dingen gewoon gekopieerd zonder te weten wat ze eigenlijk doen.
Ik heb deze twee weggehaald en nu kunnen de berichten worden opgeslagen in de database.

Nu moet ik nog een manier zien te vinden om ze uit de database te halen en ze te posten op een andere pagina, dit kan ik misschien nog wel ergens vandaan halen.

In ieder geval, hartelijk bedankt voor je hulp!

Groetjes,
Stef van de Ven
 
Koen

koen

28/10/2009 15:44:00
Quote Anchor link
ze eruit halen is simpelweg een select querry.
en dan die printen of echo-en
dat zal niet al te moeilijk zijn.
en juist op die simpelste dingen lopen de meeste scripts vast.

succes ermee (Y)
 
- SanThe -

- SanThe -

28/10/2009 15:58:00
Quote Anchor link
Bouw foutafhandeling in dan hoef je bij een eventuele volgende fout niet meer te zoeken.
 
Koen

koen

28/10/2009 16:16:00
Quote Anchor link
die foutafhandeling, staat in dit script als een reeks geneste if-jes.
elke if geeft op zijn beurt een foutmelding, maar nu is het in ieder geval opgelost.
Gewijzigd op 01/01/1970 01:00:00 door koen
 
- SanThe -

- SanThe -

28/10/2009 16:19:00
Quote Anchor link
Ik vind echo 'Er is een fout opgetreden .......'; nou niet een fatsoenlijke foutafhandeling. Zo weet je eigenlijk nog niks.
 
Koen

koen

28/10/2009 16:21:00
Quote Anchor link
dat is waar.
maar zoals je ziet geeft ie bij elke stap een andere foutmelding
er is een fout opgetreden.....
is namelijk alleen als de afbeelding niet gemaakt is,
anders komt er te staan, dat de naam of email verkeerd is.
 
- SanThe -

- SanThe -

28/10/2009 16:25:00
Quote Anchor link
De 'echte' error staat in mysql_error() en daar staat letterlijk de fout in aangegeven. Lijkt mij toch een stuk duidelijker.
 
Koen

koen

28/10/2009 16:26:00
Quote Anchor link
je hebt helemaal gelijk.
 



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.