[RESOLU] Coup de main pour ma fonction upload

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 : [RESOLU] Coup de main pour ma fonction upload

Re: Coup de main pour ma fonction upload

par neokrios » 16 mai 2013, 16:07

oui c'est bon j'ai trouvé j'avais pas vu l'avant dernier commentaire merci beaucoup pour votre aide

Re: Coup de main pour ma fonction upload

par ghost5922 » 16 mai 2013, 16:02

Bonjour,

l'erreur cite le dit que tes variables ne sont pas defini :)

repost ton dernier code

Re: Coup de main pour ma fonction upload

par neokrios » 16 mai 2013, 15:55

ça fonctionne par contre j'ai toujours mon erreur a la requête sql


Notice: Undefined variable: cv in C:\xampp-portable\htdocs\cnam V4\tr_form2.php on line 153

Notice: Undefined variable: carte in C:\xampp-portable\htdocs\cnam V4\tr_form2.php on line 153

Notice: Undefined variable: rib in C:\xampp-portable\htdocs\cnam V4\tr_form2.php on line 153

Notice: Undefined variable: lettre in C:\xampp-portable\htdocs\cnam V4\tr_form2.php on line 153

Je la défini ma variable portant si elle n'était pas défini ça ne fonctionnerais pas pourtant là oui

Re: Coup de main pour ma fonction upload

par Spols » 16 mai 2013, 11:41

Et si tu veux que le répertoire soit créer que tu ai un fichier à mettre dedans ou non, remet la création de ton répertoire au dessus de l'exclusion du champs vide

Quand tu dis :
il aime pas ma ligne 149
Quelle message apparait ?

Re: Coup de main pour ma fonction upload

par ghost5922 » 16 mai 2013, 11:34

Bonjour,

vous ne declarer pas vos variables

if (isset($_FILES['cv']['name']) and !empty($_FILES['cv']['name']))
{
$fcv = basename($_FILES['cv']['name']);
$cv = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$fcv;
}

else{
$fcv='';
$cv='';
}

je pense que cela vient de la car la variable n’existe pas

Re: Coup de main pour ma fonction upload

par neokrios » 16 mai 2013, 11:23

c'est la requête sql et je suis sûre qu'elle est bonne elle fonctionnait très bien avant

Re: Coup de main pour ma fonction upload

par Spols » 16 mai 2013, 11:20

c'est laquelle la 149 ?

Re: Coup de main pour ma fonction upload

par neokrios » 16 mai 2013, 09:22

Je fais bien l'insertion dans la bdd et il laisser bien bien les champs vide ou je n'ai pas mis d'image par contre le répertoire n'est plus créer et il aime pas ma ligne 149 alors que je l'ai pas touché
<?php 
	function upload($fichier, $prenomauditeur, $nomauditeur)
{

	

	$nom = "auditeur/".$nomauditeur."_".$prenomauditeur."/";
	
	if (empty($FILES[$fichier])) 
		{
		return true;
		}
	
	
	
	// vérifie si le répertoire existe pas :
		if (!is_dir($nom)) 
		{
			mkdir($nom);
		}
		
	

	$fcv = basename($_FILES[$fichier]['name']);
	$taille_maxi = 100000;
	$taille = filesize($_FILES[$fichier]['tmp_name']);
	$extensions = array('.png', '.gif', '.jpg', '.jpeg');
	$extension = strrchr($_FILES[$fichier]['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, txt ou doc...';
		}
		
		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...
			$fcv = strtr($fcv, 
			  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
			  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
			$cv = preg_replace('/([^.a-z0-9]+)/i', '-', $fcv);
			if(move_uploaded_file($_FILES[$fichier]['tmp_name'], $nom . $fcv)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
				{
					return true;
				}
			else
				{
					return false;
				}

		}
}



//récupération des valeurs des champs:
//nom:
	$nomauditeur     = $_POST["nomauditeur"] ;
//prenom:
	$prenomauditeur = $_POST["prenomauditeur"] ;
//code:
	$codeauditeur = $_POST["codeauditeur"] ;

if (upload('cv', $prenomauditeur, $nomauditeur) && upload('carte', $prenomauditeur, $nomauditeur) && upload('cartevitale', $prenomauditeur, $nomauditeur) && upload('rib', $prenomauditeur, $nomauditeur) && upload('bac', $prenomauditeur, $nomauditeur) && upload('lettre', $prenomauditeur, $nomauditeur) && upload('contrat', $prenomauditeur, $nomauditeur)) 
	{
		//connection au serveur
			$cnx = mysql_connect( "localhost", "root", "" ) ;
 
		//sélection de la base de données:
			$db  = mysql_select_db( "dematerialisation" ) ;
 
		//récupération des valeurs des champs:
		
		
		// Fichier auditeur
		
	if (isset($_FILES['cv']['name']) and !empty($_FILES['cv']['name']))
		{
		$fcv = basename($_FILES['cv']['name']);
		$cv = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$fcv; 
		}	
		
	if (isset($_FILES['carte']['name']) and !empty($_FILES['carte']['name']))
		{
		$fcarte = basename($_FILES['carte']['name']);
		$carte = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$fcarte; 
		}
		
		if (isset($_FILES['cartevitale']['name']) and !empty($_FILES['cartevitale']['name']))
			{
			$fcartevit = basename($_FILES['cartevitale']['name']);
			$cartevitale = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$fcartevit;
			}
		
		if (isset($_FILES['rib']['name']) and !empty($_FILES['rib']['name']))
			{
			$frib = basename($_FILES['rib']['name']);
			$rib = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$frib;
			}
		
		if (isset($_FILES['bac']['name']) and !empty($_FILES['bac']['name']))
			{
			$fresultat = basename($_FILES['bac']['name']);
			$bac = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$fresultat;
			}
		
		if (isset($_FILES['lettre']['name']) and !empty($_FILES['lettre']['name']))
			{
			$flettre = basename($_FILES['lettre']['name']);
			$lettre = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$flettre;
			}
		
		if (isset($_FILES['contrat']['name']) and !empty($_FILES['contrat']['name']))
			{
			$fcontrat = basename($_FILES['contrat']['name']);
			$contrat = "auditeur/".$nomauditeur."_".$prenomauditeur."/".$fcontrat;
			}
			
			$chemin = "auditeur/".$nomauditeur."_".$prenomauditeur."/";
		// on encapsule le répertoire et le nom du fichier pour avoir le chemin complet
			

 
		//création de la requête SQL:
			$sql = "INSERT  INTO auditeur (nomauditeur, prenomauditeur, codeauditeur, cv, carteidentite, cartevital, rib, resultatbac, lettremotivation, contratpro, chemin)  
					VALUES ( '$nomauditeur', '$prenomauditeur', '$codeauditeur', '$cv', '$carte', '$cartevitale', '$rib', '$bac', '$lettre', '$contrat', '$chemin') " ; // On oublie pas de l'inserer
 
		//exécution de la requête SQL:
			$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
		//affichage des résultats, pour savoir si l'insertion a marchée:
			if($requete)
				{
					echo("Insertion éffectué") ;
				}	
			else
				{
					echo("L'insertion à échouée</br>") ;
				}
		//fin insertion auditeur et début création d'un répertoire 
		
	}
		
?>

Re: Coup de main pour ma fonction upload

par neokrios » 15 mai 2013, 16:28

Je m'approche du but j'ai quelques erreur mais il fait bien l'insertion dans la base de donnée en laissant vide les champs non rempli par contre la création de répertoire ne fonctionne plus je vais continuer mes expériences :D

Re: Coup de main pour ma fonction upload

par ghost5922 » 15 mai 2013, 14:24

pas de probleme essaie si cela marche pas ou que tu as du mal poste l'erreur et le code on pourra continue de d'aider :)

Re: Coup de main pour ma fonction upload

par neokrios » 15 mai 2013, 14:23

oui je comprend le problème maintenant faut que j'arrive a le faire merci de votre aide

Re: Coup de main pour ma fonction upload

par Spols » 15 mai 2013, 13:26

c'est normal quand tu vois ton code dans le if,

pour chaque champ d'upload tu recupère le nom de fichier et tu concatène le repertoire avec le nom de fichier.
pour un champ vide le nom du fichier est vide et donc il ne reste que le répertoire.

si tu teste de nouveau si ton champs est vide avant la préparation de l'entrée en base, tu pourras avoir une entrée vide si il n'y a pas de fichier

Mais je plussoie l'idée de diviser chaque traitement, ce serait plus lisible

Pour chaque champs, tu vérifie si il est rempli, puis si il est correcte et enfin tu prépare ta requète.
après tous les traitements, si aucune erreur n'est présente tu envoie ta requète.

Re: Coup de main pour ma fonction upload

par ghost5922 » 15 mai 2013, 12:12

Re,

j'ai regarder vite fais le code mais je vois pas ou tu verifie si le champ et vide ou non ?

exemple
if (isset($_FILES['cv']['name']) and !empty($_FILES['cv']['name'])){

}

Re: Coup de main pour ma fonction upload

par neokrios » 15 mai 2013, 11:41

Merci pour ta réponse

De mon côté j'ai essayer de remplacer les && par des xor d'une certaine manière ça a marché dans la bdd il n'y a pas l'insertion des chemins des images mais a la place le chemin du répertoire de l'élève.
Puis j'ai essayer ta solution et ça donne exactement le même résultat qu'avec ma solution des xor

Re: Coup de main pour ma fonction upload

par ghost5922 » 15 mai 2013, 11:35

Bonjour,

pourquoi pas séparer les champs pour les check 1 par 1 ?