PDA

View Full Version : Aiuto con php


natcam
18-10-2006, 15:33
Perchè se scrivo $zip = zip_open("/tmp/test2.zip");
ottengo questo errore: Fatal error: Call to undefined function zip_open() in C:\Documents and Settings\tt024088\Desktop\moodle\moodle\zip.php on line 3

Come posso risolvere il problema. C'è qualcosa da modificare nella configurazione?

cionci
18-10-2006, 18:15
Non hai abilitato mod_zip in php.ini

natcam
19-10-2006, 12:10
Ciao ho guardato nel file php.ini ma le uniche voci che trovo con "zip" sono:
;extension=php_zip.dll
;extension=php_zlib_filter.dll

Dato che sono un novellino :cry: potresti spiegarmi meglio cosa devo fare.

Grazie per l`aiuto.

andbin
19-10-2006, 12:32
Ciao ho guardato nel file php.ini ma le uniche voci che trovo con "zip" sono:
;extension=php_zip.dll
;extension=php_zlib_filter.dll

Dato che sono un novellino :cry: potresti spiegarmi meglio cosa devo fare.

Grazie per l`aiuto.Quelle due direttive sono "commentate", devi togliere il ';' per attivarle!

EDIT: per le funzioni zip_xxx dovrebbe bastare solo la php_zip.dll

natcam
19-10-2006, 12:41
l`ho fatto e riavviando apache mi dice che non e` presente il file php_zip.dll nella cartella ext di php. Allora ho scaricato il modulo apposito da pecl (zip-1.7.4) e scompattando il file ottengo un file xml dei file .c una cartella chiamata lib con altri file.c.
Cosa devo fare ora?

andbin
19-10-2006, 12:52
l`ho fatto e riavviando apache mi dice che non e` presente il file php_zip.dll nella cartella ext di php. Allora ho scaricato il modulo apposito da pecl (zip-1.7.4) e scompattando il file ottengo un file xml dei file .c una cartella chiamata lib con altri file.c.
Cosa devo fare ora?No, quelli sono i sorgenti ... se hai l'ambiente di sviluppo adatto puoi provare a compilarli.

Hai il PHP 4 o 5??? Io per il 5 uso il pacchetto zip con i binari per Windows ma in effetti vedo adesso che la php_zip.dll non c'è. :p

Se anche tu hai la 5, vai su http://www.php.net/downloads.php e scarica il package "Collection of PECL modules ...". Lì dentro ci trovi quella DLL.

natcam
19-10-2006, 13:20
ho scaricato il collection of pecl, ho messo il file php_zip.dll nella relativa cartella e ho riprovato. L`errore che mi da questa volta e`: impossibile trovare il punto d`ingresso 2Error della procedura nella libreria di collegamento dinamico php5ts.dll?
Puo` essere un errore dovuto alla differente versione di php (il file e` della 5.1.6 mentre sul pc ho la 5.1.1.)?

andbin
19-10-2006, 13:34
ho scaricato il collection of pecl, ho messo il file php_zip.dll nella relativa cartella e ho riprovato. L`errore che mi da questa volta e`: impossibile trovare il punto d`ingresso 2Error della procedura nella libreria di collegamento dinamico php5ts.dll?
Puo` essere un errore dovuto alla differente versione di php (il file e` della 5.1.6 mentre sul pc ho la 5.1.1.)?Potrebbe essere quello il problema ma non ne posso essere sicuro.

Comunque vai qui: http://it.php.net/releases/index.php
e scarica il pacchetto PECL per la tua versione di php.

natcam
19-10-2006, 16:06
Era quello il problema. Ho risolto. Grazie

natcam
19-10-2006, 17:35
Mi si è verificato questa problema ora:
nella cartella www di easyphp ho creato una cartella che si chiama prova al cui interno ho un file .zip che si chiama fabio. Ho creato poi all`interno della stessa cartella prova un file.php che contiene l`istruzione:
$zip = zip_open("/prova/fabio.zip");

ma al momento di eseguirlo mi da l`errore
Warning: zip_open() Cannot open zip archive \prova\fabio.zip in c:\documents and settings\tt024088\desktop\easyphp1-8\www\prova\leggizip.php on line 3

Cosa puo` essere? un errore di percorso? Se si qual`e` quello giusto....

Aiutooo :muro:

andbin
19-10-2006, 17:44
Mi si è verificato questa problema ora:
nella cartella www di easyphp ho creato una cartella che si chiama prova al cui interno ho un file .zip che si chiama fabio. Ho creato poi all`interno della stessa cartella prova un file.php che contiene l`istruzione:
$zip = zip_open("/prova/fabio.zip");Occhio che zip_open (come tutte le altre funzioni che hanno a che fare con dei file), prende in input il nome di un file, non un URL!!

Se la tua intenzione era quella di fare riferimento al file fabio.zip nella directory 'prova' presente sotto la root del sito, devi usare:

"${_SERVER['DOCUMENT_ROOT']}/prova/fabio.zip"

natcam
19-10-2006, 17:52
${_SERVER['DOCUMENT_ROOT']}/prova/fabio.zip"

Cosa intendi con server document root????

Sto lavorando in locale per cui ad esempio se visualizzo il file ciccio.php sotto la mia cartella zip il percorso che mi segna e` questo:

http://localhost/zip/ciccio.php (considerato che zip si trova sotto www).

detto cio` cosa dovrei scrivere per ${_SERVER['DOCUMENT_ROOT']}?

Grazie mille.

andbin
19-10-2006, 17:59
Cosa intendi con server document root????

Sto lavorando in locale per cui ad esempio se visualizzo il file ciccio.php sotto la mia cartella zip il percorso che mi segna e` questo:

http://localhost/zip/ciccio.php (considerato che zip si trova sotto www).

detto cio` cosa dovrei scrivere per ${_SERVER['DOCUMENT_ROOT']}?Allora: $_SERVER['DOCUMENT_ROOT'] è una variabile impostata da PHP per indicare il path locale che punta alla root del sito. Il path è quello configurato nel server web.

natcam
19-10-2006, 18:07
dove la trovo questa variabile?

in php.ini o che altro?

sotto quale nome?

Grazie ancora

andbin
19-10-2006, 18:13
dove la trovo questa variabile?

in php.ini o che altro?

sotto quale nome?La 'root' del sito la si configura nel web server.
Con Apache si usa la direttiva "DocumentRoot" nel file httpd.conf

natcam
19-10-2006, 18:18
la document root che ho in apache e` questa:

DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"

Ora tornando al discorso precedente che c`e` devo scrivere????? :muro:

andbin
19-10-2006, 18:21
la document root che ho in apache e` questa:

DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"

Ora tornando al discorso precedente che c`e` devo scrivere????? :muro:Non devi scrivere nulla!!!!!

Quella è la directory sotto cui tu metti i file per il tuo sito.
Quando il tuo script viene eseguito, $_SERVER['DOCUMENT_ROOT'] contiene il path che hai appena riportato!

natcam
19-10-2006, 18:22
Riepilogando
www
Prova
fabio.zip
file.php che continene l`istruzione $zip = zip_open("/prova/fabio.zip");

e

DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"

qual`e` la soluzione?

Ps: andbin mi mandi via mp il tuo indrizizzo che lo aggiungo al messenger, almeno ne parliamo in tempo reale?

Grazie ancora

andbin
19-10-2006, 21:00
Riepilogando
www
Prova
fabio.zip
file.php che continene l`istruzione $zip = zip_open("/prova/fabio.zip");

e

DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"

qual`e` la soluzione? :stordita: Credevo che fosse chiaro ....
$zip = zip_open("$_SERVER['DOCUMENT_ROOT']/prova/fabio.zip");Quando il tuo script viene eseguito, la zip_open aprirà il file:

C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www/prova/fabio.zip

Non so come essere più chiaro ...

Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.