Toon posts:

Gastenboek telt berichten niet goed...

Pagina: 1
Acties:
  • 137 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een heel simpel php en txt gastenboekje... Maar nu telt hij berichten niet goed.

Er zitten 2 berichten in het txt bestand en hij telt er wel twee bij de optelsom maar bij het weergeven ervan laat hij er altijd 1 te weinig zien..

Iemand een idee... Ik snap het niet want hij werkte altijd perfect.. :(

Hier de code..

PHP:
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
<?php
    
  $gastenboek=Array();

  $gastenboek=file($bestand);


?>     <b>Berichten <? echo $start+1; ?> tot en met <? echo min($start+$amount,sizeof($gastenboek)); ?></b><br><i>(Totaal <? echo sizeof($gastenboek); ?> berichten)</i></p>
</td>
    </tr>
  </table>
  </center>


<?php

$gastenboek=array_reverse($gastenboek);

  for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++)  {
         list($ID,$datum,$email,$lid,$website,$bericht,$naam)=explode('||',$gastenboek[$i]);

//check of er een website is 
if ($website == "") {$link="";} 
elseif ($website =="http://") {$link="";}
else {$link= "<a href=\"$website\" target=\"_blank\"><img border=\"0\" src=\"img/home.gif\" alt=\"Bezoek de website van $naam\">";}

//check email
    if(ereg( "^[_a-zA-Z0-9-]+(\\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)+$", $email)) { 
        $mail="<a href=\"mailto:$email\"><img border=\"0\" src=\"img/email.gif\" alt=\"Stuur $naam een e-mail\"></a>";
} else { $mail=""; 
    } 

//check lidmaatschap
if ($lid == "") {$lid="";}
else {$lid="<img border=\"0\" src=\"img/lid.gif\" alt=\"$naam is lid van onze club\">";}

echo" 

<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
    <tr>
      <td width=\"25%\"><b class=\"vet\">$naam</b></td>
      <td width=\"40%\">$link $mail $lid</td>
    </center>
    <td width=\"35%\"><i>$datum</i></td>
  </tr>
  
  <tr>
    <td width=\"100%\" colspan=\"3\"><br>$bericht<br><br><br></td>
  </tr>
  <tr>
    <td width=\"100%\" colspan=\"3\">
            <hr align=\"left\" size=\"1\" width=\"800\">
    </td>
  </tr></table>";
 }
 ?>
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
      <td width="100%">
        <p align="center">
<?php
if ($start>0) echo '<A href="index2.php?start='.max(0,$start-$amount).'"><<<</a></A> ';

$regels = count($gastenboek); if(!$n) { $n = 0; } else { $n = intval($n); }

{ for($i = 0; $i < $regels; $i+=$amount) { if($regels > $i) { echo(" [<a href='index2.php?start=$i'><b class=\"paginanummer\">".($i/$amount+1)."</b></a>]"); } } }


          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="index2.php?start='.($start+$amount).'">>>></a></A>';
?></td>
    </tr>
  </table>

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 17:46

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
for (..$i<sizeof($gastenboek); $i++)...


kijk eens naar dat stukje, en bedenk wat je de php-engine eigenlijk verteld: "voer deze code uit zolang dit aantal _kleiner_ is dan het totaal aantal berichten.."
en wat denk je dat er gebeurt als de teller $i precies gelijk is aan het aantal berichten in het gastenboek?
dus als $i == 2 en het aantal berichten in je bestand ook 2 is?

[ Voor 9% gewijzigd door RM-rf op 27-10-2006 12:22 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
dus het moet iets worden dan <= ??

Verwijderd

waarom echo je niet gewoon sizeof($gastenboek)??

edit: doh... stupid...:p

ja je moet inderdaad <= gebruiken

[ Voor 40% gewijzigd door Verwijderd op 27-10-2006 13:01 ]