par
athenaisxxx » 20 juin 2008, 18:31
Bonjour,
Je suis en train de coder un back office pour la creation d'une newsletter.
- La page Upload news fonctionne parfaitement, la newsletter en forme aussi.
J'ai du mal cependant à faire une page qui permette de modifier les news et surtout l'image associée !!!!!
J'ai du mal avec la gestion de fichiers uploadés et l'enregistrement du chemin relatif dans la base de données avec conditions.
J'ai ma page qui s'affiche avec toutes les news qui sont chacune dans un formulaire que l'on peut modifier.
J'aimerais pouvoir modifier le formulaire d'une news en changeant OU ne changeant pas la photo.
Si je ne la change pas : on garde le fichier original + chemin original de l'image. (le chemin original $oldphoto sera renvoyé par le formulaire dans un champs hidden pour ensuite etre renommé $newphoto)
Si je la change : on upload l'image et on update le chemin relatif.
Je n'arrive donc pas à faire comprendre au code ces 2 particularités. Pour le moment, j'arrive à modifier les infos (titres, texte....) et à uploader l'image de remplacement mais impossible d'utiliser Update sur le nouveau chemin de l'image.
Voilà mes 2 conditions qui deconnent quelquepart......Quelqu'un peut me donner une piste de reflexion ou peut etre qu'une fonction n'est pas utilisable comme j'ai pu le faire?????.... Ca fait 3 jours que je suis dessus. J'ai vraiment essayé de pas demander de l'aide mais là je suis bloqué......
[quote]// Modification
if ($_POST['submit'] == "Modifier") {
if (empty($_FILES['photo'])) {
$id = $_POST['id'];
$jour = $_POST['jour'];
$mois = $_POST['mois'];
$annee = $_POST['annee'];
$titre = $_POST['titre'];
$source = $_POST['source'];
$texte = $_POST['texte'];
$lien = $_POST['lien'];
$newphoto = $_POST['oldphoto'];
$query = "UPDATE news SET jour='$jour',mois='$mois',annee='$annee',titre='$titre',source='$source',texte='$texte',lien='$lien',photo='$newphoto' WHERE id=$id";
mysql_query($query,$connexion); }
if (isset($_FILES['photo'])) // Formulaire envoyé
{
print_r($_FILES['photo']);
$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
$titre = get_magic_quotes_gpc() ? stripslashes($titre) : $titre;
$jour = isset($_POST['jour']) ? $_POST['jour'] : '';
$jour = get_magic_quotes_gpc() ? stripslashes($jour) : $jour;
$mois = isset($_POST['mois']) ? $_POST['mois'] : '';
$mois = get_magic_quotes_gpc() ? stripslashes($mois) : $mois;
$annee = isset($_POST['annee']) ? $_POST['annee'] : '';
$annee = get_magic_quotes_gpc() ? stripslashes($annee) : $annee;
$texte = isset($_POST['texte']) ? $_POST['texte'] : '';
$texte = get_magic_quotes_gpc() ? stripslashes($texte) : $texte;
$lien = isset($_POST['lien']) ? $_POST['lien'] : '';
$lien = get_magic_quotes_gpc() ? stripslashes($lien) : $lien;
// Les erreurs que PHP renvoi
if($_FILES['photo']['error'] !== "0") {
switch ($_FILES['photo']['error']) {
case 1:
$erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
break;
case 2:
$erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
break;
case 3:
$erreurs[] = "L'image n'a été que partiellement téléchargé.";
break;
case 4:
$erreurs[] = "Aucun fichier n'a été téléchargé.";
break; // Pas de 5, ne pas demander pourquoi ^^ (voir doc PHP)
case 6:
$erreur[] = "Un dossier temporaire est manquant.";
break;
case 7:
$erreurs[] = "Échec de l'écriture du fichier sur le disque.";
break;
}
}
// getimagesize arrive à traiter le fichier ?
if(!$getimagesize = getimagesize($_FILES['photo']['tmp_name'])) {
$erreurs[] = "Le fichier n'est pas une image valide.";
}
// on vérifie le type de l'image
if( (!in_array( get_extension($_FILES['photo']['name']), $extensions_ok ))
or (!in_array($getimagesize[2], $typeimages_ok )))
{
foreach($extensions_ok as $text) { $extensions_string .= $text.', '; }
$erreurs[] = 'Veuillez sélectionner un fichier de type '.substr($extensions_string, 0, -2).' !';
}
// on vérifie le poids de l'image
if( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreurs[] = "Votre fichier doit faire moins de $taille_ko Ko !";
}
// copie du fichier si aucune erreur !
if(!isset($erreurs) or empty($erreurs))
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier, 'ÀÃ
Bonjour,
Je suis en train de coder un back office pour la creation d'une newsletter.
- La page Upload news fonctionne parfaitement, la newsletter en forme aussi.
J'ai du mal cependant à faire une page qui permette de modifier les news et surtout l'image associée !!!!!
J'ai du mal avec la gestion de fichiers uploadés et l'enregistrement du chemin relatif dans la base de données avec conditions.
J'ai ma page qui s'affiche avec toutes les news qui sont chacune dans un formulaire que l'on peut modifier.
J'aimerais pouvoir modifier le formulaire d'une news en changeant OU ne changeant pas la photo.
Si je ne la change pas : on garde le fichier original + chemin original de l'image. (le chemin original $oldphoto sera renvoyé par le formulaire dans un champs hidden pour ensuite etre renommé $newphoto)
Si je la change : on upload l'image et on update le chemin relatif.
Je n'arrive donc pas à faire comprendre au code ces 2 particularités. Pour le moment, j'arrive à modifier les infos (titres, texte....) et à uploader l'image de remplacement mais impossible d'utiliser Update sur le nouveau chemin de l'image.
Voilà mes 2 conditions qui deconnent quelquepart......Quelqu'un peut me donner une piste de reflexion ou peut etre qu'une fonction n'est pas utilisable comme j'ai pu le faire?????.... Ca fait 3 jours que je suis dessus. J'ai vraiment essayé de pas demander de l'aide mais là je suis bloqué......
[quote]// Modification
if ($_POST['submit'] == "Modifier") {
if (empty($_FILES['photo'])) {
$id = $_POST['id'];
$jour = $_POST['jour'];
$mois = $_POST['mois'];
$annee = $_POST['annee'];
$titre = $_POST['titre'];
$source = $_POST['source'];
$texte = $_POST['texte'];
$lien = $_POST['lien'];
$newphoto = $_POST['oldphoto'];
$query = "UPDATE news SET jour='$jour',mois='$mois',annee='$annee',titre='$titre',source='$source',texte='$texte',lien='$lien',photo='$newphoto' WHERE id=$id";
mysql_query($query,$connexion); }
if (isset($_FILES['photo'])) // Formulaire envoyé
{
print_r($_FILES['photo']);
$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
$titre = get_magic_quotes_gpc() ? stripslashes($titre) : $titre;
$jour = isset($_POST['jour']) ? $_POST['jour'] : '';
$jour = get_magic_quotes_gpc() ? stripslashes($jour) : $jour;
$mois = isset($_POST['mois']) ? $_POST['mois'] : '';
$mois = get_magic_quotes_gpc() ? stripslashes($mois) : $mois;
$annee = isset($_POST['annee']) ? $_POST['annee'] : '';
$annee = get_magic_quotes_gpc() ? stripslashes($annee) : $annee;
$texte = isset($_POST['texte']) ? $_POST['texte'] : '';
$texte = get_magic_quotes_gpc() ? stripslashes($texte) : $texte;
$lien = isset($_POST['lien']) ? $_POST['lien'] : '';
$lien = get_magic_quotes_gpc() ? stripslashes($lien) : $lien;
// Les erreurs que PHP renvoi
if($_FILES['photo']['error'] !== "0") {
switch ($_FILES['photo']['error']) {
case 1:
$erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
break;
case 2:
$erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
break;
case 3:
$erreurs[] = "L'image n'a été que partiellement téléchargé.";
break;
case 4:
$erreurs[] = "Aucun fichier n'a été téléchargé.";
break; // Pas de 5, ne pas demander pourquoi ^^ (voir doc PHP)
case 6:
$erreur[] = "Un dossier temporaire est manquant.";
break;
case 7:
$erreurs[] = "Échec de l'écriture du fichier sur le disque.";
break;
}
}
// getimagesize arrive à traiter le fichier ?
if(!$getimagesize = getimagesize($_FILES['photo']['tmp_name'])) {
$erreurs[] = "Le fichier n'est pas une image valide.";
}
// on vérifie le type de l'image
if( (!in_array( get_extension($_FILES['photo']['name']), $extensions_ok ))
or (!in_array($getimagesize[2], $typeimages_ok )))
{
foreach($extensions_ok as $text) { $extensions_string .= $text.', '; }
$erreurs[] = 'Veuillez sélectionner un fichier de type '.substr($extensions_string, 0, -2).' !';
}
// on vérifie le poids de l'image
if( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreurs[] = "Votre fichier doit faire moins de $taille_ko Ko !";
}
// copie du fichier si aucune erreur !
if(!isset($erreurs) or empty($erreurs))
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier, 'ÀÃ