login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fatal error in 2e pagina

Offline Franko - 08/04/2005 11:27 (laatste wijziging 08/04/2005 11:28)
Avatar van FrankoNieuw lid Als ik een 2e pagina wil openen van mijn fotoalbum krijg ik een fatal error.
er zit denk ik iets fout in een lus, maar wat? Anderen hebben het over classes,array's maar ik heb geen idee hoe dat werkt en of het in te passen in het script.
Kan iemand mij daarmee helpen? Ik ziet het niet, maar ben gelukkig niet de enige:-) Misschien weet iemand van jullie het?!

De foutmelding is:
Fatal error: Call to a member function on a non-object in /home/sites/site4233/web/upload/gallery.php on line 67



HET SCRIPT:
  1. <?PHP
  2. $aantalpp = "15";
  3. $woord= "gallery";
  4. $event = $_POST['event'];
  5. $path = $event;
  6. $title = "<small>Page </small>";
  7. // $header = "<br><br><B>Foto's</B>";
  8. $clm = "5"; // Aantal kolommen
  9. $rows = "3"; // aantal rijen
  10. $t_w = "120";
  11. $t_h = "90";
  12. ?>
  13.  
  14. <HTML>
  15. <script language="JavaScript">
  16. <!--
  17. function MM_swapImgRestore() { //v3.0
  18. var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  19. }
  20.  
  21. function MM_preloadImages() { //v3.0
  22. var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
  23. var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
  24. if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
  25. }
  26.  
  27. function MM_findObj(n, d) { //v4.0
  28. var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  29. d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  30. if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  31. for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  32. if(!x && document.getElementById) x=document.getElementById(n); return x;
  33. }
  34.  
  35. function MM_swapImage() { //v3.0
  36. var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  37. if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
  38. }
  39. //-->
  40. </script>
  41.  
  42. <BODY bgcolor='#990000' leftmargin='0' topmargin='0' onLoad="MM_preloadImages('/Buttons/Back-rollover.jpg')">
  43. <div align="center"> <font face='Verdana' size='2' color='#FFFFFF'>
  44. <img src="/images/Pictures.jpg">
  45. <?PHP
  46. echo $header;
  47.  
  48. if (isset($_GET['page'])) {
  49. $page = $_GET['page'];
  50. }
  51. else {
  52. $page = 0;
  53. }
  54. $up = strtoupper($path);
  55. $enaam= str_replace("_"," ", $up);
  56. echo "<br><br><center><h3><b>$enaam</b></h3>";
  57.  
  58. $min = 1 + ( $page * $aantalpp );
  59. $max = ( $page +1 ) * $aantalpp;
  60. $number = $clm * $rows;
  61. $break = ( $page * $aantalpp ) + $clm;
  62.  
  63. echo "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\"><tr>";
  64.  
  65. $d = dir( $path );
  66. $count = -2;
  67. while( false !== ( $entry = $d->read() ) ) // LINE 67
  68. {
  69.  
  70. if ( ($count >= $min) AND ($count <= $max) ){
  71.  
  72. if( eregi(".jpg|.jpeg|.gif|.bmp|.png", $entry )){
  73.  
  74. $size = getimagesize( $path . "/" . $entry );
  75.  
  76. $size[0] = $size[0] + 20;
  77. $size[1] = $size[1] + 25;
  78.  
  79. $file_size = filesize( $path . "/" . $entry );
  80. $file_size = round($file_size / 1000) . "k";
  81.  
  82. echo "<td><center><a href=\"#\" onmouseover=\"window.status='Vergroten';return true;\" onmouseout=\"window.status=''; return true\" onclick=\"window.open('" . $path . "/" . $entry . "','pix" . $count . "','width=" . $size[0] . ",height=" . $size[1] . ",innerwidth=" . $size[0] . ",innerheight=" . $size[1] . ",directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no,top=0,left=0,leftmargin=0,topmargin=0,marginwidth=0,marginheight=0,screenX=0,screenY=0');return false\"><img src=" . $path . "/";
  83. echo $entry." style='border:3px solid #fc5;' alt=" . $count . " height=" . $t_h . "></a></center></td>\n"; // width=$t_w
  84. }
  85.  
  86. if ($count == $break){
  87. echo "</tr>\n<tr>\n";
  88. $break = $count + $clm ;
  89. }
  90. }
  91. $count++;
  92. }
  93. $d->close();
  94.  
  95. echo "</tr></table>";
  96.  
  97. $pages = $count / $aantalpp;
  98. $pageplus = $page + 1;
  99. $pagemin = $page - 1;
  100.  
  101. if (($page + 1) < $pages){
  102. $volgende = "<a href=" . $woord . ".php?page=" . $pageplus . "><img src='../Buttons/Forward.jpg' border='0'></a>";
  103. }
  104.  
  105. if (($page + 1) > 1 ){
  106. $vorige = "<a href=" . $woord . ".php?page=" . $pagemin . "><img src='../Buttons/Backward.jpg' border='0'></a>";
  107. }
  108.  
  109. echo "<table border='0'>";
  110. echo "<tr>";
  111. echo "<td width='50'><center>$vorige</center></td>";
  112. echo "<td width='50'><center><img src='../images/Circle.jpg'></center></td>";
  113. echo "<td width='50'><center>$volgende</center></td>";
  114. echo "</tr>";
  115. echo "</table>";
  116.  
  117. ?>
  118. <br>
  119. <a href="pregallery.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','/Buttons/Picturesmenu-rollover.jpg',1)"><img name="Image1" border="0" src="/Buttons/Picturesmenu.jpg"></a>
  120. </font> </div>
  121. </BODY>
  122. </HTML>
  123. ?>

9 antwoorden

Gesponsorde links
Offline CelestialCelebi - 08/04/2005 11:43
Avatar van CelestialCelebi PHP gevorderde Tja, het openen van de map met dir() is mislukt..

Leer eens een goede foutafhandeling te schrijven.
Offline Franko - 08/04/2005 11:47
Avatar van Franko Nieuw lid Maar de map dir is wel bekent bij de eerste pagina, maar niet bij de tweede.

De foutafhandeling doe ik zelf met echo's er tussen plaatsen. Ik wil eerst dat gedeelte goed hebben:-)
Maar zie jij wwat het probleem is dan?
Offline Franko - 08/04/2005 18:42 (laatste wijziging 10/04/2005 13:47)
Avatar van Franko Nieuw lid Heb gevonden waar het zit, maar kan het niet oplossen. Het gaat nl om de $page. Die telt om de een of andere reden niet op. Hij staat nu op 0, maar als ik die handmatig op 1 zet gaat ie wel naar de volgende pagina. Het zit hem dus in een lus ergens, maar waar??

Ziet iemand het probleem?

Ben er nog steeds niet uit wat het probleem is!
Ziet iemand wat het probleem kan zijn
Offline Thomas - 10/04/2005 13:47
Avatar van Thomas Moderator Misschien gaat de berekening van het aantal pagina's ($pages) niet goed ofzo ? Dit hangt weer samen met het tellen van het aantal foto's ($count - die begint op -2 ? $aantalpp een string ?)

Verder weet ik niet vanaf welke PHP versie de dir-class werkt...

Het kan eigenlijk van alles zijn dus...
Offline Franko - 10/04/2005 14:10
Avatar van Franko Nieuw lid Tja zo zit ik ook:-)
$aantalpp is inderdaad een string, omdat ik de gegevens uit een invoer haal van een formuliertje.

$count heb ik inmiddels op 1 gezet. Ben zoveel aan het schuiven geweest! Kom er gewoon niet uit:(
Offline Thomas - 10/04/2005 14:20
Avatar van Thomas Moderator Toch vreemd dat $d->read() pas fout gaat op de tweede pagina ? Het moet haast iets met $page zijn inderdaad, ik kan alleen niet zo snel zien wat... Kun je je gallery niet "simuleren" zonder daadwerkelijk plaatjes uit te lezen, om te kijken hoe het dan zit met $page, $pages, $count et cetera ?
Splits je probleem dus op: het is enerzijds een navigatie-probleem (pagina's met items) en anderzijds een dir-uitlees-probleem...
Offline Franko - 10/04/2005 14:37
Avatar van Franko Nieuw lid count 1 t/m 15 moet op de eerste pagina. 16 t/m 23 op de volgende.


Als ik er nu een echo ervoor zet krijg ik dus:
$event=Halen
$file= Picture_
$count

HalenPicture_0.jpg1
HalenPicture_1.jpg2
HalenPicture_2.jpg3
HalenPicture_3.jpg4
HalenPicture_4.jpg5
HalenPicture_5.jpg6
HalenPicture_6.jpg7
HalenPicture_7.jpg8
HalenPicture_8.jpg9
HalenPicture_9.jpg10
HalenPicture_10.jpg11
HalenPicture_11.jpg12
HalenPicture_12.jpg13
HalenPicture_13.jpg14
HalenPicture_14.jpg15
HalenPicture_15.jpg16HalenPicture_16.jpg17HalenPicture_17.jpg18HalenPicture_18.jpg19HalenPicture_19.jpg20HalenPicture_20.jpg21HalenPicture_21.jpg22HalenPicture_22.jpg23
Offline Franko - 10/04/2005 14:42
Avatar van Franko Nieuw lid Zet ik $page op 1 dan zie ik dit:

HalenPicture_0.jpg1HalenPicture_1.jpg2HalenPicture_2.jpg3HalenPicture_3.jpg4HalenPicture_4.jpg5HalenPicture_5.jpg6HalenPicture_6.jpg7HalenPicture_7.jpg8HalenPicture_8.jpg9HalenPicture_9.jpg10HalenPicture_10.jpg11HalenPicture_11.jpg12HalenPicture_12.jpg13HalenPicture_13.jpg14HalenPicture_14.jpg15
HalenPicture_15.jpg16
HalenPicture_16.jpg17
HalenPicture_17.jpg18
HalenPicture_18.jpg19
HalenPicture_19.jpg20
HalenPicture_20.jpg21
HalenPicture_21.jpg22
HalenPicture_22.jpg23

Dit klopt qua logica wel, laat nu alleen count 16 t/m 23 niet zien.

Geeft inmiddels de melding op de volgende pagina (1e pagina is goed):
Warning: readdir(): supplied argument is not a valid Directory resource in /home/sites/site4233/web/upload/gallery.php on line 67

Warning: closedir(): supplied argument is not a valid Directory resource in /home/sites/site4233/web/upload/gallery.php on line 97

line 67: while (false !=($file = readdir($handle))){
line 97: closedir($handle);
Offline Franko - 10/04/2005 14:53 (laatste wijziging 10/04/2005 15:03)
Avatar van Franko Nieuw lid ik heb nu ook die $page geechoot, maar daar zie ik wel dat ie constant op 1 blijft staan!!
Zo te zien gaat het daar fout!
Zet ik hem op 0 dan blijft de waarde bij alle Pictures 0.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s