probleme array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme array

Re: probleme array

par Ryle » 24 janv. 2010, 00:11

C'est parce que lorsque tu insères ton enregistrement dans ta base, à la place du nom de l'image, tu passes la valeur $_FILES['photo'] qui est un tableau... du coup php concatene la chaine "array()" à ta requête.

Il te faut utiliser $_FILES['photo']['name'] dans ta requête si tu veux récupérer le nom du fichier uploadé :)

probleme array

par graffx » 23 janv. 2010, 23:44

Salut a tous!

J' ai l' habitude d' utiliser le tp de script de news, et j' ai decidé de le melanger avec celui sur l' upload.

Ca fonctionne a un detail prés, j' ai dans ma bdd les chaps ID CAT et IMAGE

IMAGE est juste censé enregistrer le nom de l' image modifié. Je ne sais pas pourquoi j' ai juste un gros "Array" a la place du nom de l' image.

id bigint(20)
cat varchar(255)
image text


voici le code:
<?php
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une cat ?
//-----------------------------------------------------
if (isset($_POST['titre2']))
{
    $titre2 = addslashes($_POST['titre2']);
    $photo = $_FILES['photo'];
	$dossier = '../themes/'.$config['theme'].'/images/miniatures/';
	$fichier = time()."_".$_FILES['photo']['name'];
	$taille_maxi = 5000000;
	$taille = filesize($_FILES['photo']['tmp_name']);
	$extensions = array('.png', '.gif', '.jpg', '.jpeg');
	$extension = strrchr($_FILES['photo']['name'], '.');
	
	


			//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
	 }
     move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
	 
?>
	
	<?php
    // On vérifie si c'est une modification de cat ou pas
    if ($_POST['id_cat'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO cat VALUES('', '" . $titre2 . "', '" . $_FILES['photo'] . "')");
		
		
		
    }
    else
    {
        // On protège la variable "id_cat" pour éviter une faille SQL
        $_POST['id_cat'] = addslashes($_POST['id_cat']);
        // C'est une modification, on met juste à jour le titre et le contenu
        mysql_query("UPDATE cat SET titre='" . $titre2 . "', image='" . $photo . "' WHERE id='" . $_POST['id_cat'] . "'");
    }
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une cat ?
//--------------------------------------------------------
if (isset($_GET['supprimer_cat'])) // Si on demande de supprimer une cat
{
    // Alors on supprime la cat correspondante
    // On protège la variable "id_cat" pour éviter une faille SQL
    $_GET['supprimer_cat'] = addslashes($_GET['supprimer_cat']);
    mysql_query('DELETE FROM cat WHERE id=\'' . $_GET['supprimer_cat'] . '\'');
}
?>
<table width="700">
  <tr>
<th width="112" align="left" valign="top">Modifier</th>
<th width="138" align="left" valign="top">Supprimer</th>
<th width="434" align="center" valign="top">Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM cat ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les cat
{
?>
<tr>
<td align="left" valign="top"><?php echo '<a href="rediger_cat.php?modifier_cat=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td align="left" valign="top"><?php echo '<a href="liste_cat.php?supprimer_cat=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td align="left" valign="top"><?php echo stripslashes($donnees['cat']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les cat
?>