Re: Re: ZipArchive headache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6-5-2015 22:06, Jeffry Killen wrote:

On May 6, 2015, at 11:35 AM, Jeffry Killen wrote:


On May 6, 2015, at 9:52 AM, Jeffry Killen wrote:


On May 6, 2015, at 5:45 AM, Christoph Becker wrote:

Hi Jeffry,

Am 06.05.2015 um 02:41 schrieb Jeffry Killen:

On May 5, 2015, at 3:36 PM, Christoph Becker wrote:

Jeffry Killen wrote:

1: ZipArchive::ER_MULTIDISK|Multi-disk zip archives not supported:
test-2.zip

I just found <https://bugs.php.net/bug.php?id=60348>, where the same
meaningless result was returned.  It turned out to be related to
symlinked directories.  Can you please verify, Jeffry?

Well, I haven't worked with any symlinked directories. And I have not
worked
with any linked or aliased resources in a web server context or
otherwise.
So it would require me to get familiar with that scenario first, to
test
it out.
(if that is what you mean by verify)

A simple verification would be to use realpath(getcwd()) instead of
getcwd().

BTW: usually you should "reply to all" – the discussion might be
interesting for others, too. :)

Thank you:
You suggestion for verification is simple enough,

I am sorry, I sometimes am distracted and neglect to
reply all

JK

here is the revised code using realpath(getcwd())
At the bottom is the same result;

else if($_GET['newArchAlt'])
    {
     //header('Content-Type: text/plain');
     //print $_GET['newArchAlt'];
     //exit;
     require_once("php/zpArchConst.php");
     //$_constER;
     $_alt = new ZipArchive();
     $_ret = $_alt->open(realpath(getcwd()).'/'.$_GET['newArchAlt'],
ZipArchive::CREATE);
     header('Content-Type: text/plain');
     print $_ret.': '.$_constER[$_ret].":  ".$_GET['newArchAlt'];
     exit;

1: ZipArchive::ER_MULTIDISK|Multi-disk zip archives not supported:
test-2.zip

JK


Here is more:
The code that DOES work and code that gives the same error in a
synchronous post context

$_retStr = array();
$_ret = '';
if($_POST)
   {
   // This works
    if($_POST['clsDef'] == 'false') // <<< radio button used to choose
code to use
      {
       require_once("php/zpArchConst.php");
       $_alt = new ZipArchive();
       $_ret = $_alt->open(getcwd().'/'.$_POST['mkZp'],
ZipArchive::CREATE);
       if($_ret !== true)
         {
          $_retStr['error'] = $_ret.": ".$_constER[$_ret];
         }
       else
         {
          $_ret = $_alt->addFromString('test.txt', 'testtesttest'  );
          if($_ret)
            {
             $_alt->close();
             $_retStr['success'] = "zip file made"; //<<<< this works
            }
          else
            {
             $_alt->close();
             $_retStr['error'] = "zip file not made: addFromString failed";
            }
         }
      }
   // This does not
    else // $_POST['clsDef'] == 'true'
      {
       require_once("php/zip_archiver.php");
       $_arch = new _ZIP_ARCHIVER(getcwd(), 'dev_lab_current');
       $_input['name'] = $_POST['mkZp'];
       $_retStr = $_arch->run('newArch', '', $_input); //<<<< this code
returns ZipArchive::CREATE err 1
      }
   }

Although I may have some problem with my class def code.

On a completely unrelated note...

Why the hell do you precede EACH and EVERYone of your variables with an underscore??? You're using $_alt, $_arch, $_input, $_retStr, etc. etc.

In PHP a variable just has to start with a dollarsign, so $foo, $bar, $etc are all fine. So... why do you keep naming everything $_foo, $_bar, $_etc ??

PHP reserves $_POST, $_GET, $_REQUEST,$_COOKIE and $_SERVER as special superglobal arrays. The reason those names were chosen were because they were 'unusual' enough that they were unlikely to cause problems with people who already had variables with those names. And then here you are... using exactly those kinds of names(?!).

Nowadays PHP has namespaces, and as such it's very unlikely that new superglobal PHP variables will be added to the global namespace. But still... it erks me to see this kind of coding...

Like I said, on an unrelated note. Feel free to disregard.
- Tul


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux