souci php

eva3
Invité n'ayant pas de compte PHPfrance

13 janv. 2014, 15:32

Bonjour,
j'ai une erreur : Notice: Uninitialized string offset de la ligne :
$a_errors[] = '<div class="artforms-errorwsize">Le fichier est vide<br />( '.$max_size.' KBytes )<br />fichier: '.$_FILES['attfile']['name'][$g].'</div>'; 

Pourriez-vous me dire pourquoi s'il vous plaît ?

ViPHP
ViPHP | 928 Messages

13 janv. 2014, 16:57

A mon avis ça vient de ça :
$_FILES['attfile']['name'][$g]
Normalement $_FILES['attfile']['name'] est suffisant, je ne sais pas trop pourquoi il y a un [$g] mais supprime le.

eva3
Invité n'ayant pas de compte PHPfrance

13 janv. 2014, 17:30

voici toute la partie où y'a [$g]
$attachments = array();
	for( $g = '0'; $g < $attfilescount; $g++ ) {
		//echo "error [" . $_FILES['attfile']['error'][$g] . "]";
	    if ( $_FILES['attfile']['error'][$g] == '4' && $_FILES['attfile']['name'][$g] == '' ){
            // no file
		}
		elseif ($_FILES['attfile']['error'][$g] == 1 || $_FILES['attfile']['size'][$g] > ($max_size * 1024)){
			// UPLOAD_ERR_INI_SIZE
			$a_errors[] = '<div class="artforms-error">Le fichier d&eacute;passe la taille maximum autoris&eacute;e<br />(max. '.$max_size.' KBytes)<br />fichier : '.$_FILES['attfile']['name'][$g].'</div>';
		}
		elseif ($_FILES['attfile']['size'][$g] == 0){
			$a_errors[] = '<div class="artforms-errorwsize">Le fichier est vide<br />( '.$max_size.' KBytes )<br />fichier: '.$_FILES['attfile']['name'][$g].'</div>';
		}
		elseif (!afMimeTypeIsInArray($_FILES['attfile']['type'][$g], $mimetypen_array)){
			$chktypealert = '<div class="artforms-errorwtype">';
			$chktypealert .= 'Type de fichier incorrect' .'<br />*.'.afGetFileExt( $_FILES['attfile']['name'][$g] ).' ('.$_FILES['attfile']['type'][$g].')<br /><br />fichier : '.$_FILES['attfile']['name'][$g].'<br />';
			//$chktypealert .= '<br />'.JText::_( 'ARTF_ONLYFILESALLOWED' ).'<br /><a href="javascript:void(0);" onClick="javascript:if(document.getElementById(\'afallowedfilesspoiler'.$g.'\').style.display != \'\') { document.getElementById(\'afallowedfilesspoiler'.$g.'\').style.display = \'\';this.innerText = \'\'; this.value = \'Hide\'; } else { document.getElementById(\'afallowedfilesspoiler'.$g.'\').style.display = \'none\'; this.innerText = \'\'; this.value = \'Show\'; };">'.JText::_( 'ARTF_CLICKTOSHOW' ).'</a><div><div id="afallowedfilesspoiler'.$g.'" style="display: none;"><ul>';
			foreach ($mtypes_key_array as $key){
				$chktypealert .= "\n<li>".$mtypes_allowed[$key]['ext']."</li>";
			}
			$a_errors[] = $chktypealert;
		}
		else {
			if ($_FILES['attfile']['name'][$g] != '' ){
				$attachmentsname = str_replace(' ','-',$_FILES['attfile']['name'][$g]);
				$attachments[] = $artuplpfad.$attachmentsname;
				$attachmentstodb[] = $attachmentsname;
				move_uploaded_file($_FILES['attfile']['tmp_name'][$g],$artuplpfad.$attachmentsname);
			}
		}
	}

Dès que je l'enlève, je n'ai plus la même erreur, il m'indique plus dans quelle ligne c'est, mais j'ai toujours : " you cannot load this page directly."

Mammouth du PHP | 2278 Messages

13 janv. 2014, 18:18

Aspro est bon pour les soucis, mais ton titre est inutile en l'état.

Il serait peutêtre utile de mettre au début
print_r($_FILES); die();
pour en avoir le coeur net.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

eva3
Invité n'ayant pas de compte PHPfrance

14 janv. 2014, 10:24

C'est bon j'ai réussi ! enfin !
Finalement c'est le [$g] qui ne servait pas à grand chose, j'ai aussi ajouté une ligne de la fonction smtp_serveur que j'ai mis dans le fichier config.
Maintenant tout marche bien.
Merci pour vos réponse.