Ciao A tutti...
Lo so è stato scritto di tutto e di più.
Ma io ancora oggi non riesco a creare questo form.
Vorrei uplodare una foto sul server e collegarla alla relativa descrizione..
![]()
tabella mysql
1 id
2 nome
3 descrizione
4 immagine
Ciao A tutti...
Lo so è stato scritto di tutto e di più.
Ma io ancora oggi non riesco a creare questo form.
Vorrei uplodare una foto sul server e collegarla alla relativa descrizione..
![]()
tabella mysql
1 id
2 nome
3 descrizione
4 immagine
Che cosa non riesci a fare?
Grazie..
Vorrei creare un form in PHP che mi permetta di aggiornare/creare una tabella in MySQL.
Il form dovrebbe contenere un upload di file immagine attraverso il tasto sfoglia.
Per quanti script sto provando non c'è uno che riesco a far funzionare.
Il max è stato di creare un upload di file separato da un form di gestione news..
Nome:
Descrizione:
...
...
Immagine: (tasto sfoglia)
tipo quello che utilizza il forum html
Continuo a non capire quale sia il problema che non riesci a risolvere.
Grazie per la pazienza innanzitutto
devo aggiornare un database MySQL: db
Il db ha come tabella: catalogo
I campi della tabella sono:
id int(11) No Nessuno auto_increment
categoria_id int(11) No 0
nome varchar(25) latin1_swedish_ci Sì NULL
modello varchar(15) latin1_swedish_ci Sì NULL
sottotitolo varchar(80) latin1_swedish_ci Sì NULL
breve longtext latin1_swedish_ci Sì NULL
descrizione longtext latin1_swedish_ci Sì NULL
immagine varchar(64) latin1_swedish_ci Sì NULL
posizione int(2) No 0
Devo creare un form di inserimento/modifica dati in PHP
Il form mi deve permettere anche l'upload del file immagine in una cartella del sito: foto.
Non riesco... Sarà la cosa più banale del mondo ma non riesco..
![]()
Non riesci a fare cosa?
Sai come collegarti al DB?
Sai come eseguire una query e leggerne i risultati?
Hai mai creato una form di inserimento/modifica dei dati nel database?
Hai mai creato una form di upload funzionante?
Si so collegarmi al db riesco a creare le query e a leggerne i risultatiOriginariamente inviato da filippo.toso
Non riesci a fare cosa?
Sai come collegarti al DB?
Sai come eseguire una query e leggerne i risultati?
Hai mai creato una form di inserimento/modifica dei dati nel database?
Hai mai creato una form di upload funzionante?
Ho creato una form di inserimento/modifica dati nel database.
Non riesco/capisco ad integrare la funzione di upload del file immagine nel campo immagine...
qui ti inserisco il codice php della pagina di inserimento della news
Qui invece la pagina salva.phpCodice PHP:
<?
include ("db.php");
?>
<form method="post" action="salva.php" style="text-align: left">
Nome:
<input type="text" size="40" name="nome" />
Categoria:
<select name="categoria_id">
<option value="1">Controllo Accessi</option>
<option value="2">Rilevazione Presenze</option>
</select>
Modello:
<textarea cols="40" rows="10" name="modello" /></textarea>
Sottotitolo:
<input type="text" size="40" name="sottotitolo" />
Descrizione breve:
<textarea cols="30" rows="5" name="breve" /></textarea>
Descrizione:
<textarea cols="40" rows="20" name="descrizione" /></textarea>
Immagine:
<input type="text" size="40" name="immagine" />
Posizione:
<input type="text" size="40" name="posizione" />
<input type="submit" value="Invia" />
</form>
Codice PHP:
<?
$nome=$_REQUEST['nome'];
$categoria_id=$_REQUEST['categoria_id'];
$modello=$_REQUEST['modello'];
$sotto=$_REQUEST['sottotitolo'];
$breve=$_REQUEST['breve'];
$descrizione=$_REQUEST['descrizione'];
$immagine=$_REQUEST['immagine'];
$posizione=$_REQUEST['posizione'];
include("db.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "INSERT INTO catalogo (nome, categoria_id, modello, sottotitolo, breve, descrizione, immagine, posizione) VALUES ('$nome', '$categoria_id', '$modello', '$sotto', '$breve', '$descrizione', '$immagine', '$posizione')";
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente";
else
echo "Errore durante l'inserimento";
//endif;
mysql_close($db);
// chiude la verifica della presenza dei dati
?>
Alcune note generali:
1. Non usare lo short open tag, utilizza il tag di apertura completo (<?php).
2. Non usare $_REQUEST, utilizza l'array superglobale specifico (es. $_POST).
3. Non accedere ad un indice di un array se non sei sicuro della sua esistenza (vedi http://kb.creativepark.it/kb/entry/6/).
4. Studiati con le problematiche di sicurezza (vedi http://php.html.it/guide/leggi/121/g...urezza-di-php/) con speciale attenzione alla SQL Injection.
5. Il controllo sul valore di ritorno di mysql_query() dovrebbe essere !== FALSE.
6. Per integrare l'upload è sufficiente aggiungere un campo file e gestire l'upload come da manuale (http://www.php.net/manual/en/features.file-upload.php).
Grazie filippo... non sono un programmatore php ed alcune cose mi sono state di aiuto
ho spulciato nel web ed ho trovato la soluzione.. la posto magari se a qualcuno può servire o c'è bisogno di qualche correzione per la sicurezza o altro...
Cmq. qui la pagina in php per il form
questa la pagina salva.php che mi permette di salvare i dati nel db e fare l'upload dell'immagine sul serverCodice PHP:
<form method="post" action="salva.php" enctype="multipart/form-data" style="text-align: left">
Nome:
<input type="text" size="40" name="nome" />
Categoria:
<select name="categoria_id">
<option value="1">Controllo Accessi</option>
<option value="2">Rilevazione Presenze</option>
</select>
Modello:
<textarea cols="40" rows="10" name="modello" /></textarea>
Sottotitolo:
<input type="text" size="40" name="sottotitolo" />
Descrizione breve:
<textarea cols="30" rows="5" name="breve" /></textarea>
Descrizione:
<textarea cols="40" rows="20" name="descrizione" /></textarea>
Immagine:
<input type="file" size="40" name="image" />
Posizione:
<input type="text" size="40" name="posizione" />
<input type="submit" value="Invia" />
</form>
Magari si potrebbe implementare il ridimensionamento del file immagine...Codice PHP:
<?php
do {
if (is_uploaded_file($_FILES['image']['tmp_name'])) {
// Controllo che il file non superi i 18 KB
if ($_FILES['image']['size'] > 184320) {
$msg = "
Il file non deve superare i 180 KB!!</p>";
break;
}
// Ottengo le informazioni sull'immagine
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
// Controllo che le dimensioni (in pixel) non superino 180x125
if (($width > 180) || ($height > 125)) {
$msg = "
Dimensioni non corrette!!</p>";
break;
}
// Controllo che il file sia in uno dei formati GIF, JPG o PNG
if (($type!=1) && ($type!=2) && ($type!=3)) {
$msg = "
Formato non corretto!!</p>";
break;
}
// Verifico che sul sul server non esista già un file con lo stesso nome
if (file_exists('upload_img/'.$_FILES['image']['name'])) {
$msg = "
File già esistente sul server. Rinominarlo e riprovare.</p>";
break;
}
// Sposto il file nella cartella da me desiderata in questo caso upload_img
if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
$msg = "
Errore nel caricamento dell'immagine!!</p>";
break;
}
}
} while (false);
echo $msg;
$nome=$_POST['nome'];
$categoria_id=$_POST['categoria_id'];
$modello=$_POST['modello'];
$sotto=$_POST['sottotitolo'];
$breve=$_POST['breve'];
$descrizione=$_POST['descrizione'];
$immagine=$_FILES['image']['name'];
$posizione=$_POST['posizione'];
include("../inc/db.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "INSERT INTO catalogo (nome, categoria_id, modello, sottotitolo, breve, descrizione, immagine, posizione) VALUES ('$nome', '$categoria_id', '$modello', '$sotto', '$breve', '$descrizione', '$immagine', '$posizione')";
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente";
else
echo "Errore durante l'inserimento";
//endif;
mysql_close($db);
// chiude la verifica della presenza dei dati
php?>
Vedrò...
Grazie a tutti cmq. e sempre .