IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Utilisation des sessions


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut [Tableaux] Utilisation des sessions
    Salut

    Mon code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?
    session_start();
    require_once'config.php';
     
    $lm = $_FILES['Filedata']['tmp_name'];
    $cv = $_FILES['Filedata']['tmp_name'];
    $RefOff=$_GET['RefOff'];
    $RefDep=$_GET['RefDep'];
    $prenom=$_GET['prenom'];
    $nom = $_GET['nom'];
    $email=$_GET['email'];
    $lm_name = $_GET['lm'];
    $cv_name= $_GET['cv'];
    $lang='fr';
    $type = $_GET["type"];
     
     
    $FolderUpload = $mosConfig_absolute_path.'/images/upload/emploi/';  
    $timeline = time();  
     
    if($type=='lm')
    {	$NameFile=$lm_name;
    	$ext=get_extension($NameFile);
    	$date_envoi=gmstrftime('%Y-%m-%d %H:%M:%S');//date en gmt date('Y-m-d H:i:s');			
    	$sql="insert into jos_emploi (RefDep,RefOff,lang,prenom,nom,email,date_envoi) values ('$RefDep','$RefOff', '$lang', '$prenom', '$nom', '$email', '$date_envoi')";
    	$req=mysql_query($sql) or die ("failure save data in DB");
    	$Ref=mysql_insert_id();
    	$_SESSION['RefEMP']=$Ref;
    	$NameFileNormeLM="LM-".$lang."-".$Ref.$ext;
    	$upload=move_uploaded_file($lm,$FolderUpload.$NameFileNormeLM);
    	if(!$upload)
    	$retour='1';
    	else
    	{	$sql2="update jos_emploi set lm='$NameFileNormeLM' where Ref=".$_SESSION['RefEMP'];
    		$req2=mysql_query($sql2) or die ("failure ajout lm file");
    	}
    }
    if($type=='cv')
    {	$NameFile=$cv_name;
    	$ext=get_extension($NameFile);
    	$NameFileNormeCV="CV-"."$lang-".$_SESSION['RefEMP'].$ext;
    	$upload=move_uploaded_file($cv,$FolderUpload.$NameFileNormeCV);
    	if(!$upload)
    	$retour='0';
    	else
    	{	$sql2="update jos_emploi set cv='$NameFileNormeCV' where Ref=".$_SESSION['RefEMP'];
    		$req2=mysql_query($sql2) or die ("failure ajout cv file");
    	}
    	$_SESSION= array();
    	session_destroy();
    }
    ?>

    Le but de ce script c'est d'uploader 2 fichiers en meme temps, comme vs pouvez le constater j'initiale la session avec a commande mysql_insert_id, dans le but d'avoir le meme id pr les 2 fichiers.. Le problème c'est que toujours le premier fichier reçoit id initialisé dans la session mais le second parfois parfois non, je ne sais pas pourkoi alors que le code me parait logik..
    Vous avez une idée??

    Merci

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Oui, j'ai bien une idée


    Dans ton code tu as ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if($type=='lm')
    {	....
    	$_SESSION['RefEMP']=$Ref;
    ...
    }else
    {
        $sql2="update jos_emploi set lm='$NameFileNormeLM' where Ref=".$_SESSION['RefEMP'];
     
    ....
    {
    et si $type n'est pas égale à 'lm', (cas du else donc) où est initialisé la variable $_SESSION['RefEMP'].

    On se pose la même question pour le second if.

    et puis que veut tu faires avec ceci $_SESSION= array(); ?

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    Merci MaitrePylos pour ta réponse, pourquoi j'utilise $_SESSION= array(); ??pour être sûre que ma session a été belle est bien vider, c'est à dire je l'initialise à vide..
    Pour te dire j'envoi les 2 type en meme temp, le 1er est relative à lm le second à cv et puisque j'effectue l'insertion dans type=lm je suis obligé d'utiliser les sessions pour avoir le meme id pour type='cv';

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Je reviens donc à ton code, tu envois les 2 types, ok.

    Mais si $type est différent de 'lm', tu initialises jamais ta variable $_SESSION['RefEMP'], ou alors le else ici dessous ne sert à rien, puisque tu pars du constat que type est toujours égal à 'lm'.

    me suis tu?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if($type=='lm')
    {	....
    	$_SESSION['RefEMP']=$Ref;
    ...
    }else
    {
        $sql2="update jos_emploi set lm='$NameFileNormeLM' where Ref=".$_SESSION['RefEMP'];
     
    ....
    {

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Points : 94
    Points
    94
    Par défaut
    oui je te suis bien MaitrePylos, mais voilà le principe de mon code:

    Je reçois bien évidemment les 2 types à savoir lm et cv.. Tant que type='lm', j'insère mes données dans la table en initialisant mon 'mysql_insert_id()' dans une session pour pouvoir l'utiliser pour le 2ème type (type='cv'), alors ce qui arrive c'est toujours le type lm reçoit l'id en question alor que cv parfois oui parfois non ce qui me parait un peu bizarre.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Alors non d'après ton $type est soit 'lm' ou 'cv',ou rien, mais certainement pas les deux.

    et si $_get['type'], ne vaut pas 'lm', ta avraible $_session , n'est jamais initialisé.


    Ou alors il manque un bout de code que je ne vois pas?

Discussions similaires

  1. [FPDF] fpdf et utilisation des sessions
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 11/05/2006, 18h46
  2. Réponses: 5
    Dernier message: 17/02/2006, 15h30
  3. incompréhension sur l'utilisation des sessions
    Par cladsam dans le forum Langage
    Réponses: 12
    Dernier message: 31/01/2006, 12h28
  4. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  5. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo