gastenboek (boek php 4 zonder stress

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

13/05/2005 19:39:00
Quote Anchor link
Wie kan mij helpen. Ik wil het gastenboek maken uit het boek: php 4 zonder stress. Ik ben bezig met de simpele versie en dan wil ik straks de uitgebreide versie doen. de simpele gasten boek bestaat uit 3 bestanden: guestbook_new.php, guestbook_simple.php en guestbook_data.htm. Ik heb een probleem met guestbook_simple.php, ik heb deze precies zoals in het boek beschreven staat gemaakt. Ik krijg de volgende foutmelding:
Parse error: parse error in c:\phpdev\www\public\guestbook\guestbook_simple.php on line 118
dit is de laatste regel in mijn script maar deze is verder leeg!
Wie kan mij helpen met het probleem, ik weet het niet meer?
Dit is het volledige script van guestbook_simple.php:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>guestbook</title>
</head>

<body>
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
<?php
if($guestbooknew) {

//... (Dit zorgt allemaal voor een nieuwe bijdrage)...
}
// HTML- en PHP-tags verwijderen uit de invoervelden

$naam = strip_tags($naam);
$email = strip_tags($email);
$homepage = strip_tags($homepage);
$tekst = strip_tags($tekst);

// Regeleinden omzetten in HTML-regeleinden met <br>
$tekst = nl2br($tekst);

// Invoer controleren.

if (strlen($naam) < 3) {
// Geen juiste naam ingevoerd
$error_msg = "voer alstublieft uw naam in.";
}


if(strlen($tekst) <3) {
//geen tekst ingevoerd
$error_msg .="<br>Schrijf alstublieft ook iets in het gastenboek.";
}


if(ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $email)) {
// E-mailadres correct: aan naam toevoegen als hyperlink

$naam = "<a href=mailto:" . $email . ">". $naam . "</a>";
}


if(ereg("^[a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $homepage)) {
// er werd ook een homepageadres opgegeven: de juiste opmaak toepassen

if(!ereg("^http:////", $homepage)) {
//http:// ontbreekt in het adres: hier toevoegen
$homepage = "http://" . $homepage;
}


$hp_format="<br>Homepage: <a href=" . $homepage . " target='_new'>" . $homepage . "</a>";
}


if(error_msg) {
//onjuiste invoer: opmerking weergeven en niets toevoegen
$message = "<br>uw bijdrage kon helaas niet in ons gasten boek worden opgenomen:<br>";
$message .=$error_msg;
$message .= "<br>klik op <a href=javascript:history.back(1)>vorige</a>.<br><br>";

}
else {
?>

//...(hier wordt dan het nieuwe item toegevoegd.)...

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
// nieuw gastenitem toevoegen
// nieuw gastenboekitem opmaken

$new_entry = "<table width='400' border='0' cellspacing='1' cellpadding='1'>\n";
$new_entry .= " <tr valign='top'>\n";
$new_entry .= " <td class='kleiner' width='300'>Naam: " . $naam . $hp_format . "</td>\n";
$new_entry .= " <td class='kleiner' width='100'>" . date("d-m-y H:i") . "</td>\n";

$new_entry .= " </tr>\n";
$new_entry .= " <tr valign='top'>\n";
$new_entry .= " <td colspan='2' class='kleiner'>\n";
$new_entry .= " <p>" . $tekst . "</p>\n";
$new_entry .= " </td>\n";
$new_entry .= " </tr>\n";
$new_entry .= " <tr>\n";
$new_entry .= " <td colspan='2'>\n";
$new_entry .= " <hr width='400' size='1' noshade>\n";
$new_entry .= " </td>\n";
$new_entry .= " </tr>\n";
$new_entry .= " </table>\n";
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $guestfile = "guestbook_data.htm";?>


//eerst oude items lezen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(file_exists($guestfile)) {
$fp = fopen($guestfile, "r");
$guest_data = fread($fp, filesize($guestfile));
fclose($fp);
}

?>

// nieuw item maken en vooraan opslaan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php $fp = fopen($guestfile, "w");
flock($fp, 1);
fputs($fp, $new_entry);
if(isset($guest_data)) fputs($fp, $guest_data);
flock($fp,3);
fclose($fp);
?>

// mail verzenden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$recipient
="[email protected]";
$subject = "nieuw item in gastenboek";

$header = "from: [email protected]\n";
$mail_body = "nieuw item in gastenboek";
$mail ($recipient, $subject, $mail_body, $header);
?>

</body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $message ?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("guestbook_data.htm") ?>

</html>

Het bestandje guestbook_new ziet er als volgt uit en deze werkt zonder problemen:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Uw naam</title>
</head>

<body>

<form action="guestbook_simple.php" method="post"
<table width="400" cellspacing="1" cellpadding="1" border="0">
<table>
<tr>
<td width="146">
<p>Uw naam: </p>
</td>
<td width="254" valign="middle">
<input type="text"name"naam" size="35">
</td>
</tr>

<tr>
<td width="146">
<p>Uw emailadres:</p>
</td>
<td width="254" valign="middle">
<input type="text" name="email" size="35">
</td>
</tr>
<tr>
<td width="146">
<p>Uw homepage:</p>
</td>
<td width="254" valign="middle">
<input type="text" name="homepage" size="35">
</td>
</tr>

<tr>
<td width="146">
<p>Uw bijdrage</p>
</td>
<td width="254" valign="middle">
<textarea name="tekst" rows="3" cols="30"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<p align="center">
<input type="submit" name"guestbooknew" value="verzenden">
</p>
</td>
</tr>
</form>

</body>

het bestandje guestbook_data.htm is gewoon een leeg bestandje!

Wie kan mij helpen?
 
PHP hulp

PHP hulp

28/03/2024 21:32:24
 
Willem Jan Z

Willem Jan Z

13/05/2005 20:08:00
Quote Anchor link
</body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $message ?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("guestbook_data.htm") ?>

</html>

kan je dat vinden?

vergeet de ; niet....

Dus:

</body>
< ?php echo $message; ?>
< ?php include("guestbook_data.htm"); ?>
</html>

(Niet spatie vergeten weg te halen tussen < en ?php, maar heb ik gedaan omdat de UBB code anders niet werkt...)

Lijkt onbelangrijk, maar daardoor lopen hele scripts in de war...
Gewijzigd op 13/05/2005 20:10:00 door Willem Jan Z
 

13/05/2005 20:12:00
Quote Anchor link
Bedankt, heb dit gewijzigd maar dat maakt geen verschil, nog steeds de zelfde foutmelding. De regel die de melding aangeeft is bij mij helemaal leeg dus lijkt net als of hij nog iets verwacht als einde of zo iets.
Ik hoop dat iemand nog een ander optie heeft?
bvd Remon
 
Willem Jan Z

Willem Jan Z

13/05/2005 20:16:00
Quote Anchor link
Je bent nog 1 } vergeten... Denk dat die hier moet...
< ?
$header = "from: [email protected]\n";
$mail_body = "nieuw item in gastenboek";
$mail ($recipient, $subject, $mail_body, $header);
}
? >
</body>
< ?php echo $message ?>
< ?php include("guestbook_data.htm") ?>
</html>

(Weer spaties weghalen0
 

13/05/2005 21:04:00
Quote Anchor link
Ok, dit probleem is opgelost! Bedankt!
Maar nu heb ik een volgend probleem, ik kijk hier zelf ook nog naar maar als iemand hier een oplossing voor weet dan graag!!
ik heb nu de volgende melding als ik het gastenboek open:

uw bijdrage kon helaas niet in ons gasten boek worden opgenomen:
voer alstublieft uw naam in.
Schrijf alstublieft ook iets in het gastenboek.
klik op vorige.

dit krijg ik zowel als ik een invoer doe als dat ik guestbook_simple.php appart aanroep.
 

13/05/2005 22:37:00
Quote Anchor link
Ik hoop dat iemand de oplossing heeft want ik kom niet achter het probleem, ik blijf de zelfde melding houden bij guestbook_simple.php aanroepen en wanneer ik een berichtje wil in voeren. Het lijkt als of de invoer niet gecontroleerd wordt of juist altijd gecontroleerd word maar dat hij niet aan de waardes voldoet.

wie o wie heeft voor mij de oplossing

gr. Remon
 
Jelmer -

Jelmer -

13/05/2005 22:58:00
Quote Anchor link
remon's:
if($guestbooknew) {

//... (Dit zorgt allemaal voor een nieuwe bijdrage)...
} <-----
// H...

Volgens mij moet je die weghalen, of iig verplaatsen. Nu kijk je alleen of hij is opgestuurd, en voer je dat uit. Daarna, of hij nou wel of niet is opgestuurd, ga je controleren of de waarden wel zijn ingevuld.
Gewijzigd op 13/05/2005 22:59:00 door Jelmer -
 
RT

RT

14/05/2005 09:54:00
Quote Anchor link
Vindt je het gek dat hij het veld "naam" niet kan vinden?

<input type="text"name"naam" size="35">

Verander dat maar eens in:
<input type="text" name="naam" size="35">
Gewijzigd op 14/05/2005 09:55:00 door RT
 
B a s
Beheerder

B a s

14/05/2005 10:17:00
Quote Anchor link
wel leuk script en als het werkt zoals je het nu hebt is dat prima, maar je kunt het beter meteen goed aanleren :)

er wordt in dat hele script niet 1 super global gebruikt.. ik zou een ander boek proberen Remon.. Ik zou PHP 5 boek doen of deze aanpassen met superglobals..

zie o.a. deze tutorial..
Gewijzigd op 14/05/2005 10:19:00 door B a s
 

14/05/2005 11:51:00
Quote Anchor link
Bedankt in iedergeval, alleen ben ik er nog niet helemaal uit ik moet } verplaatsten maar waar heen?? het gaat om de } in:
if($guestbooknew) {

//... (Dit zorgt allemaal voor een nieuwe bijdrage)...
} <-----
// H...

als ik deze verplaats doet ie het beter maar ik kan geen nieuwe bijdrage toevoegen en iedere keer als ik het gasten boek op komt er een nieuwe (lege) bijdrage bij.
Ik leer steeds meer en ik kom er zeker wel uit, vanavond maar weer verder, wie weet heeft iemand nog een tip voor me!
iig bedankt
 
Jelmer -

Jelmer -

14/05/2005 14:12:00
Quote Anchor link
Logica. Computertalen zijn altijd heel simpel logisch te beredeneren: als dit dan dat en anders zo.

Dus, als er een formulier wordt opgestuurd, dan ga k het controleren en toevoegen, anders niets.

Maar jij hebt nu: Als er een formulier wordt opgestuurd, dan niets. Daarnaa alles controleren, of het formulier nou is opgestuurd of niet, en dan (niets) toeveoegen.

PS:
Quote:
?>
// nieuw item maken en vooraan opslaan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<? php[/quote]
Het leuke van van regels die beginnen met // worden binnen php niet uitgevoerd. Nu zullen ze wel zichtbaar worden voor het publiek.
[code]<?php
// nieuw item maken en vooraan opslaan
?>
 

14/05/2005 22:53:00
Quote Anchor link
Allemaal bedankt voor de uitleg en hulp maar ik kom er nog steeds niet uit, ik krijg geen fout melding met het openen en toevoegen maar ik er komt ook geen bijdrage bij als ik iets wil toevoegen.
Ik heb wat afgerommeld maar krijg het niet voor elkaar. misschien een beetje simpel maar heeft iemand dit scriptje voor mij en dan op de juiste manier? er zit gewoon ergens een klein foutje maar ik kan die niet vinden!
ik ben benieuwd!
al doende leert men

Remon
 
Jelmer -

Jelmer -

15/05/2005 11:19:00
Quote Anchor link
Ik voormoed dat hij het zo beter doet, heb al mijn veranderde stukjes even aangegeven met //jelmer_edit

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>guestbook</title>
</head>

<body>
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
<?php
$error_msg
= "";//jelmer_edit
$guestfile = "guestbook_data.htm";//jelmer_edit
$recipient ="[email protected]"; //jelmer_edit
$subject = "nieuw item in gastenboek"; //jelmer_edit
$header = "from: [email protected]\n"; //jelmer_edit
$mail_body = "nieuw item in gastenboek"; //jelmer_edit

if($guestbooknew) {
    //... (Dit zorgt allemaal voor een nieuwe bijdrage)...
    // HTML- en PHP-tags verwijderen uit de invoervelden

    $naam = strip_tags($naam);
    $email = strip_tags($email);
    $homepage = strip_tags($homepage);
    $tekst = strip_tags($tekst);
    // Regeleinden omzetten in HTML-regeleinden met <br>
    $tekst = nl2br($tekst);
    // Invoer controleren.
    if (strlen($naam) < 3) {
        $error_msg .= "voer alstublieft uw naam in."; //jelmer_edit
    }
    if(strlen($tekst) <3) {
        $error_msg .="<br>Schrijf alstublieft ook iets in het gastenboek.";
    }

    if(ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $email)) {
        // E-mailadres correct: aan naam toevoegen als hyperlink
        $naam = "<a href=mailto:" . $email . ">". $naam . "</a>";
    }

    if(ereg("^[a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $homepage)) {
        // er werd ook een homepageadres opgegeven: de juiste opmaak toepassen
        if(!ereg("^http:////", $homepage)) {
            //http:// ontbreekt in het adres: hier toevoegen
            $homepage = "http://" . $homepage;
        }

        $hp_format="<br>Homepage: <a href=" . $homepage . " target='_new'>" . $homepage . "</a>";
    }

    if(!empty(error_msg)) { //jelmer_edit
        //onjuiste invoer: opmerking weergeven en niets toevoegen

        $message = "<br>uw bijdrage kon helaas niet in ons gasten boek worden opgenomen:<br>";
        $message .=$error_msg;
        $message .= "<br>klik op <a href=javascript:history.back(1)>vorige</a>.<br><br>";
    }

    else {
        // nieuw gastenitem toevoegen
        // nieuw gastenboekitem opmaken

        $new_entry = "<table width='400' border='0' cellspacing='1' cellpadding='1'>\n";
        $new_entry .= " <tr valign='top'>\n";
        $new_entry .= " <td class='kleiner' width='300'>Naam: " . $naam . $hp_format . "</td>\n";
        $new_entry .= " <td class='kleiner' width='100'>" . date("d-m-y H:i") . "</td>\n";  
        $new_entry .= " </tr>\n";
        $new_entry .= " <tr valign='top'>\n";
        $new_entry .= " <td colspan='2' class='kleiner'>\n";
        $new_entry .= " <p>" . $tekst . "</p>\n";
        $new_entry .= " </td>\n";
        $new_entry .= " </tr>\n";
        $new_entry .= " <tr>\n";
        $new_entry .= " <td colspan='2'>\n";
        $new_entry .= " <hr width='400' size='1' noshade>\n";
        $new_entry .= " </td>\n";
        $new_entry .= " </tr>\n";
        $new_entry .= " </table>\n";
        
        if(file_exists($guestfile)) {
            $fp = fopen($guestfile, "r");
            $guest_data = fread($fp, filesize($guestfile));
            fclose($fp);
        }

         $fp = fopen($guestfile, "w");
        flock($fp, 1);
        fputs($fp, $new_entry);
        if(isset($guest_data)){
            fputs($fp, $guest_data);
        }

        flock($fp,3);
        fclose($fp);
        
        mail($recipient, $subject, $mail_body, $header);//jelmer_edit
    }
}

?>

</body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $message ?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("guestbook_data.htm") ?>

</html>

Het bestandje guestbook_new ziet er als volgt uit en deze werkt zonder problemen:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Uw naam</title>
</head>

<body>

<form action="guestbook_simple.php" method="post"
<table width="400" cellspacing="1" cellpadding="1" border="0">
<table>
<tr>
<td width="146">
<p>Uw naam: </p>
</td>
<td width="254" valign="middle">
<input type="text"name"naam" size="35">
</td>
</tr>

<tr>
<td width="146">
<p>Uw emailadres:</p>
</td>
<td width="254" valign="middle">
<input type="text" name="email" size="35">
</td>
</tr>
<tr>
<td width="146">
<p>Uw homepage:</p>
</td>
<td width="254" valign="middle">
<input type="text" name="homepage" size="35">
</td>
</tr>

<tr>
<td width="146">
<p>Uw bijdrage</p>
</td>
<td width="254" valign="middle">
<textarea name="tekst" rows="3" cols="30"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<p align="center">
<input type="submit" name"guestbooknew" value="verzenden">
</p>
</td>
</tr>
</form>

</body>
 

15/05/2005 12:54:00
Quote Anchor link
Bedankt Jelmer, ik heb jouw scriptje geprobeerd maar nog steeds geen succes. Ik kan geen bijdrage toevoegen, ik krijg dan het volgende:

uw bijdrage kon helaas niet in ons gasten boek worden opgenomen:
voer alstublieft uw naam in.
Schrijf alstublieft ook iets in het gastenboek.
klik op vorige.

en als ik alleen het gastenboek open dan gaat dat goed, aleen heb ik er nog niks in staan.
Het lijkt er op dat de nieuwe bijdrag niet goed verwerkt wordt (en dus aleen de error meldingen geeft).
Ik kan er geen fout in vinden (ja paar typ foutjes maar die zijn er nu uit)
iemand nog een suggestie?
 
Jelmer -

Jelmer -

15/05/2005 13:38:00
Quote Anchor link
Kun je eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php error_reporting(E_ALL);?>
helemaal bovenaan je script zetten?
 

15/05/2005 13:59:00
Quote Anchor link
OK, heb ik gedaan, ik heb het scriptje boven aan gezet onder <body>
ik krijg nu de volgende meldingen:
Notice: Undefined variable: guestbooknew in c:\phpdev\www\public\guestbook\guestbook_simple.php on line 18

Notice: Undefined variable: message in c:\phpdev\www\public\guestbook\guestbook_simple.php on line 91

op line 18 staat: if($guestbooknew) {
op line 91 staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $message; ?>


ik kan er geen fout in vinden??
 
B a s
Beheerder

B a s

16/05/2005 02:06:00
Quote Anchor link
het is $_POST['guestbooknew']

en $_POST['message']

.. zoals ik al eerder zei ;)
 

16/05/2005 11:23:00
Quote Anchor link
ook mooi niet werken dus! klote script! ik zoek wel wat anders!
toch bedankt
 
Willem Jan Z

Willem Jan Z

16/05/2005 12:10:00
Quote Anchor link
Tis geen klote script hoor... Als jij een typfout maakt kan je soms lang zoeken ja...
Gewoon blijven proberen! En idd met kleine dingen beginnen, en vaak testen, niet pas op het eind
 

16/05/2005 12:22:00
Quote Anchor link
geen type fout te vinden hoor, vaak genoeg gecontroleerd! ik heb zelfs de script gekopieerd van jelmer, daar zat een enkele typfout in en die heb ik uit gehaald. Als ik een foutmelding krijg dan ga ik daar zoeken of in dat gebied maar als ik sommige dingen letterlijk over neem kan ik weinig fout doen lijkt me. Het script werkt gewoon niet!
simpel. Tja of ik moet het anders programmeren!!
trouwens, niemand die het script hier op zet, en dat ie dan werkt!!!!
 
Ray D

Ray D

13/11/2011 00:49:15
Quote Anchor link
foutje
Gewijzigd op 13/11/2011 00:53:42 door Ray D
 

Pagina: 1 2 volgende »



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.