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

Delphi Discussion :

Php + delphi sans Apache


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut Php + delphi sans Apache
    Bonjour

    Je souhaiterais faire un serveur web sous delphi (tidhttpserver)
    qui puisse traiter des fichiers php.

    Pour cela je suis conscient qu'il faut un serveur php.
    Mais est-il possible d'avoir un serveur php sans apache.

    C'est à dire que delphi fasse appel à une librairie php pour interpreter le code qu'on lui passe et renvoyer le resultat au serveur delphi qui repondra ainsi au client.

    En esperant avoir été clair.

    PS : je travaille en delphi 7

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 398
    Points : 645
    Points
    645
    Par défaut
    regarde du côté de PHP4Delphi

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut
    Ok, en fouinant , j'aussi ai trouvé la reference à cette librairie

    Merci

  4. #4
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut PHP4delphi et sessions
    Rebonjour

    J'utilise la librairie php4delphi et j'ai des problèmes avec mes sessions qui s'ouvrent mais ne sont pas conservées entre chaque appel à ma page php

    J'utilise le page php de test suivante.

    <?php
    // Initialize a session. This call either creates
    // a new session or re-establishes an existing one.
    session_start( );

    // If this is a new session, then the variable
    // $count will not be registered
    if (!session_is_registered("count"))
    {
    session_register("count");
    session_register("start");

    $count = 0;
    $start = time( );
    }
    else
    {
    $count++;
    }

    $sessionId = session_id( );

    ?>
    <!DOCTYPE HTML PUBLIC
    "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd" >
    <html>
    <head><title>Sessions</title></head>
    <body>
    <p>This page points at a session
    (<?=$sessionId?>)
    <br>count = <?=$count?>.
    <br>start = <?=$start?>.
    <p>This session has lasted
    <?php
    $duration = time( ) - $start;
    echo "$duration";
    ?>
    seconds.
    </body>
    </html>
    Avez-vous une idée du pourquoi de la perte de session ?

    Est-ce du au php4delphi ?

    Le fichier de session est pourtant bien créé.

    Merci pour vos pistes

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Il me semble que l'on utilise plus session_register mais directement le tableau $_SESSION...

    http://julp.developpez.com/php/les-sessions/#L2.1

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Pourquoi ce sujet est-il taggé [délestage] ?

    Tu as trouvé la solution ?

  7. #7
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut
    Je pense qu'il s'agit plus d'un probleme php que lié à php4delphi.

    En sauvegardant ma session dans delphi et en la reinitialisant dans le script php cela fonctionne.
    Je ne sais pas si ca se passe comme ca normalement en php car je ne suis pas un specialiste de ce langage, mais ca ressemble plus à un soucis lié à php.

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Voici comment utiliser le plus simplement possible les sessions. Tu as 3 fonctions :
    • Création de la session (enregistrement des données au démarrage)
    • Test de connection (récupération et mise à jour des données)
    • Destruction de la session (quand l'utilisateur quitte le programme Delphi)

    Ainsi, le code pourrait ressembler à ça (déjà plus propre, on voit plus clair ) :
    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
    53
    54
    55
    56
    57
    58
    59
    <?php
    
    //============================================
    //  DESTRUCTION DE LA SESSION
    //============================================
    function DestroySession(){
      @session_start();
      @session_unset();
      @session_destroy();
    }
    
    //============================================
    //  CREATION DE LA SESSION
    //============================================
    function CreateSession($count, $start){
      DestroySession();
      @session_start();
      $_SESSION['count']=$count;
      $_SESSION['start']=$start;
    }
    
    //============================================
    //  TEST DE LA SESSION
    //============================================
    function TestSession(){
      @session_start();
      if(isset($_SESSION['count'])) return true;
      DestroySession();
      return false;
    }
    
    //============================================
    //  TRAITEMENT DU SCRIPT ICI
    //============================================
    if(TestSession()){  
      $_SESSION['count']=$_SESSION['count']+1;
    }else{ 
      CreateSession(0, time());
    }
    $start=$_SESSION['start'];
    $count=$_SESSION['count'];
    
    
    //============================================
    //  AFFICHAGE DU FORMULAIRE HTML
    //============================================
    ?>
    <!DOCTYPE HTML PUBLIC 
    "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd" >
    <html>
    <head><title>Sessions</title></head>
    <body>
      <p>This page points at a session (<?php echo @session_id(); ?>)<br>
      count = <?php echo $count; ?>.<br>
      start = <?php echo $start; ?>.
      <p>This session has lasted <?php echo time( ) - $start; ?>seconds.
    </body>
    </html>
    J'ai mis le code HTML en bleu pour bien faire la différence.
    Tu remarqueras que dans le formulaire, il y avait des erreurs. Il manquait des commandes "echo"...
    Et donc le code <?= n'est pas correct.

    Note : J'utilise l'arobas @ devant une fonction pour masquer le message d'erreur de cette fonction en cas d'erreur.
    à+

  9. #9
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut
    Je me retrouve avec le même problème que precedement.

    Lorsque j'appelle test.php, j'ai bien l'ouverture de session.

    Sauf qu'à la sortie de la fonction, la session se ferme

    si je rappelle test.php, il me créé une nouvelle session alors qu'elle devrait encore etre active.

    Voila où se trouve mon problème.

    Le seul moyen que j'ai trouvé pour contourner ca est de sauvegarder l'IdSession et de le reinjecter via la variable $sessionId dans ma page php pour le reutiliser

    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
     
    <?php
     
     if (isSet($sessionId) && ($sessionId!='') )
    {
     	session_id($sessionId);
     	session_start();
     	
     	echo 'session en cours';
     	 	echo chr(13);
     }
     else
     {
     	session_start();
     	$_SESSION['time_debut']=time ();
     } 
     
     $sessionId = session_id(  );
     
     echo $sessionId;
     echo chr(13);
     echo  $_SESSION['time_debut'];
     echo chr(13);
     
     
    ?>

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Il ya peut-être une option dans PHP4Delphi pour obtenir les sessions (et cookies).
    Je sais qu'avec le composant http d'ICS ou d'Indy, il ya un évènement à gérer pour que le navigateur que l'on simule justement avec ce composant http, puisse récupèrer les données de session et renvoyer ensuite le SID au serveur. A notre qu'avec PHP, le mot réservé SID t'affichera l'id de ta session...

Discussions similaires

  1. PHP sans Apache
    Par Yoteco dans le forum Langage
    Réponses: 2
    Dernier message: 05/10/2006, 09h41
  2. [COM] PHP::COM et Apache
    Par lebdenat dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 12/06/2006, 14h59
  3. PHP + Mysql sans Apache ni IIS, possible ?
    Par nemesix dans le forum Apache
    Réponses: 1
    Dernier message: 23/04/2006, 00h20
  4. ouverture de fichiers word dans delphi (sans utiliser word)
    Par poussinphp dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 11/07/2005, 14h25
  5. Connexion Firebird en PHP+DELPHI
    Par nicotin dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 18/01/2005, 19h34

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