envoi nom fichier dans bdd

Eléphant du PHP | 94 Messages

14 juin 2010, 18:41

non j'ai dis une bêtise ça sert à la limite. j'avais modifier name=photo alors qu'il faut laisser"MAX_FILE_SIZE" pour limiter la taille

ViPHP
ViPHP | 5462 Messages

14 juin 2010, 18:41

c'est MAX_FILE_SIZE dans le name

Eléphant du PHP | 94 Messages

14 juin 2010, 18:49

oui mais seulement pour la limite j'ai regardé sur le site du zéro ils disent de le nommer ainsi.
<!-- Limiter la taille des fichiers à 100Ko -->
<input type="hidden" name=""MAX_FILE_SIZE"" value="100000" /> 
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="Fichier">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
ensuite il porte bien le nom photo nom de ma table

Eléphant du PHP | 94 Messages

14 juin 2010, 18:50

pas de la table du champs

ViPHP
ViPHP | 5462 Messages

14 juin 2010, 18:52

montre tes 2 fichiers

Eléphant du PHP | 94 Messages

14 juin 2010, 18:56

le 1er :
<?php

if(isset($_POST['photo']))
{
  // params
  unset($erreur);
  $extensions_ok = array('png', 'gif', 'jpg', 'jpeg','doc');
  $taille_max = 100000;
  $dest_dossier = 'c:/texte';
  // vérifications
  if( !in_array( substr(strrchr($_POST['photo']['name'], '.'), 1), $extensions_ok ) )
  {
    $erreur = 'Veuillez sélectionner un fichier de type png, gif, jpg ou doc !';  
  }
  elseif( file_exists($_POST['photo']['tmp_name']) 
          and filesize($_POST['photo']['tmp_name']) > $taille_max)
  {
    $erreur = 'Votre fichier doit faire moins de 100Ko !';
  }
  // copie du fichier
  if(!isset($erreur))
  {
    $dest_fichier = basename($_POST['photo']['name']);
    // formatage nom fichier
    // enlever les accents
    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    // remplacer les caracteres autres que lettres, chiffres et point par _
    $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
    // copie du fichier
    move_uploaded_file($_POST['photo']['tmp_name'], $dest_dossier . $dest_fichier);
  }
}

?>
<p>
<!-- Erreur ? -->
<?php 
if(isset($erreur)){
  echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le  enctype="multipart/form-data" -->
<form method="POST" action="verification.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 100Ko -->
<input type="hidden" name=""MAX_FILE_SIZE"" value="100000" /> 
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="Fichier">Photo :</label><input type="file" name="photo" value="filename" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html>
le second:
<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();
print_r($_POST);
require_once('config.php');
$titre_page='Inscription';
include_once('haut.php');
$email=formulaires($_POST['email']);
$pseudo=formulaires($_POST['pseudo']);
$mdp=formulaires($_POST['mdp']);
$mdp2=formulaires($_POST['mdp2']);
$nom=formulaires($_POST['nom']);
$prenom=formulaires($_POST['prenom']);
$adresse=formulaires($_POST['adresse']);
$comp = (isSet($_POST['comp'])) ? formulaires($_POST['comp']) : 'une valeur par défaut';
$code=formulaires($_POST['code']);
$ville=formulaires($_POST['ville']);
$nom2=formulaires($_POST['nom2']);
$prenom2=formulaires($_POST['prenom2']);
$adresse2=formulaires($_POST['adresse2']);
$comp2= (isSet($_POST['comp2'])) ? formulaires($_POST['comp2']) : 'une valeur par défaut';
$code2=formulaires($_POST['code2']);
$ville2=formulaires($_POST['ville2']);
$photo=formulaires($_POST['photo']);


//// VERIFICATIONS BANALES ////
if(!$mdp || !$mdp2 || strlen($mdp) < 5)
	{
	echo'Votre mot de passe ou sa confirmation est inexisant ou votre mot de passe fait moins de 5 carractères<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
if($mdp!=$mdp2)
	{
	echo'Votre mot de passe n\'est pas le meme que sa confirmation<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
if(!$pseudo || strlen($pseudo) > 15)
	{
	echo'Votre pseudo est inexisant ou fait plus de 15 carractères<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
if(!$email)
   	{
	echo'Votre e-mail est innexistant.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
   	}
$nom = $_POST['nom']; 
if(empty($nom))
{
print("<center>Le '<b>nom</b>' est vide !</center>");
exit();
} 
	
//// VERIFICATIONS DES EXISTANCES ////
$reponse_mail=mysql_query("SELECT email FROM membres WHERE email='$email'") or die ('Erreur : '.mysql_error());	//verification si e-mail existe déjà
$count_mail=mysql_num_rows($reponse_mail);
if($count_mail == 1)
	{
	echo'Cet e-mail existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
$reponse_pseudo=mysql_query("SELECT pseudo FROM membres WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error());	//verification si pseudo existe déjà
$count_pseudo=mysql_num_rows($reponse_pseudo);
if($count_pseudo == 1)
	{
	echo 'Ce pseudo existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
	include_once('bas.php');
return FALSE;
	}
		
	for ($ligne=0;$ligne<30;$ligne++)		//Création d'un identifiant aléatoire
		{
		@$session.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1);
		}

		$mdp=md5($mdp);		//Codage du mot de passe
		mysql_query("INSERT INTO membres VALUES ('','$session','$pseudo','$mdp','$email','$nom','$prenom','$adresse','$comp','$code','$ville','$nom2','$prenom2','$adresse2','$comp2','$code2','$ville2','$photo')") or die ('Erreur : '.mysql_error());	//insertion dans la bdd
echo'Merci de vous vous etre inscrit à '.$nom_du_site.'<br /><a href="profil.php">Identifiez vous !</a>';
include_once('bas.php');
?>

ViPHP
ViPHP | 5462 Messages

14 juin 2010, 18:58

toute la partie php de ton formulaire est inutile c'est a mettre dans vérification.php, en plus c'est pas $_POST['photo'] puisque c'est une type file ta variable sera dans $_FILES['photo']

Eléphant du PHP | 94 Messages

14 juin 2010, 19:07

c ce que j'avais au début

ViPHP
ViPHP | 5462 Messages

14 juin 2010, 19:37

c ce que j'avais au début
non puisque ta parti upload est dans le même fichier que ton formulaire, faut quelle soit dans ton verification.php

Eléphant du PHP | 94 Messages

14 juin 2010, 21:25

je souhaite pas trop le changer car il fonctionne, j'ai peur que cela ne fonctionne plus si je change une partie du script. ce que je souhaite c juste que le nom aille dans la bdd.

ViPHP
ViPHP | 5462 Messages

14 juin 2010, 23:04

je souhaite pas trop le changer car il fonctionne, j'ai peur que cela ne fonctionne plus si je change une partie du script. ce que je souhaite c juste que le nom aille dans la bdd.
tu vas pas avoir trop le choix :(

Eléphant du PHP | 94 Messages

17 juin 2010, 18:39

finalement tu as raison il faut le faire en 2 parties.
ci dessous 1er code :
<p>
<!-- Erreur ? -->
<?php 
if(isset($erreur)){
  echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le  enctype="multipart/form-data" -->
<form method="POST" action="joindre2.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="Fichier">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html>
ensuite second code :
<?php
session_start();
$photo=formulaires($_FILES['photo']);
if(isset($_FILES['photo']))
{
  // params
  unset($erreur);
  $extensions_ok = array('png', 'gif', 'jpg', 'jpeg','doc');
  $taille_max = 100000;
  $dest_dossier = 'c:/texte';
  // vérifications
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
  {
    $erreur = 'Veuillez sélectionner un fichier de type png, gif, jpg ou doc !';  
  }
  elseif( file_exists($_FILES['photo']['tmp_name']) 
          and filesize($_FILES['photo']['tmp_name']) > $taille_max)
  {
    $erreur = 'Votre fichier doit faire moins de 100Ko !';
  }
  // copie du fichier
  if(!isset($erreur))
  {
    $dest_fichier = basename($_FILES['photo']['name']);
    // formatage nom fichier
    // enlever les accents
    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    // remplacer les caracteres autres que lettres, chiffres et point par _
    $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
    // copie du fichier
    move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
  }
}

  {
mysql_query("INSERT INTO membres VALUES ('','$photo')") or die ('Erreur : '.mysql_error());
}
?>
et l'erreur : Array ( [pseudo] => fffff [email] => fffff [nom] => f [prenom] => f [adresse] => f [comp] =>

Code : Tout sélectionner

=> [ville] => [nom2] => [prenom2] => [adresse2] => [comp2] => [code2] => [ville2] => [mdp] => fffff [mdp2] => fffff [MAX_FILE_SIZE] => 100000 [envoi] => Envoyer les fichiers ) Warning: addslashes() expects parameter 1 to be string, array given in C:\Program Files\EasyPHP-5.3.1\www\site\fonctions.php on line 7 Merci de vous vous etre inscrit à Mon site.com Identifiez vous !

ViPHP
ViPHP | 5462 Messages

17 juin 2010, 18:59

je pense que ta pas donnée le bon fichier, y'a pas de addslashes
ensuite : $photo=formulaires($_FILES['photo']); c'est quoi ? elel est ou ta fonction formulaires ? en plus $_FILES['photo'] n'existe pas, de plus ta requête ne marchera pas tu met pasl a bonne variable dedans, dans ton autre fichier y'a

<?php
if(isset($erreur)){
  echo '<p>', $erreur ,'</p>';
}
?>
mais $erreur ca viens d'ou ?
c'est un peu le bazar...

Eléphant du PHP | 94 Messages

17 juin 2010, 19:07

je pense que ta pas donnée le bon fichier, y'a pas de addslashes.


oui je vois que c un peu le bordel mais bon on fait avec les mOyens du bord. c quOI ça un addslaches??



EN FAIT POUR $photo=formulaires($_FILES['photo']); j'utilise les même code que pour envoyer un élément dans bdd.