Versio

Gastenboek werkt niet.

Overzicht Reageren

Nick Bierman

Nick Bierman

20/01/2012 14:40:10
Quote Anchor link
Hallo, ik ben met met eerste PHP gastenboek bezig, en nu heb ik een probleem bij het bekijken van het gastenboek.
Ik krijg namelijk de foutmelding; Fatal error: Call to a member function showDate() on a non-object

Kan iemand mij vertellen wat er fout is:

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php

include("header.php");

$page = $_GET['page'];
$order= $_GET['order'];

// Validate browser input ------------------------------------------------------------

if (is_numeric($page) == false)
{

  echo "<font color=\"red\">Non Numeric Page Number</font>";
  include("footer.php");
  exit;
}


if (!($order == "asc" || $order == "desc"))
{

  echo "<font color=\"red\">Entry order can only be 'asc' or 'desc'</font>";
  include("footer.php");
  exit;
}
  

// -----------------------------------------------------------------------------------

if ($page == "") { $page = 1; }
$fwd = $page - 1;
$rwd = $page +1;

// Setting the default values for number of records per page -------------------------
$perpage = 10;
//$filename = "list.php";

// Reading in all the records, putting each guestbook entry in one Array Element -----


$filename = "list.txt";
$handle = fopen($filename, "r");

if (filesize($filename) == 0){                         // mpg are there any entries to display
   print "There are currently no entries to display";  // mpg no inform user
}
else
{

$datain = fread($handle, filesize($filename));
fclose($handle);
$out = explode("<!-- E -->", $datain);

$outCount = count($out) - 1;
$j = $outCount-1;

if ($order == "desc")
{

    for ($i=0; $i<=$outCount; $i++)
    {

        $lines[$j] = unserialize($out[$i]);
        $j = $j - 1;
    }
}

else
{
    for ($i=0; $i<=$outCount; $i++)
    {

        $lines[$i] = unserialize($out[$i]);
    }
}


// Counting the total number of entries (lines) in the data text file ----------------

$result = count($lines);
$count = $result-1;
//echo $count."<br>";

// Caclulate how many pages there are ----------------------------------------


if ($count == 0) { $totalpages = 0; }
else { $totalpages = intval(($count - 1) / $perpage) + 1; }

$page = $totalpages - ($page - 1);

$end = $count - (($totalpages - $page) * $perpage);
$start = $end - ($perpage - 1); if ($start < 1) { $start = 1; }

//$end =  ($perpage * $page) - 1;
//$start = $end - $perpage;


if ($start < 0) { $start = 0; }

//for ($i = $end; $i>=($start-1); $i--)
//for ($i = 0; $i<$outCount; $i++)
//for ($i=$start-1; $i<$end; $i++)

for ($i=$end-1; $i>$start-2; $i--)
{

    //echo $i."<br>end-".$end."-start-".$start;
        echo "<table bgcolor=#EFEFEF bordercolor=#C0C0C0 border=1 width=500 cellspacing=0 cellpadding=10><tr><td background=\"images/toolbar.jpg\" height=\"20\"></td></tr><tr><td>";
        echo "<b>$listDatetxt: </b>";
        $lines[$i]->showDate();
    echo "<br><b>$listnametxt: </b>";
        $lines[$i]->showFrom();
        echo "<br><b>$listemailtxt: </b><a href=\"mailto:";
        $lines[$i]->showEmail();
        echo "\">";
        $lines[$i]->showEmail();
        echo "</a><br><br><b>$listMessagetxt: </b>";
        $lines[$i]->showMessage();
        echo "</td></tr></table><br>";
}


echo "<center>";

// Creating the Forward and Backward links -------------------------------------

if ($fwd > 0 && $rwd > 0 && $rwd<$totalpages+1)
{

echo "<br><a href=\"list.php?page=$fwd&order=$order\">&lt&lt</a>";
echo "<a href=\"list.php?page=$rwd&order=$order\">&gt&gt</a><br>";
}

else if ($fwd == 0)
{
echo "<a href=\"list.php?page=$rwd&order=$order\">&gt&gt</a><br>"; }
else if ($rwd == 0)
{
echo "<br><a href=\"list.php?page=$fwd&order=$order\">&lt&lt</a>"; }
else if ($rwd == $totalpages+1)
{
echo "<a href=\"list.php?page=$fwd&order=$order\">&lt&lt</a><br>"; }


for ($i = 1; $i<=$totalpages; $i++)
{

echo " <b>[ <a href=\"list.php?page=$i&order=$order\"><b>$i</b></a> ]</b> ";
}

echo "</center>";

}
// mpg end if
include("footer.php");

?>
 
PHP hulp

PHP hulp

24/05/2012 19:05:34
Gesponsorde koppelingen:
 
Rick de Graaff

Rick de Graaff

20/01/2012 14:41:45
Quote Anchor link
De functie showDate() bestaat niet of kent PHP niet.
Heb je ergens een document met functies staan?

-- EDIT --
En als ik het zo ff snel zie heb je ook scripts van internet gebruikt, dit geeft niet. Maar PROBEER (mits je dit kan) het zelf te doen, en bouw het script steeds verder uit naar jou wensen.
Gewijzigd op 20/01/2012 14:43:17 door Rick de Graaff
 
Nick Bierman

Nick Bierman

20/01/2012 14:45:38
Quote Anchor link
Ja die heb ik. Moet ik hier iets in veranderen/wijzigen?

Toevoeging op 20/01/2012 14:52:05:

Rick de Graaff op 20/01/2012 14:41:45:
De functie showDate() bestaat niet of kent PHP niet.
Heb je ergens een document met functies staan?

-- EDIT --
En als ik het zo ff snel zie heb je ook scripts van internet gebruikt, dit geeft niet. Maar PROBEER (mits je dit kan) het zelf te doen, en bouw het script steeds verder uit naar jou wensen.


Ja klopt, maar ik ben net begonnen met PHP, dus om het een beetje onder de knie te krijgen, probeer het eerst met internet scripts.
Gewijzigd op 20/01/2012 14:50:24 door Nick Bierman
 
Jan Steenstra

Jan Steenstra

15/02/2012 10:43:51
 
Kris Peeters

Kris Peeters

15/02/2012 11:57:35
Quote Anchor link
Ik veronderstel dat je in je for-loop niet de juiste condities hebt, waardoor minstens 1 element wordt aangesproken dat niet bestaat.

for ($i=$end-1; $i>$start-2; $i--)

Kan jij hier zelf aan uit?

Wat ik zou aanraden: herdefinieer $end en $start.
wijzig je berekening, zodat je tot dit komt:

for ($i=$end; $i >= $start; $i--)

Ik denk dat het duidelijker zou worden.
 



Overzicht Reageren

Get Adobe Flash player