Page 1 sur 1

Echec d'enregistrement dans la bdd

Posté : 27 mai 2013, 13:21
par Driamar
Bonjour tout le monde !

Voila mon souci : j'ai fait une page pour uploader un fichier et récupérer son chemin pour le mettre dans une base de donnée.

L'upload se fait correctement dans le dossier voulu. Sauf que je n'ai rien du tout qui s'enregistre dans ma base de donnée.

Ma base de donner : tp
Ma table : tp_telechargement
Mes colonnes : id, chemin

Voici en dessous le code de ma page :
<?php
if (phpversion() > "5.4.3") {
    $HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",30000000);
define("DESTINATION_FOLDER", "upload");
define("no_error", "ok.php");
define("yes_error", "erreur.php");
$_accepted_extensions_ = "pdf";
if(strlen($_accepted_extensions_) > 0){
    $_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
    $_accepted_extensions_ = array();
}
/*  modify */
if(!empty($HTTP_POST_FILES['chemin'])){
    if(is_uploaded_file($HTTP_POST_FILES['chemin']['tmp_name']) && $HTTP_POST_FILES['chemin']['error'] == 0){
        $_file_ = $HTTP_POST_FILES['chemin'];
        $errStr = "";
        $_name_ = $_file_['name'];
        $_type_ = $_file_['type'];
        $_tmp_name_ = $_file_['tmp_name'];
        $_size_ = $_file_['size'];
        if($_size_ > MAX_SIZE && MAX_SIZE > 0){
            $errStr = "Fichier trop gros";
        }
        $_ext_ = explode(".", $_name_);
        $_ext_ = strtolower($_ext_[count($_ext_)-1]);
        if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
            $errStr = "Extension non valide";
        }
        if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
            $errStr = "Dossier de destination non valide";
        }
        if(empty($errStr)){
            if(@move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
                header("Location: " . no_error);
  
                // Connexion BDD
  
                mysql_select_db($database_maxonnex,$maxonnex);
                $însertTel="INSERT INTO tp_tel (chemin) VALUES ('$_name')";
                mysql_query($insertTel, $maxonnex) or die (mysql_error());         
            } else {
                header("Location: " . yes_error);
            }
        } else {
            header("Location: " . yes_error);
        }
    }
}
?>
<?php require_once('Connections/maxonnex.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
  
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
  
mysql_select_db($database_maxonnex, $maxonnex);
$query_telechargement = "SELECT chemin FROM tp_tel ORDER BY `date` ASC";
$telechargement = mysql_query($query_telechargement, $maxonnex) or die(mysql_error());
$row_telechargement = mysql_fetch_assoc($telechargement);
$totalRows_telechargement = mysql_num_rows($telechargement);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
  
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <p>
    <label for="chemin">téléchargement du pdf</label>
    <input type="file" name="chemin" id="chemin" />
  </p>
  <p>
    <input type="submit" name="Envoyer" id="Envoyer" value="Envoyer" />
  </p>
</form>
</body>
</html>
<?php
mysql_free_result($telechargement);
?>
J'ai beau tout retourner dans tous les sens je ne trouve pas mon erreur :/

Merci d'avance pour votre aide !

Re: Echec d'enregistrement dans la bdd

Posté : 27 mai 2013, 14:32
par Spols
tu dis avoir une table tp_telechargement,

pourquoi que 'tp_tel' ici ?
$însertTel="INSERT INTO tp_tel (chemin) VALUES ('$_name')";

PS utilise les balises
 plutot que [code]

Re: Echec d'enregistrement dans la bdd

Posté : 27 mai 2013, 14:33
par Driamar
Autant pour moi ... C'est tp_tel le nom de la table

Re: Echec d'enregistrement dans la bdd

Posté : 27 mai 2013, 21:55
par moogli
$_name n'existe pas


il serait préférable d'utiliser un code plus à jour, par exemple en employant mysqli plutôt que mysql.

idem pour l'utilisation de l'opérateur & qui est déprécié depuis php 5.2 (de mémoire).

@+

Re: Echec d'enregistrement dans la bdd

Posté : 28 mai 2013, 12:51
par Driamar
J'ai utilisé l'extension PHP Upload de Dreamweaver pour effectuer l'uplaod.

Je vais voir pour le faire moi-même alors ^^

Merci ;)

Re: Echec d'enregistrement dans la bdd

Posté : 28 mai 2013, 14:25
par moogli
c'est plus formateur de le faire soit même, ensuite les générateur de code sont rarement une bonne solution à long terme si tu veux mettre les mains dans le cambouis.



@+

Re: Echec d'enregistrement dans la bdd

Posté : 28 mai 2013, 22:36
par Driamar
Ben j'ai tout fait moi-même le reste ^^

Mais comme on me demande ça au dernier moment et qui faut que ce soit fait pour samedi ^^ j'ai essayé d'aller au plus vite !


Je pense que je vais réfère quelques heures de sommeil à y réfléchir ;-))

Merci en tout cas