Aide pour correction de mon cde php

Signaler
Messages postés
5
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
2 août 2009
-
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
-
je veux creer un site web sur lequel j'aimerais que le internautes puissent uploader des fichier comme les fichier word ,pdf , image...j' ai fait le code mais je n'arrive pas à inserer ces fihiers dans la base de données.
je demande votre aide afin de realiser mon premier site.
je vous donne mon formulaire , mon code php et ma base de données




code php


<?php
 session_start();
     $ho = "localhost";
     $us = "root";
     $pass = "";
     $base = "synafepci";
    $cn = mysql_connect($ho, $us, $pass);
    mysql_select_db($base) or die("Impossible de se connecter a la base de donnees $base");
   
   ?>
  <?php
  $presentation=isset($_POST['presentation'])? $_POST['presentation'] :'';
   $file=isset($_FILES['file'])? $_POST['file'] :'';
if(isset($_FILES['file']))
{
  $content_dir = 'photo/';
   $MAX_FILE_SIZE = 500000;
   $tmp_file = $_FILES['file']['tmp_name'];
  
  
 if($tmp_file != ''){


   $fsize = $_FILES['file']['size'];
  if($fsize > $MAX_FILE_SIZE){ $taille = '1';}
   $type_file = (isset($_FILES['file']['type'])?$_FILES['file']['type']:'');
  
   $allowed_types = array("image/bmp", "image/gif", "image/png", "image/jpeg", "image/jpg", "image/pjpeg");
   if(!in_array($type_file, $allowed_types)){$format='1';}


   function RenameFile($fichier_name){
 global $renamed;


   $chaine_type = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
   srand((double)microtime()*1000000);
 $code = '';
   for($i=0; $i<10; $i++)
   {
   // on génère un code de 8 caractères aléatoirement
   $code.= $chaine_type[rand()%strlen($chaine_type)];
   }
 $newFileName = $code.$fichier_name;
 $renamed = true;
 return $newFileName;
}
    $name_file = RenameFile('');
 $ext='';
 if(strstr($type_file, 'bmp')){ $ext='bmp';}
 if(strstr($type_file, 'pjpeg')){ $ext='jpg';}
 if(strstr($type_file, 'jpg')){ $ext='jpg';}
 if(strstr($type_file, 'jpeg')){ $ext='jpg';}
 if(strstr($type_file, 'gif')){ $ext='gif';}
 if(strstr($type_file, 'png')){ $ext='png';}
$name_file_def=$name_file . '.' . $ext;
$name_file_def2= 'g' . $name_file . '.' . $ext;
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file_def)){ $copie='1';}
 
 //echo "Nom: $nom, Prénom: $prenom,Sexe: $sexe,Emploi actuel: $emploi,Adresse: $adresse,Téléphone: $tel,Ville: $vil,Ecole: $ecole,Email: $mail,Login: $log,Mot de passe: $mot";


  if (!empty($presentation) AND !empty($file) )
  {


 // echo "essai";
 // exit;


   
 
 mysql_query("INSERT INTO enseignement_tech(id_enseign,id_admin,presentation,photo )
 VALUES('','','$presentation','$file' )" );
}
  ?>


     formulaire html
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>


<form method="POST" action="enseignement technique1.php" enctype="multipart/form-data">

<fieldset>


                                    ----

                                                   
FORMULAIRE ENSEIGNEMENT TECHNIQUE

                                       

                         
                       ,
                   
                                               
Présentation
                       ,
                                                   

                                <textarea name="presentation" rows="3" cols="45"></textarea>
                       ,
                    ----

                                                   
Photo
                       ,
                                                   

                               
                               
                               
                       ,
                   
                   
                   
                    ----

                                                   

                             
                       ,
                   
               

               

                           

                       

</form>



</html>





base de données


-- phpMyAdmin SQL Dump
-- version 2.10.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 12 Mars 2009 à 13:35
-- Version du serveur: 5.0.45
-- Version de PHP: 5.2.5


SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


--
-- Base de données: `synafepci`
--


-- --------------------------------------------------------


--
-- Structure de la table `enseignement_tech`
--


CREATE TABLE `enseignement_tech` (
  `id_enseign` int(11) NOT NULL auto_increment,
  `id_admin` int(11) NOT NULL,
  `presentation` varchar(250) NOT NULL,
  `photo` varchar(10) NOT NULL,
  PRIMARY KEY  (`id_enseign`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


--
-- Contenu de la table `enseignement_tech`
--


 




 

2 réponses

Messages postés
1
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
3 juin 2009

Salut,
2 questions :
1/ pourquoi une base de type InnoDB ?
2/ Uilises-tu Eclipse PDT ou un autre Editeur PHP ?

Mes remarques :
1/ Ta fonction RenameFile() , il vaut mieux la définir en debut se script ou dans un fichier externe...
2/ Vérifie la syntaxe de ton script au niveau du nombre de  { et de } (accolades ouvrantes et fermantes), il manque des accolades fermantes...
3/ Certaines variables sont non initialisées : $sexe, $emploi, $tel, $adresse...

Peux-tu être plus précis sur les problèmes rencontrés ?

Zorro_4472
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011

salut :
1- tu as oublié deux accolades  fermantes .tu doit les  ajouter  a la fin de code php.
2-le champ de type file  ne ce recupere pas par $_post c pour ca  $file est vide   donc le dernier  condition if(.....)  n'est pas verifié c pour ca l'insertion dans la base de donnee ne se deroule pas bien.
3-le champ de type file est récuperer par   $_FILES et non $_post
$_FILES['cheminImage']['name'], c'est le nom de de l'image avant l'upload (chez le client en gros).
c-a-d tu doit mettre :$file= $_FILES['file']['name']  au lieu de $file=isset($_FILES['file'])? $_POST['file'] :'';
mais tu as fait un appel à RenameFile( ) donc tu as associer un nouveau nom pour l'image qur tu as telecharger sur le serveur.
c pour ca met :$file =$name_file_def;  juste avant le dernier if .
---
$file=$name_file_def;
 if (!empty($presentation) AND !empty($file) )
  { ......}
---
et comme ca ,ca marche bien
(dsl pour le francais)