Vous n'êtes pas identifié(e).
Salut, je suis débutant et
Je voudrais réaliser une galerie en php.
J’essaie de comprendre et d’utiliser des fonctions php nécessaires pour écrire/lire des chemins d'images dans une bdd,
J'ai une bdd avec une table à 4 champs, id, nom, note, photo.
un fichier de connection php, un fichier config.php, un fichier insert_form.php et un formulaire
mais lorsque j’utilise l’ensemble de fichiers pour uploader et mettre à jour la bdd,
j’ai pas l’image uploadée dans le dossier, le champs « chemin de l’image » ne contient que le nom
J’ai essayé de changer les chemins, absolu/relatif, rien n’y fait. en sachant que les images doivent être dans un sous dossier.
voila le fichier insert_form.php:
au final j'ai une entrée dans la base ayant donc à la place du chemin, le nom et pas de fichier image.
Si quelqu'un à une idée cela m'aiderait grandement.
merci
Hors ligne
Bonjour,
Le problème viens du fait que vous ne pouvez pas traiter les variables $_POST d'un formulaire sur le même formulaire qui gère le dépôt de fichier en PHP.
Le dépôt de fichier en PHP a déjà été abordé sur ce forum comme par exemple ici : http://forum.phpdebutant.org/viewtopic.php?id=8452
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bonjour,
voilà j'ai avancé, j'arrive a envoyer et récuperer sur server l'image, créer un thumbnail, et générer un certain nombre de variables, que je désirerai entrer dans ma base.
Cependant, j'ai beau retourner le script dans tout les sens rien ne rentre.
j'arrive pas à voir d'ou cela peut provenir
// ***** ici on récupère les données et on les stocke dans mysql
$nom = $_POST['nom'];
$note = $_POST['note'];
//******* On renomme l'image de manière aléatoire pour éviter un conflit dans le dossier (2 fois le même nom par exemple
include 'functions.php';
$allowed_ext = "jpg, gif, png, jpeg, JPG";
$top = 50;
$filename = $_FILES['image']['name'];
// Is the extension allowed?
$extension = checkext($filename, $allowed_ext);
// connection base
$connect = database_connect($db);
if(!$connect){die("Could not connect to MySQL");}
if ($extension != False)
{
// Move the temporary file to the image folder
$save_to="temp/";
if ($_POST['send_upload']==1)
{
$file_name=$_FILES['image']['name'];
move_uploaded_file($_FILES['image']['tmp_name'], $save_to.basename($file_name)) or die('Cannot upload image');
$filepath = $save_to.basename($file_name);
}
// Create an image resource from the uploaded image
if($extension == "jpg" || $extension == "jpeg" || $extension == "JPG"){
$source=imagecreatefromjpeg($filepath);
}elseif($extension == "png") {
$source=imagecreatefrompng($filepath);
}elseif($extension == "gif") {
$source=imagecreatefromgif($filepath);
}
// Resize the image resource
$width_orig = imagesx( $source ); // width of image resource
$height_orig = imagesy( $source ); // height of image resource
$uploadedimage = $source; // Create space for the resized image
//Save the resized image
if($extension == "jpg" || $extension == "jpeg" || $extension == "JPG"){
imagejpeg($uploadedimage, $filepath, 100);
}elseif($extension == "png") {
imagepng($uploadedimage, $filepath);
}elseif($extension == "gif") {
imagegif($uploadedimage, $filepath);
}
//Print and clean stuff
$im =imagejpeg($uploadedimage, "images/genuine/" . $filename );
//imagedestroy($im);
imagedestroy($uploadedimage);
// imagedestroy($source);
}
$im = imagecreatefromjpeg('images/genuine/'.$filename);
// thumbnail
list($width, $height) = getimagesize('images/genuine/'.$filename);
$new_width = 150;
$new_height = round((150/$width)*$height);
// Redimensionnement
$image_p = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_p, $im, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_p, 'images/thumbs/'.md5($filename).'-thumb.jpg', 70);
imagedestroy($im);
imagedestroy($image_p);
$ip = $_SERVER["REMOTE_ADDR"];
$photo = "../images/genuine/" . $filename;
$md5 = md5($filename);
$model = '';
$title = "$filename.";
$today = date("F j, Y, g:i a");
$loc = ($ip);
$warnings = 0;
$candidate = 0;
$accepted = 0;
$date_accepted = 0;
//
echo $nom,"</br>", $photo,"</br>", $md5,"</br>", $loc,"</br>", $today, "</br>";
//var_dump($connect);
$poids = getimagesize('images/genuine/'.$filename);
if($poids !=0)
{
// on enregistre les données
$sql = "INSERT INTO poster (nom, note, photo, md5, model, title, date, ip, warning, candidate, accepted, date_accepted) VALUES
(
'".mysql_real_escape_string($nom)."',
'".mysql_real_escape_string($note)."',
'".mysql_real_escape_string($photo)."',
'".mysql_real_escape_string($md5)."',
'".mysql_real_escape_string($model)."',
'".mysql_real_escape_string($title)."',
'".mysql_real_escape_string($today)."',
'".mysql_real_escape_string($loc)."',
'".mysql_real_escape_string($warnings)."',
'".mysql_real_escape_string($candidate)."',
'".mysql_real_escape_string($accepted)."',
'".mysql_real_escape_string($date_accepted)."',
)
";
mysql_query($sql);
//Si il y a une erreur, on crie ^^
if (!$sql) {
die('Requête invalide : ' . mysql_error()); echo"$sql";
}
// on ferme la connection mysql donc ci-dessous plus de sql
mysql_close($connect);
};
var_dump($sql);
Hors ligne
Bonjour,
Votre table poster possède une PK auto incrémentée?
Sinon pour le reste de l'écriture de votre code je vous recommande une lecture à laquelle j'ai eu l'occasion de participer récemment
http://www.developpez.net/forums/d12434 … tions-sql/
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
oui l'id est en auto increment
Hors ligne
Vous avez une virgule de trop avant de fermer votre parenthèse.
Tous vos paramètres sont des VARCHAR? parce que une colonne "accepted" et "date_accepted" en VARCHAR, je trouve cela inquiétant^^.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Merci, c'était la virgule de trop...
j'ai essayé et retourné tout dans tous les sens, et j'ai pas vu la virgule!!
non j'ai que 3 colonnes en varchar, pourquoi?
cela peut poser problème?
Hors ligne
Normalement votre colonne "accepted" devrait être définie en boolean ou bit(1) et date_accepted en datetime ou timestamp selon vos besoins.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne