ho questa funzione per effettuare l'inserimento dati nel db:
ho un form per l'upload piu inserimento di una didascalia:codice:function insertImg($nome, $didascalia, $art_titolo) { global $config; try { $prepare = $config->getPdo()->prepare("INSERT gallerie_articoli (galleria_art_nome, galleria_art_didascalia, articolo_titolo_FK) VALUES (?,?,?)"); $prepare->execute(array( $nome, $didascalia, $art_id )); } catch (Exception $e) { die($e->getMessage()); } }
al submit del form dovrei uplodare le immagini e salvare nome e didascalia sul db:codice:<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form_upload"> <table> <tr> <td> <input type="file" name="file[]"/> <input type="file" name="file[]"/> <input type="file" name="file[]"/> <input type="file" name="file[]"/> <input type="file" name="file[]"/> </td> <td> <input type="text" name="didascalia[]" value="" /> <input type="text" name="didascalia[]" value="" /> <input type="text" name="didascalia[]" value="" /> <input type="text" name="didascalia[]" value="" /> <input type="text" name="didascalia[]" value="" /> </td> </tr> <tr> <td>Articolo:</td> <td> <select name="articolo"> <option value="*">*</option> <?php foreach (selectArticolo() as $row) { echo "<option value='" . $row['articolo_titolo'] . "'>" . $row['articolo_titolo'] . "</option>"; } ?> </select> </td> </tr> <tr> <td> <input type="submit" value="Upload" name="upload_img" /> </td> <td></td> </tr> </table> </form>
il problema è l'inserimento nel db.codice:if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['upload_img'])) { if ($_POST['articolo'] == "*") { echo "Seleziona un articolo"; } else { $maxSize = 512000; //byte => 550KB $acceptType = array( 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpg', ); $cartella = "../img_articoli/" . $_POST['articolo'] . "/"; for ($i = 0; $i < count($_FILES['file']['name']); $i++) { if ($_FILES['file']['name'][$i] != "") { createDir($_POST['articolo']); $nome_upload = uniqid($_POST['articolo'] . "-", true) . strrchr($_FILES['file']['name'][$i], '.'); $destinazione = $cartella . $nome_upload; if ($_FILES['file']['size'][$i] <= $maxSize) { if (in_array($_FILES['file']['type'][$i], $acceptType)) { if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $destinazione)) { insertImg($nome_upload, $_POST['didascalia'], $_POST['articolo']); echo "File " . $i . " inserito "; } else { echo "Errore nell'upload "; } } else { echo 'Tipo file non valido '; } } else { echo 'File troppo grande '; } } elseif ($_POST['upload_img']) { echo 'Non ci sono file da inserire '; } } } }
in pratica nn viene salvato nulla.
penso che l'errore sia proprio nella didascalia.
se provo a farne l'echo mi esce fuori array.

Rispondi quotando