Solved

php opendir() Not working on Windows Hosting on Godaddy

Posted on 2011-02-12
4
1,355 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

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Exchange Activesync 441 in logs 2 118
ISS migration from IIS 6 to IIS 8.5 rendering problems 4 71
Application gets hammered - IIS 2 44
IIS FTP Logging 10 39
Today I came across an interesting issue that had me pulling my hair out.  I was troubleshooting a new internal web site which uses integrated security instead of anonymous.  When browsing the site from my laptop, I was able to access it with no iss…
If you don't have the right permissions set for your WordPress location in IIS, you won't be able to perform automatic updates. Here's how to fix the problem.
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

830 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