Unindefined index

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 : Unindefined index

Re: Unindefined index

par rimie » 28 févr. 2012, 13:04

Ah bah oui j'avais pas tilté pour le basename()...
Si tu utilises cette fonction tu ne gardes que le nom du fichier... Et tu perds son emplacement...
Donc vouloir transférer un fichier temporaire sans en connaitre l'emplacement cela ne peut pas se faire. :P
merci a vous

Re: Unindefined index

par xTG » 28 févr. 2012, 12:35

Ah bah oui j'avais pas tilté pour le basename()...
Si tu utilises cette fonction tu ne gardes que le nom du fichier... Et tu perds son emplacement...
Donc vouloir transférer un fichier temporaire sans en connaitre l'emplacement cela ne peut pas se faire. :P

Re: Unindefined index

par rimie » 28 févr. 2012, 12:12

j'ai mis:
$avatarTmp  = $_FILES['avatarFile']['tmp_name'];
j'ai enleve le basename et ca marche, est ce le code est correct?

Re: Unindefined index

par rimie » 28 févr. 2012, 11:52

echo $avatarError retourne 0 et print_r retourne
Array ( [avatarFile] => Array ( [name] => 419659_311818595533498_100001160796473_815789_178108306_n.jpg [type] => image/jpeg [tmp_name] => /var/log/tmp/phpJWxGNW [error] => 0 [size] => 14489 ) ) failed

Re: Unindefined index

par xTG » 28 févr. 2012, 10:52

Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.
Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.
Donc si aucun warning c'est que $avatarTmp est invalide.
Affiches ce qu'il y a dans $AvatarError, car vu que tu n'as pas de default dans ton switch il est possible que tu ais oublié un cas.

Re: Unindefined index

par rimie » 28 févr. 2012, 05:13

upload simple en php, ne renvois aucune erreur, sauf "failed":
<?php
// auth Ext
$authExt = array('png', 'gif', 'jpg', 'jpeg');
$authExtList = implode(', ',$authExt);
$uploadTo = $path2avatars.'/';
echo $uploadTo.'<br />';
$maxAvatarSize = '100000';

 	if(IsSet($_POST['submitAvatar']))
 	{

$avatarName = basename($_FILES['avatarFile']['name']);
$avatarTmp  = basename($_FILES['avatarFile']['tmp_name']);
$avatarSize = basename($_FILES['avatarFile']['size']);
$avatarType = basename($_FILES['avatarFile']['type']);
$avatarError = basename($_FILES['avatarFile']['error']); // list error codes

$AvatarExt = pathinfo($_FILES['avatarFile']['name'], PATHINFO_EXTENSION); // get file extension
//echo $AvatarExt.'<br />';
$AvatarExt = strtolower($AvatarExt);
//echo $AvatarExt.'<br />';
//echo 'avatar size: '.$avatarSize.'<br />';

//$RegexAllow = '/[a-zA-Z0-9]/';
if(!in_array($AvatarExt, $authExt))
{
	$fileError[] = 'ext non autorise: '.$authExtList;
}
	
	switch($avatarError)
	{
		case 1:
		$fileError[] = 'vol';
		break;
		
		case 2:
		$fileError[] = 'vol';
		break;
		
		case 3:
		$fileError[] = 'partiel';
		break;
		
		case 4:
		$fileError[] = 'vide';
		break;
		
		case 6:
		$fileError[] = 'tmp invalid';
		break;
		
		case 7:
		$fileError[] = 'ecriture disk';
		break;
		
		case 6:
		$fileError[] = 'ext';
		break;
		
		
	}
	
	if(IsSet($fileError) && (is_array($fileError) && count($fileError > 0)))
	{
		foreach($fileError as $fK=>$fV)
		{
			echo $fV.'<br />';
		}
	}
	else
		 
	 $avatarUpload = move_uploaded_file($avatarTmp, $uploadTo.$avatarName);
	 
	 if($avatarUpload)
	 {
	 	        echo "success";
            } else {
            	echo 'failed';
	}

}
}

?>

<form name="formAvatar" method="POST" action="<?php echo $current_url; ?>" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxAvatarSize; ?>" />
photo
<input type="file" name="avatarFile" class="avatarFile" />
<input type="submit" name="submitAvatar" class="submitAvatar" value="Envoyer" />
<br />
100 KB, <?php echo $authExtList; ?>.
</form>

Re: Unindefined index

par rimie » 28 févr. 2012, 04:08

je bais le voir merci

Re: Unindefined index

par moogli » 27 févr. 2012, 18:24

Regarde dans les contributions la classe d'upload de AB, ou le tuto sur l'impose (section tuto).


@+

Re: Unindefined index

par rimie » 27 févr. 2012, 16:04

Sauf que là avec cette méthode t'uploads rien du tout, tu passes un nom de fichier c'est tout...
On ne peut pas faire d'upload sans changer de page, tu trouveras des plugins jQuery mais en fait ils passent tous par une iframe en général.
http://www.webdeveloperjuice.com/2010/0 ... ng-jquery/

j'ai consule ces liens auparavant, tous par des iframes, je vais le faire 100% PHP, merci

Re: Unindefined index

par xTG » 27 févr. 2012, 14:57

Sauf que là avec cette méthode t'uploads rien du tout, tu passes un nom de fichier c'est tout...
On ne peut pas faire d'upload sans changer de page, tu trouveras des plugins jQuery mais en fait ils passent tous par une iframe en général.
http://www.webdeveloperjuice.com/2010/0 ... ng-jquery/

Re: Unindefined index

par rimie » 27 févr. 2012, 14:18

je veux juste l'upload pas plus :D

Re: Unindefined index

par Thibaud C » 27 févr. 2012, 14:01

Il y a des modules de resize image en Jquery ultra puissant et tout fait :)

Re: Unindefined index

par rimie » 27 févr. 2012, 14:00

je pense que ca va pas marcher par jQuery

Re: Unindefined index

par rimie » 27 févr. 2012, 11:37

                        console.log(dataString);
me retourne les valeurs correctes:
avatarFile=419_n.jpg&nom=test
et le var_dump retourne:
array(0) {
}
test<br />

Re: Unindefined index

par moogli » 27 févr. 2012, 11:36

je te conseil de vérifier le contenu de $_FILES.

et aussi de voir comment faire avec JQUERY ^^

la première chose à faire c'est de valider le formulaire normalement, après tu pourra y mettre de fioriture :mrgreen:

Dans les deux cas la validation sera la même de toute façon.

@+