Solved

php opendir() Not working on Windows Hosting on Godaddy

Posted on 2011-02-12
4
1,346 Views
Last Modified: 2012-05-11
Transfer files from Unix to Windows now directories are not being read by my script.

Even if I try $imgdir = "D:\Hosting\zircobjj\gear\."; still doesn't work. Help is a ppreciated

Here is my code below:

$imgdir = "\gear";
$dimg = opendir($imgdir);
 while($imgfile = readdir($dimg))
 {
 if( (substr($imgfile,-3)=="gif") || (substr($imgfile,-3)=="jpg")  || (substr($imgfile,-3)=="JPG") || (substr($imgfile,-3)=="GIF")  )
 {
$a_img[count($a_img)] = $imgfile;
sort ($a_img);
reset ($a_img);
//shuffle ($a_img);
 }
}
0
Comment
Question by:mrroy69
  • 2
  • 2
4 Comments
 

Author Comment

by:mrroy69
ID: 34878221
Here is the full code:

<?php
$resultspage=$_REQUEST['resultspage'];
$imgdir = "gear";
$photo_dir = "";
$a_img = array();
$title = "Gear";


$col = 3; //no. of columns in a pageresult
$maxrow = 4; //no. of rows in a pageresult

$thumb = true ;

$space=" &nbsp; ";
print "";
print "";




$dimg = opendir($imgdir);
 while($imgfile = readdir($dimg))
 {
 if( (substr($imgfile,-3)=="gif") || (substr($imgfile,-3)=="jpg")  || (substr($imgfile,-3)=="JPG") || (substr($imgfile,-3)=="GIF")  )
 {
$a_img[count($a_img)] = $imgfile;
sort ($a_img);
reset ($a_img);
//shuffle ($a_img);
 }
}



 $totimg = count($a_img); // total images number
 $totxresultspage = $col*$maxrow; // images x pageresult
 $totresultspage = ($totimg%$totxresultspage==0)?((int)$totimg/$totxresultspage):((int)($totimg/$totxresultspage)+1); // number of total pageresults


/*********** NEW STUFF **************/


$display=$col * $maxrow;

$pagenums = ceil ($totimg/$display);

// if no value for resultspage, resultspage = 1
if ($resultspage == '') {
   $resultspage = 1;
};


// Create a start value
$start= ($resultspage - 1) * $display;

if ($totimg - $start < $display) {
$end_count = $totimg;
} elseif ($totimg - $start >= $display) {
$end_count = $start + $display;
}
 
 


if ($totimg - $end_count > $display) {
$var2 = $display;
} elseif ($totimg - $end_count <= $display) {
$var2 = $totimg - $end_count;
}
$space = " &nbsp; ";

/*********** END OF NEW STUFF ***********/



 if($totimg == false)
   print "";
 else
 {




print "<A NAME=PHOTO></a>\n
<table border='0'cellpadding='0'cellspacing='0'width='100%'>";
  // start resultspage
  if($resultspage=="" || $resultspage==1)
  {
   $x=0;
   $pageresult = 1;
  }
  else
   $x = (($resultspage-1)*($totxresultspage));
  $r=0;


  // print of table
  foreach($a_img as $key=>$val)
  {





   if(($x%$col)==0)
    print "<tr>\n";
   if($a_img[$x])
   {
$size = getimagesize ("$imgdir/$a_img[$x]");
$halfw = round($size[0]/2);
$halfh = round($size[1]/2);
$quarterw = round($size[0]/4);
$quarterh = round($size[1]/4);





if($size[1] < $size[0])
{

///// GET PROPORTIONAL DIMENSIONS ///////////
//list($width,$height)=getimagesize("$imgdir/$a_img[$x]");
// Set the new Width
//$newwidth1=300;

$newwidth1 = 200;

// Get the proportional height based on the width
//$getheight1=($newwidth1 / $width) * $height;
//$getheight=number_format($getheight1, 0);
//$newheight1=$getheight;
$newheight1 = 150;
///// END OF GET PROPORTIONAL DIMENSIONS ///////////

   $imgnumber = ($x+1);
    if("$imgdir/$a_img[$x]" !="")

if ($thumb){
$thumbnail = "$imgdir/$a_img[$x]\"";
}
else
{
$thumbnail =  "$imgdir/$a_img[$x]";
}

print "<td align='center'valign='middle'width='25%'height='230'>";
print'<table width="230" height="180" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3"><img src="images/phototop.jpg" width="230" height="15" alt="" /></td>
</tr>
<tr>
<td width="15"><img src="images/photoleft.jpg" width="15" height="150" alt="" /></td>
<td width="200"valign="top">';
print "<a href=\"$imgdir/".$a_img[$x]."\"rel='lightbox[wgn]'title=\"$title\"><img src=\"$thumbnail\" height='$newheight1' width='$newwidth1' border=0 alt=\"$title\"></a>";
print'</td>
<td width="15"><img src="images/photoright.jpg" width="15" height="150" alt="" /></td>
</tr>
<tr>
<td colspan="3"><img src="images/photobottom.jpg" width="230" height="15" alt="" /></td>
</tr>
</table>';
print"</td>\n";
}

else
{        

///// GET PROPORTIONAL DIMENSIONS ///////////
//list($width,$height)=getimagesize("$imgdir/$a_img[$x]");
// Set the new Width
//$newheight2=200;
$newheight2 = 200;


// Get the proportional height based on the width
//$getwidth1=($newheight2 / $height) * $width;
//$getwidth=number_format($getwidth1, 0);
//$newwidth2=$getwidth;
$newwidth2 = 150;
///// END OF GET PROPORTIONAL DIMENSIONS ///////////

if ($thumb){
$thumbnail = "$imgdir/$a_img[$x]\"";
}
else
{
$thumbnail =  "$imgdir/$a_img[$x]";
}

 $imgnumber = ($x+1);
    if("$imgdir/$a_img[$x]" !="")

print "<td align='center'valign='middle'width='25%'height='230'>";
print'<table width="180" height="230" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3"><img src="images/photovtop.jpg" width="180" height="15" alt="" /></td>
</tr>
<tr>
<td width="15"><img src="images/photovleft.jpg" width="15" height="200" alt="" /></td>
<td width="150" height="200"valign="top">';
print"<a href=\"$imgdir/".$a_img[$x]."\"rel='lightbox[wgn]'title=\"$title\"><img src=\"$thumbnail\" height='$newheight2' width='$newwidth2' border=0 alt=\"$title\"></a>";
print'</td>
<td width="15"><img src="images/photovright.jpg" width="15" height="200" alt="" /></td>
</tr>
<tr>
<td colspan="3"><img src="images/photovbottom.jpg" width="180" height="15" alt="" /></td>
</tr>
</table>';
print"</td>\n";
}
 
}
if(($x%$col) == ($col-1))
   {
    print "</tr>\n";
    $r++;
   }
  // print "r=$r - maxrow=$maxrow<br>";
   if($r==$maxrow)
   {
    break;
   }
   else
   $x++;
  }
  print "</table>";
 }
 // pageresult break
 
print "<br /><br /><table width='100%' border='0' cellpadding='2' cellspacing='0' align='center'><tr>
<td width='920'id='gallerypics'align='center'>\n";



/********** NEW STUFF ***********/
// previous link

if ($resultspage>1) {

echo "<a href='store.php?resultspage=".($resultspage-1)."&#PHOTO'>Previous</a>" . $space . "";
}


// dynamic page number links (make sure to change yourpage.php to the name of your page)


for ($i=1; $i<=$pagenums; $i++) {
if ($i!=$resultspage) {
echo "<a href='store.php?resultspage=$i&#PHOTO'>$i</a>$space";
}
else {
if($pagenums == "1"){
echo"";
}
else
{
echo "<b>$i</b>$space";
}

}
}
// next link (make sure to change yourpage.php to the name of your page)
if ($resultspage<$pagenums) {
echo "<a href='store.php?resultspage=".($resultspage+1)."&#PHOTO'>Next </a>";
}
print "</td></tr></table>";

?><br />
0
 
LVL 4

Accepted Solution

by:
JayDiablo earned 500 total points
ID: 34879023
It's possible that GoDaddy's servers might have some PHP SAFE MODE security checks in place by default, thus preventing you from opening directories that are outside the folder that your PHP script resides in.

Are you getting any specific errors from your code?  (you may need to check in your server's error logs if nothing is outputting in the browser)
0
 

Author Comment

by:mrroy69
ID: 34879031
The folders are in the same directory. It doesn't display any error.
0
 
LVL 4

Expert Comment

by:JayDiablo
ID: 34879720
Do you have access to your server's error logs?  Perhaps there's something there that's useful.  Production systems shouldn't output errors to the browser, but should still log to a file.

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/bcabdcfb-2421-4eab-b5fb-777c791daaa9.mspx?mfr=true

Usually issues with opendir are permission related, but it's hard to troubleshoot if there are no errors.

You might want to try whipping together a quick script that just tries to open a single file (like a text file) inside that gears folder, and output it, just so you can confirm that PHP is able to read files in that directory.
0

Featured Post

Zoho SalesIQ

Hassle-free live chat software re-imagined for business growth. 2 users, always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Here are the symptoms: You start receiving calls from users that one of your legacy web apps isn't coming up, so you log into your IIS 5 server to check it out.  When you pull up the services, you notice that the WWW Publishing service isn't runn…
Running classic asp applications under Windows Server 2008 R2 (x64) and IIS 7 is not as easy as one may think. It took me a while to figure it out while getting error 8002801d a few times. After you install the OS you will need to install the fol…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now