[Clad]
Manipulateur de bits
Bonjour à tous, alors là j'ai vraiment un gros problème très compliqué
(enfin à mes yeux
)
Enfaite je développais tranquillement mon application qand on est venu me présenter le modèle MVC, je me tien c'est cool. Bref je vous passe les détails j'essai de l'utiliser, un peu dur au début mais ca va. On m'a passé un canevas de dispatcher, vue, classes etc..
Bref, là enfaite après avoir effectué tout un tas de traitement je doit enregistrer des données dans une table MySQL.
Voici la classe:
Le problème est au niveau de l'étape 4:
Alors tout d'abord j'écrit les nouvelles infos dans ma table. L'id de la table est auto incrémenté.
Un fois avoir écris dans la table, je fait une requête pour obtenir l'ID créé
j'upload l'image cette ID comme nom (comme ca les images ne pourrons jamais s'écraser les unes sur les autres
)
Alors c'est cool, ca marche bien, l'image s'upload comme il faut dans le dossier, avec comme nom un numéro qui s'incrémente à chaque fois.
CEPENDANT: lorsque je vais consulter ma table (par php my admin, ou via une requête en php) l'enregistrement que j'ai fait n'est plus là :s :s :s :s :s
O_O
En gros j'ai réfléchie, l'enregistrement s'effectue correctement (vu que l'image prend le numéro du dernier ID créé), sauf qu'à la fin du traitement il s'efface :s
Et je ne sais pas du tout pourquoi, je ne comprend pas je me tire les cheveux :/
je suis vraiment bloqué à fond
J'écrit bien dans la bonne base de données car mes requêtes fonctionnent.
merci de votre aide
Si vous souhaitez voir des fichier des includes n'hésitez pas, je ne sais pas ce qui est utile
Enfaite je développais tranquillement mon application qand on est venu me présenter le modèle MVC, je me tien c'est cool. Bref je vous passe les détails j'essai de l'utiliser, un peu dur au début mais ca va. On m'a passé un canevas de dispatcher, vue, classes etc..
Bref, là enfaite après avoir effectué tout un tas de traitement je doit enregistrer des données dans une table MySQL.
Voici la classe:
PHP:
<?php
/*
*
* Classe de création des standards
*
*/
require_once 'cla_alldb.php';
require_once 'cla_sec_session.php';
class Admin_standard extends AllDB {
// Définition des attributs de la classe
var $action;
var $message;
var $nomStandard;
var $nbItem;
var $niveau;
var $generique;
var $responsable;
var $image;
var $mode;
var $famille;
/*-----------------------------------------------------------------------------------------------------
* Utilisateur()
constructeur de la classe
------------------------------------------------------------------------------------------------------*/
function Admin_standard($reqParam)
{
$this->action = $reqParam['action'];
$this->nomStandard = (isset($reqParam['nomStandard'])) ? $reqParam['nomStandard'] : '';
$this->nbItem = (isset($reqParam['nbItem'])) ? $reqParam['nbItem'] : '';
$this->niveau = (isset($reqParam['niveau'])) ? $reqParam['niveau'] : '';
$this->generique = (isset($reqParam['generique'])) ? $reqParam['generique'] : '';
$this->responsable = (isset($reqParam['responsable'])) ? $reqParam['responsable'] : '';
$this->mode = (isset($reqParam['mode'])) ? $reqParam['mode'] : '';
$this->famille = (isset($reqParam['famille'])) ? $reqParam['famille'] : '';
}
/*-----------------------------------------------------------------------------------------------------
* handle()
------------------------------------------------------------------------------------------------------*/
function handle ()
{
global $const;
switch ($this->action)
{
case 'choix':
//$auth_profil = array($const['ProfilAdmin']);
//Sec_session::checkDroitAcces($auth_profil,$_SESSION['profil']);
return $this->choix();
break;
case 'modif':
//$auth_profil = array($const['ProfilAdmin']);
//Sec_session::checkDroitAcces($auth_profil,$_SESSION['profil']);
return $this->etape1('MODIF');
break;
case 'creation':
//$auth_profil = array($const['ProfilAdmin']);
//Sec_session::checkDroitAcces($auth_profil,$_SESSION['profil']);
return $this->etape1('CREATION');
break;
case 'creation2':
//$auth_profil = array($const['ProfilAdmin']);
//Sec_session::checkDroitAcces($auth_profil,$_SESSION['profil']);
return $this->etape2('CREATION');
break;
case 'creation3':
//$auth_profil = array($const['ProfilAdmin']);
//Sec_session::checkDroitAcces($auth_profil,$_SESSION['profil']);
return $this->etape3('CREATION');
break;
case 'creation4':
//$auth_profil = array($const['ProfilAdmin']);
//Sec_session::checkDroitAcces($auth_profil,$_SESSION['profil']);
return $this->etape4('CREATION');
break;
default:
session_unset();
session_destroy();
$res['vue'] = "vue_echec_action.php";
return $res;
}
}
/*-----------------------------------------------------------------------------------------------------
* liste()
------------------------------------------------------------------------------------------------------*/
PATATI PATATA JE COUPE LE CODE INUTILE ICI
/*-----------------------------------------------------------------------------------------------------
* Etape 4, enregistrement de tout
------------------------------------------------------------------------------------------------------*/
function etape4($pMode)
{
// Vue par défaut
$res['vue'] = 'vue_erreur.php';
// Connexion à la base de données
if (is_a($link = $this->dbConnect(),'errordb'))
{
$res['data'] = $link;
return $res;
}
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'bmp', 'gif', 'png', 'JPEG', 'JPG', 'BMP', 'GIF', 'PNG',);
if (in_array($extension_upload, $extensions_autorisees))
{
// On enregistre les infos générales du standard
echo 'fait ca <br/>';
mysql_query("INSERT INTO descriptionStandard VALUES('', '$this->nomStandard', '$this->niveau', '$this->mode', '$this->generique', '$this->famille', '$this->responsable')");
echo $this->nomStandard; echo '<br/>';
echo $this->niveau;echo '<br/>';
echo $this->mode;echo '<br/>';
echo $this->generique;echo '<br/>';
echo $this->famille;echo '<br/>';
echo $this->responsable;echo '<br/>';
// On requête pour obtenir l'ID ainsi créé
$maxId = mysql_query("SELECT MAX(idDescriptionStandard) as max
FROM descriptionStandard
");
$maxIdValeur = mysql_fetch_array($maxId);
echo '<br/> OMG C CA LE RESULTAT => '.$maxIdValeur[max].' <br/>';
$nouveauNomFichier= ''.$maxIdValeur[max].'.'.$extension_upload.'';
echo $nouveauNomFichier;
// On upload la photo
move_uploaded_file($_FILES['monfichier']['tmp_name'], './imgStandards/' . $nouveauNomFichier);
// On enregistre les items dans une boucle
// Dans cette boucle à chaque fois on requete pour obtenir l'id de l'item et on créé les valeurs ainsi refliés
// On peut valider le fichier et le stocker définitivement
/*mysql_query("INSERT INTO listeValeur VALUES('', '$idListeTitre', '$mot', '$nouveauNomFichier', '')");*/
}
else {echo 'Une erreur est parvenu. Veuillez vous référer à la notice pour connaître les extensions de fichiers joints autorisés';}
}
// Affectation de la vue d'affichage
$res['data']['infos']= $this;
$res['data']['messageInfo'] = $this->message;
$res['data']['action']= $pMode;
$res['vue'] = 'vue_admin_standard_etape4.php';
return $res;
}
}
?>
Alors tout d'abord j'écrit les nouvelles infos dans ma table. L'id de la table est auto incrémenté.
Un fois avoir écris dans la table, je fait une requête pour obtenir l'ID créé
j'upload l'image cette ID comme nom (comme ca les images ne pourrons jamais s'écraser les unes sur les autres
Alors c'est cool, ca marche bien, l'image s'upload comme il faut dans le dossier, avec comme nom un numéro qui s'incrémente à chaque fois.
CEPENDANT: lorsque je vais consulter ma table (par php my admin, ou via une requête en php) l'enregistrement que j'ai fait n'est plus là :s :s :s :s :s
En gros j'ai réfléchie, l'enregistrement s'effectue correctement (vu que l'image prend le numéro du dernier ID créé), sauf qu'à la fin du traitement il s'efface :s
Et je ne sais pas du tout pourquoi, je ne comprend pas je me tire les cheveux :/
je suis vraiment bloqué à fond
J'écrit bien dans la bonne base de données car mes requêtes fonctionnent.
merci de votre aide
Si vous souhaitez voir des fichier des includes n'hésitez pas, je ne sais pas ce qui est utile