Probleme de syntaxe

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 de syntaxe

Re: Probleme de syntaxe

par Mazarini » 24 juin 2011, 16:20

Bonjour,

Ce n'est pas un problème de déclaration, mais de syntaxe.
if (condition) {instruction} elseif (condition) {instruction} else  {instruction}
Autrement, par sécurité, il vaut mieux indiquer les extensions autorisées plutôt que les interdites. Le risque est d'oublier une extension interdite.

Re: Probleme de syntaxe

par j-binou » 24 juin 2011, 16:12

Super merci beaucoup :D je me prenais la tête depuis plus d'une demi heure, il fallait juste faire les déclarations de variable avant toutes les conditions.

Re: Probleme de syntaxe

par Mazarini » 24 juin 2011, 15:51

Bonjour,

La partie :
      $extensions_invalides = array( 'php', 'inc', 'htm', 'html', 'phtml', 'shtml', 'wml', 'pwml', 'js', 'jsp', 'asp', 'pl', 'py', 'pyc', 'cgi', 'htaccess', 'htpasswd' ) ;
        $extension_upload = strtolower(substr(strrchr($name_file, '.') ,1)) ;
doit être mis avant le if correspondant au elsif suivant.

Le mieux est quand même d'indiquer la ligne en erreur dans le code, sinon pas sur que quelqu'un ait le courage de lire tout le code.

Probleme de syntaxe

par j-binou » 24 juin 2011, 15:29

Bonjour à tous,
J'ai créé un page pour uploader des fichier par formulaire mais elle ne fonctionne pas et j'ai le message d'erreur suivant : Parse error: syntax error, unexpected T_ELSEIF
J'ai cherché pendant un certain temps en supprimant des parties et en vérifiant la syntaxe.
Voici le code de la page :
<form method="post" action="upload.php" enctype="multipart/form-data">
     <label for="fichier">Fichier (Tous formats | max. 10Mo):</label><br />
     <input type="file" name="fichier" id="fichier" /><br />
     <label for="titre">Titre du fichier (max 50 caractères):</label><br />
     <input type="text" name="titre" value="Titre du fichier" id="titre" /><br />
     <label for="description">Description de votre fichier (max 255 caractères):</label><br />
     <textarea name="description" id="description"></textarea><br />
     <input type="submit" name="submit" value="Envoyer" />
</form>



<?php
if ( isset($_FILES['fichier'])){

	$name_file = $_FILES['fichier']['name'];

	if ($_FILES['fichier']['error'] > 0){
		echo "Erreur lors du transfert" ;
	}
	elseif ($_FILES['fichier']['size'] > 10485760){
		echo "Le fichier est trop gros" ;
	}
	
	elseif ( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) ){
		echo "Nom de fichier non valide" ;
	}
	
	$extensions_invalides = array( 'php', 'inc', 'htm', 'html', 'phtml', 'shtml', 'wml', 'pwml', 'js', 'jsp', 'asp', 'pl', 'py', 'pyc', 'cgi', 'htaccess', 'htpasswd' ) ;
	$extension_upload = strtolower(substr(strrchr($name_file, '.') ,1)) ;
	elseif ( in_array($extension_upload, $extensions_invalides) ){
		echo "Extension incorrecte" ;
	}
	
	$resultat = move_uploaded_file($_FILES['fichier']['tmp_name'],"upload/ " . $name_file . " ");
	elseif ($resultat){
		echo "Transfert réussi" ;
	}
	
	else{
		echo "Impossible d'uploader le fichier" ;
	}
}
?>
Merci d'avance.