Newsgroup: it.comp.www.php
Titolo: [AIUTO] \/\/ PHP 4.3.3. /\/\ PHP 4.2


// Example php script to demonstrate the storing of binary files into
// an sql database. More information can be found at
http://www.phpbuilder.com/
?>
<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>
<?php
// code that will be executed if the form has been submitted:
if ($submit) {
    // connect to the database
    // (you may have to adjust the hostname,username or password)
    MYSQL_CONNECT("localhost","root","");
    mysql_select_db("binary_data");
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
    $result=MYSQL_QUERY("INSERT INTO binary_data
(description,bin_data,filename,filesize,filetype) ".
        "VALUES
('$form_description','$data','$form_data_name','$form_data_size','$form_data
_type')");
    $id= mysql_insert_id();
    print "<p>This file has the following Database ID: <b>$id</b>";
    MYSQL_CLOSE();
} else {
    // else show the form to submit new data:
?>
    <form method="post" action="<?php echo $PHP_SELF; ?>"
enctype="multipart/form-data">
    File Description:<br>
    <input type="text" name="form_description"  size="40">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>File to upload/store in database:<br>
    <input type="file" name="form_data"  size="40">
    <p><input type="submit" name="submit" value="submit">
    </form>
<?php
}
?>
Grazie

 fuziona sotto php 4.2 mentre gira alla grande con il 4.3.3 ?
Prova a mettere le chiamate MYSQL_ tutte minuscole piuttosto che
maiuscole come le hai scritte.
-- 
I'am what I'am, I do what I can


grazie per il suggerimento ma... niente da fare! :-(

iratoantonino wrote:

Definisci "niente da fare", che errore da? imposta error_reporting
(E_ALL);



non ritorna alcun errore, dopo aver premuto il tasto submit viene
semplicemente ricaricato il form e senza che il database sia stato toccato !
Lo stesso script fuziona a meraviglia se lanciato con microweb che monta il
php 4.3.3.

iratoantonino wrote:

Al posto di : <?php echo $PHP_SELF; ?> 
metti: <?php print ($_SERVER["PHP_SELF"]); ?>
Imposta in php.ini register_globals = on o utilizza gli array super
global $_GET e $_POST per gestire le variabili.


iratoantonino wrote:

E' un problema di register_globals in php.ini
Impostalo ad on od utilizza $_GET e $_POST per accedere alle variabili.
utilizza $_SERVER["PHP_SELF"] al posto di $PHP_SELF


 global $_GET e $_POST per gestire le variabili.
Ho risolto impostando register_globals = on , ma non ho usato gli array
super global per gestire le variabili.
Inoltre ho sostituito il paramentro "r" in "rb" in "fread" (utilizzo
windows)
Domande:
Perchè ho dovuto impostare register_globals = on pur non usando gli array
per le variabili globali? (ho visto cmq che nel php.ini del 4.3.3 è già
impostato su on)
Perchè con PHP 4.3.3 non c'è stato bisogno di impostare il paramentro "rb"
in "fread" ?
Grazie molte !

 "rb" in "fread" ?
Dal manuale:
On systems which differentiate between binary and text files (i.e.
Windows) the file must be opened with 'b' included in fopen() mode
parameter.


 utilizzate register_globals = off e gli array super globali.
ok, quindi per il futuro setterò il register_globals su "off" e
accederò alle variabili con $_POST['nomevariabile'] o $_GET['nomevariabile']
.
Ma perchè allora sulla versione 4.3.3 di PHP register_globals è settato di
default su "ON" ?




 il casino che ha creato nella community di programmatori PHP
Pero' ci sono oggettivi problemi di sicurezza, quindi impostarlo su OFF 
e usare gli array superglobali non e' un vezzo inutile... Certo ci vuole 
un po' a modificare script gia' esistenti, e magari corposi (pure io ci 
sono passato), pero' i vantaggi sono superiori agli svantaggi, secondo 
me.
-- 
 \\
  \\__ Falco Stellare - 
falco.ste...@libero.it
       <<Togli il TAPPO per avere l'indirizzo giusto>>