Funziona eccome! Grazie Thedarkita.
zambuten
@zambuten
Post creati da zambuten
-
Evitare echo di dati ridondanti
Premetto che sono un principiante di php e vi ringrazio fin d'ora dell'attenzione.
Riporto una porzione del codice del mio script in cui il ciclo:```
while ($array = mysql_fetch_array($result3)){
$DataBro = substr($array['DataBordero'], -2)."/".substr($array['DataBordero'], 5, 2)."/".substr($array['DataBordero'], 0, 4); // converto la data in formato gg/mm/aaaa $Contratto = $array['Contratto']; $NumSped = $array['SiglaSede'].$array['NSpedizione']; $DataInvio = substr($array['DataInvioEmail'], -2)."/".substr($array['DataInvioEmail'], 5, 2)."/".substr($array['DataInvioEmail'], 0, 4); // converto la data in formato gg/mm/aaaa; $OraInvio = $array['OraInvioEmail']; $DestinatarioEmail = $array['Destinazione']; $CcEmail = $array['Cc']; $totaleParziale = $row2['COUNT(Contratto)']; echo "<tr>"; echo "<td>"; echo $DataBro; echo "</td>"; echo "<td>"; echo $Contratto; echo "</td>"; echo "<td>"; echo $NumSped; echo "</td>"; echo "<td>"; if ($DataInvio == '00/00/0000'){ echo "";} else {echo "$DataInvio";} echo "</td>"; echo "<td>"; if ($OraInvio == '00:00:00'){ echo "";} else {echo "$OraInvio";} echo "</td>"; echo "<td>"; echo $DestinatarioEmail; echo "</td>"; echo "<td>"; echo $CcEmail; echo "</td>"; echo "</tr>"; }
Data Contratto Nr. Spedizione Data invio Ora invio Destinazione Cc
20/05/2008 2402 AA123456789 22/05/2008 02:02:04 [email protected] [email protected]
20/05/2008 2402 AA123456788 22/05/2008 02:02:04 [email protected] [email protected]
20/05/2008 2402 AA123456787 23/05/2008 02:00:52 [email protected] [email protected]
20/05/2008 2733 AA123456786 22/05/2008 02:02:12 [email protected]
20/05/2008 2733 AA123456785 22/05/2008 02:02:12 [email protected]Data Contratto Nr. Spedizione Data invio Ora invio Destinazione Cc
20/05/2008 2402 AA123456789 22/05/2008 02:02:04 [email protected] [email protected]
2402 AA123456788 22/05/2008 02:02:04 [email protected] [email protected]
2402 AA123456787 23/05/2008 02:00:52 [email protected] [email protected]
20/05/2008 2733 AA123456786 22/05/2008 02:02:12 [email protected]
2733 AA123456785 22/05/2008 02:02:12 [email protected] -
RE: Salvare da Blob type a file
Ho risolto utilizzando la suite di ImageMagick.
Nel mio caso per ogni immagine memorizzata nella tabella tbadge nel campo di tipo blob, trovata dalla query, andro' a scrivere in una directory del disco del server l'immagine in formato jpg.
Spero potra' essere d'aiuto ad altri utenti del forum.foreach($_POST["myarray"] as $id){
$dati = mysql_query("SELECT * FROM tbadge WHERE idbadge = ('".$id."')");
while($row = mysql_fetch_array($dati)){ $tmpName = "/tmp/foto/".$row["name"]; **//path nel quale verranno scritti i file** $mgck_wnd = NewMagickWand(); **//richiamo la risorsa MagickWand** MagickReadImageBlob($mgck_wnd, $row["foto"]); **//leggo l'immagine dal formato binario** MagickSetImageFormat($mgck_wnd, 'jpg'); **//converto l'immagine in formato jpg** MagickWriteImage($mgck_wnd, $tmpName); **//scrivo nella directory scelta l'immagine in formato jpg** }
}
-
RE: Salvare da Blob type a file
Grazie Ceccus.
Premetto che sono un assoluto principiante quindi mi scuserai per eventuali castronerie od incomprensioni.
Riporto il codice da te postato per fare alcune osservazioni:
$path='./img/'; //scelgo il percorso
$file = $path.$result_query_1; //il risultato della query: nome file, preceduto dal path
**$fo = fopen($file, 'wb');
**
$file non esiste in concreto, io ho solo il nome del file memorizzato in un campo quindi non riesco a capire come posso fare un fopen() su un file che di fatto non esiste.**$imm = $result_query_2; //il risultato della query sul campo blob: dato binario **
**fwrite($fo, $imm); **
**fclose($fo);**infatti, seguendo le tue indicazioni ho questo messaggio di errore:
Warning: fopen(./tmp/BSA00004.jpg) [function.fopen]: failed to open stream: No such file or directory in /u/www/executive.web/divIT/badge/fileFoto.php on line 46
Warning: fwrite(): supplied argument is not a valid stream resource in /u/www/executive.web/divIT/badge/fileFoto.php on line 48
Warning: fclose(): supplied argument is not a valid stream resource in /u/www/executive.web/divIT/badge/fileFoto.php on line 49
in ogni caso riporto, escludendo le stringhe di connessione al DB, il mio codice:
foreach($_POST["myarray"] as $id){
$dati = mysql_query("SELECT * FROM tbadge WHERE idbadge = ('".$id."')");
while($row = mysql_fetch_array($dati)){ $path='./tmp/'; //scelgo il percorso $file = $path.$row['name']; //il risultato della query: nome file, preceduto dal path $fo = fopen($file, 'wb'); $imm = $row['foto']; //il risultato della query sul campo blob: dato binario fwrite($fo, $imm); fclose($fo); }
}
-
Salvare da Blob type a file
Ciao, dovrei risolvere il seguente problema:
ho una tabella di un DB mysql che contiene delle immagini. Le immagini sono memorizzate in un campo di tipo BLOB (in un altro campo ho il nome del file, che ha estensione jpg).
Dovrei, attraverso una query, acquisire il file memorizzato nel campo BLOB e riconvertirlo in jpg senza pero' mostrarlo a video, al contrario devo spostarlo in una specifica directory del disco del server.
Non so se sono stato sufficientemente chiaro.
Grazie per l'attenzione. -
Download di immagini da DB
Scusate se la domanda potra' sembrare banale ma sono piuttosto inesperto.
Ho una tabella che, oltre a diversi dati, contiene un'immagine, in formato jpg, per ogni record. Vorrei, attraverso una query, permettere all'utente di scaricare sul proprio pc tutte le immagini selezionate dalla query, come posso fare?
Grazie per l'aiuto. -
RE: Passaggio $_FILES fra piu' pagine
@Skyline said:
dice che non trova i files.. controlla bene
Grazie della risposta.
In effetti pare che il problema sia proprio quello.
Ho risolto cosi': attraverso la seconda pagina ho "appoggiato" il file dell'immagine in una directory creata ad hoc e poi lo vado a riprendere nella terza pagina attraverso la quale, una volta ripreso e caricato sul DB, provvedo a cancellarlo dalla directory di appoggio. -
Passaggio $_FILES fra piu' pagine
Ciao a Tutti.
Ho la seguente situazione che non riesco a risolvere.
Devo fare un upload di un'immagine in un database mysql, fin qui nessun problema. La difficolta' nasce dal fatto che ho 3 pagine da gestire:- pag1.php per inserimento dati e scelta del file da caricare lato client nel campo "userfile", con form che punta a pag2.php
- pag2.php per controllo e conferma dati da parte dell'utente con form che punta a pag3.php
- pag3.php che e' la pagina di upload vera e propria con messaggio di successo od errore caricamento file.
Succede che non riesco a recuperare e gestire nella pag3.php la variabile $_FILES, che contiene l'array del file che l'utente vuole caricare, presente nella pag2.php. Ho provato a creare dei campi nascosti nella pag2.php, ognuno con value uguale a:
$_FILES["userfile"]["name"];
$_FILES["userfile"]["type"];
$_FILES["userfile"];
$_FILES["userfile"]["tmp_name"];per passare e poi recuperare il valore con $_POST, ma niente da fare. Se faccio in pag3.php un echo delle variabili vedo il contenuto ma lo script di pag3.php non me lo gestisce.
Questo e' il codice della pag3.php
<?php
include_once ($_SERVER["DOCUMENT_ROOT"]."/div/util/util_db.php");
include_once ($_SERVER["DOCUMENT_ROOT"]."/div/Connessioni/conn_badge.php");$nome = $_POST["nome"];
$cognome = $_POST["cognome"];
$mansione = $_POST["mansione"];
$societa = $_POST["societa"];
$qualifica = $_POST["qualifica"];
$progressivo = $_POST["progressivo"];$userfile = $_POST["userfile"];
$userfilenome = $_POST["userfilenome"];
$userfiletipo = $_POST["userfiletipo"];
$userfilesize = $_POST["userfilesize"];
$userfiletmp = $_POST["userfiletmp"];$fileName = $userfilenome;
$tmpName = $userfiletmp;
$fileSize = $userfilesize;
$fileType = $userfiletipo;$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}$query = "INSERT INTO tbadge (sede, nome, cognome, mansione, societa, foto, name, type, size, inizialequalifica, progressivobadge) VALUES ('".$siglaSede."', '".$nome."', '".$cognome."', '".$mansione."', '".$societa."', '".$content."', '".$userfilenome."', '".$userfiletipo."', '".$userfilesize."', '".$qualifica."', '".$progressivo."')";
mysql_query($query) or die('Error, query failed');
echo "<br>File $fileName uploaded<br>";
?>
Questi sono gli errori:
Warning: fopen(/var/tmp/phplcaWtj): failed to open stream: No such file or directory
Warning: filesize(): Stat failed for /var/tmp/phplcaWtj (errno=2 - No such file or directory)
Warning: fread(): supplied argument is not a valid stream resource
Warning: fclose(): supplied argument is not a valid stream resource
Spero di essere stato sufficientemente chiaro.
-
RE: Errore Php - Mysql
Il problema l'ho risolto verificando con attenzione i percorsi dei file assegnati ad alcune variabili e di alcuni include. Nonostante non abbia alterato la struttura delle directory e dei file mi sono trovato che i percorsi di alcuni file assegnati a delle variabili e i path degli include andavano bene sul server del precedente hoster ma non sul quello del nuovo, il perche' pero' non lo so.
Ad esempio, se all'interno della directory pippo ho, fra gli altri, due file, uno pluto.php e l'altro paperino.php, per fare l'include di paperino dentro pippo avevo scritto: include 'paperino.php';
Sul server del vecchio hoster cio' funzionava. Adesso invece per farlo lavorare correttamente ho dovuto specificare: include './pippo/paperino.php';
la stessa cosa ho fatto per alcune variabili che contengono i percorsi ad alcuni file all'interno della cartella pippo.
Non so se sono stato sufficientemente chiaro, lo spero. -
RE: Errore Php - Mysql
@massy said:
Puoi postare le prime righe di quello script?
In particolare la riga 17 e 34Grazie massy ho appena risolto era un problema di percorsi
-
RE: Errore Php - Mysql
Usavo prima ed uso tutt'ora percorsi relativi che ho controllato piu' volte... mi sembrano corretti.
Chiedo scusa ma non so cosa sia pear e tantomeno se sul server sia installato. In ogni caso, nel manuale dello script, non c'e' nessun riferimento al pear.
-
Errore Php - Mysql
Ciao a tutti.
Premetto che sono un newbie di php e mysql.
Recentemente ho cambiato provider per l'hosting di un sito web e mi trovo che la pagina in cui sono gestite delle news (con php e mysql), contrariamente a prima, quando il sito era sul precedente hoster, non mi funziona piu' e mi da una serie di errori. La pagina delle news viene richiamata all'interno di una pagina html, con il seguente codice<?php include("./news/easynews.php"); ?>
mentre gli errori che vengono generati sono i seguenti:
Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/share/pear/config.php) is not within the allowed path(s): (/var/www/vhosts/pippo.net/httpdocs:/tmp) in /var/www/vhosts/pippo.net/httpdocs/web/ita/news/easynews.php on line 17
Warning: main(config.php) [function.main]: failed to open stream: Operation not permitted in /var/www/vhosts/pippo.net/httpdocs/web/ita/news/easynews.php on line 17
Warning: main() [function.include]: Failed opening 'config.php' for inclusion (include_path='.:/usr/share/pear') in /var/www/vhosts/pippo.net/httpdocs/web/ita/news/easynews.php on line 17
Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/share/pear/includes/functions.php) is not within the allowed path(s): (/var/www/vhosts/pippo.net/httpdocs:/tmp) in /var/www/vhosts/pippo.net/httpdocs/web/ita/news/easynews.php on line 34
Warning: main(includes/functions.php) [function.main]: failed to open stream: Operation not permitted in /var/www/vhosts/pippo.net/httpdocs/web/ita/news/easynews.php on line 34
Warning: main() [function.include]: Failed opening 'includes/functions.php' for inclusion (include_path='.:/usr/share/pear') in /var/www/vhosts/pippo.net/httpdocs/web/ita/news/easynews.php on line 34
Error during DBMS connection:
Access denied for user 'apache'@'localhost' (using password: NO)Il database e' creato cosi' come la tabella, tant'e' che riesco ad inserire le news e ad avere il preview, oltre a vederle regolarmente se richiamo direttamente la pagina 'easynews.php'.
Qualcuno sa darmi delle indicazioni, se sbaglio qualcosa o se puo' dipendere da alcuni parametri di configurazione da parte del mio nuovo provider?
Grazie per l'aiuto.