uploads multiples (images) et insert sql
Bonjour les codeurs,
j'ai un petit soucis avec mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
<?php
// Connect to the DB
$link = mysqli_connect("monserveur","mon login","mon mot de pass","ma base de données") or die("Error " . mysqli_error($link));
// store in the DB
if(!empty($_POST['Créer'])) {
// adding new products
if(!empty($_POST['nom'])) {
foreach($_POST['nom'] as $cnt => $nom) {
$sql = "INSERT INTO galerie (nom, description, image) VALUES ('$nom','".$_POST['description'][$cnt]."','".$_POST['image'][$cnt]."');";
$link->query($sql);
print("<script type=\"text/javascript\">setTimeout('location=(\"galerie.php?add=ok\")' ,1000);</script>");
// Upload des images
}
}
}
?>
.....
<form method="POST" name="galerie" id="form">
<fieldset>
<LEGEND align=top>Ajoutez vos images pour la galerie</LEGEND>
<table width="60%" border="0" cellspacing="0" cellpadding="5">
<tr><td colspan="2">
<?php if(isset($_GET['del']) && ($_GET['del'] == "ok")) { // Affiche l'erreur ?>
<ul class="states">
<li class="succes">L' (les) image(s) à(ont) été supprimé(es) avec succès.</li></ul>
<?php } ?>
<?php if(isset($_GET['up']) && ($_GET['up'] == "ok")) { // Affiche l'erreur ?>
<ul class="states">
<li class="succes">L' (les) image(s) à(ont) été uploadé(es) avec succès.</li></ul>
<?php } ?>
<?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur ?>
<ul class="states"><li class="succes">L' (les) image(s) à(ont) été créé avec succès.</li></ul>
<?php } ?>
</td></tr></table>
<div id="itemRows">
<p>
<label for="nom">nom: <input type="text" name="nom" /></label>
<label for="description"> Description: <input type="text" name="description" /></label>
<label for="image"> Image: <input type="file" name="image" multiple accept="image/*" /></label>
</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>
<input onClick="addRow(this.form);" type="button" value="Ajouter des images" />
Les valeurs ci dessus ne seront sauvegardées qu'après avois cliqué sur "Ajouter des images.
Lorsque vous avez renseigné toutes vos images, cliquez sur le bouton "Créer" en bas du formulaire.</p>
</div>
<p><input name="Créer" type="submit" value="Créer" class="small button"></p>
</fieldset>
</form>
<script type="text/javascript">
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var row = '<p id="rowNum'+rowNum+'"><label for="nom">Nom: <input type="text" name="nom[]" value="'+frm.nom.value+'"></label><label for="description">Description: <input type="text" name="description[]" value="'+frm.description.value+'"></label><label for="image"> Image: <input type="file" name="image[]" value="'+frm.image.value+'"></label>
</p><p> </p><p> </p><p> </p><p> </p><p> </p><p><input type="button" value="Supprimer" onclick="removeRow('+rowNum+');"></p>
';
jQuery('#itemRows').append(row);
frm.nom.value = '';
frm.description.value = '';
frm.image.value = '';
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
</script> |
L'insertion sql se fait correctement.
Par contre si je remplace
Code:
print("<script type=\"text/javascript\">setTimeout('location=(\"galerie.php?add=ok\")' ,1000);</script>");
par
Code:
print("<script type=\"text/javascript\">setTimeout('location=(\"upload.php\")' ,1000);</script>");
Le script reste bloqué sur upload.php en page blanche, l'insert sql ne se fait pas et les uploads non plus :(.
Fichier upload.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <?php
//If directory doesnot exists create it.
$output_dir = "../uploads/galerie/";
if(isset($_FILES["image"]))
{
$ret = array();
$error =$_FILES["image"]["error"];
{
if(!is_array($_FILES["image"]['name'])) //single file
{
$RandomNum = time();
$ImageName = str_replace(' ','-',strtolower($_FILES['image']['name']));
$ImageType = $_FILES['image']['type']; //"image/png", image/jpeg etc.
$ImageExt = substr($ImageName, strrpos($ImageName, '.'));
$ImageExt = str_replace('.','',$ImageExt);
$ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
$NewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
move_uploaded_file($_FILES["image"]["tmp_name"],$output_dir. $NewImageName);
//echo "<br> Error: ".$_FILES["image"]["error"];
print("<script type=\"text/javascript\">setTimeout('location=(\"galerie.php?up=ko\")' ,1000);</script>");
$ret[$fileName]= $output_dir.$NewImageName;
}
else
{
$fileCount = count($_FILES["image"]['name']);
for($i=0; $i < $fileCount; $i++)
{
$RandomNum = time();
$ImageName = str_replace(' ','-',strtolower($_FILES['image']['name'][$i]));
$ImageType = $_FILES['image']['type'][$i]; //"image/png", image/jpeg etc.
$ImageExt = substr($ImageName, strrpos($ImageName, '.'));
$ImageExt = str_replace('.','',$ImageExt);
$ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
$NewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
$ret[$NewImageName]= $output_dir.$NewImageName;
move_uploaded_file($_FILES["image"]["tmp_name"][$i],$output_dir.$NewImageName );
}
}
}
echo json_encode($ret);
print("<script type=\"text/javascript\">setTimeout('location=(\"galerie.php?up=ok\")' ,1000);</script>");
}
?> |
Un petit coup de pouce serait bienvenu :)