Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Invité de passage
    Inscrit en
    mars 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 44
    Points : 4
    Points
    4

    Par défaut Recuperer une div dynamique

    Bonjour,

    Vous m'excuserez si je ne suis pas dans la bonne section, je ne savais où poster (php ou ici), vous le comprendrez par la suite.

    J'ai un site avec des membres.

    Je suis en train de mettre en place un chat avec des cams.
    Grace à une compilation de VideoiO et de JwPlayer, j'ai enfin réussi à faire un streaming complet avec des rafraichissement du coté du flash en cas de coupure.

    En fouillant sur le net, je trouve pas mal de chose sur ajax, langage que je ne connaissais pas et qui, je pense, pourrait m'etre utile dans la finalisation de mon petit projet.

    Je m'explique.

    J'ai donc un fichier qui envoie la cam (index.php):
    Code :
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <? require_once '../internals/$config.php';
    require_once '../internals/Header.inc.php';
    
    $play = $_GET['play'];
    
    
     $sql = SK_MySQL::placeholder(
    
    "SELECT `profile_id`,`username`,`password`
    
    FROM `".TBL_PROFILE."`
    
    WHERE username='?'", $_SESSION['%http_user%'][username]
    
    );
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    
    
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
    $chat_user= $data['username'];
    $chat_id= $data['profile_id'];
        } 
    ?>
    <script type='text/javascript' src='./jwplayer.js'></script>
    <script type="text/javascript" src="/jwplayer/jwplayer.js"></script>
    </head>
    <body>
     <script>
      function popup(popupType) {
       window.open("../cam/macam2.php");
      }
     </script>
     <form method="post" action="" onSubmit="popup()">
      <input type="text" name="pseudo" value="<? echo $chat_user; ?>"/>
      <input type="submit"/>
     </form>
    <div id='player'>This text will be replaced</div>
    <script type='text/javascript'>
      jwplayer('player').setup({
        flashplayer: "jwplayer.swf",
    	logo: "../layout/img/watermark2.png",
    'logo.timeout': "60",
        type: "rtmp",
        streamer: "rtmp://monhost",
        autostart: "true",
        bufferlength: "3",
        file: "e_<?php echo $_POST['pseudo']; ?>",
        controlbar: "bottom",
        width: "320",
        height: "260"
      });
    
    	<!--
    //Script to handle time out; used in case live streaming stopped
    //by ip5up 2012-01-26
    var t;
    var timer=5000;
    jwplayer().onIdle(function() {
    t=setTimeout("jwplayer().play()",timer);
    });
    
    </script>
    </body>
    </html>
    D'un autre coté, j'ai le popup qui contient la cam qui sera envoyée (cam.php):
    Code :
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <?php
    
    
     error_reporting(0);
    
    //if(!$_SESSION)
    
    //session_start();
    require_once '../internals/$config.php';
    require_once '../internals/Header.inc.php';
    
    
    
     $sql = SK_MySQL::placeholder(
    
    "SELECT `profile_id`,`username`,`password`
    
    FROM `".TBL_PROFILE."`
    
    WHERE username='?'", $_SESSION['%http_user%'][username]
    
    );
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    
    
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
    $chat_user= $data['username'];
    $chat_id= $data['profile_id'];
        } 
    ?>
    
    <body>
    <script>
    function getFlashMovie(movieName) {
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];  
    }
    </script>
    <td>
    <center>
    <object type="application/x-shockwave-flash" data="VideoIO11.swf"
        id="video1" width="320" height="240" quality="high">
        <param name="movie" value="VideoIO11.swf" />
        <param name="quality" value="high" />
        <param name="bgcolor" value="#000000" />
        <param name="allowFullScreen" value="true" />
        <param name="allowScriptAccess" value="always" />
        <param name="flashVars" value="controls=true" />
    
    </object>
    <center>
    <input id="src1" type="hidden" autocomplete="off" style="width:170px;"
        value="rtmp://monhost"/>
    <input id="publish1" type="hidden" autocomplete="on" style="width:50px;"
        value="<? echo $chat_user; ?>"/>
    <input value="Envoyer ma Cam" type="button" 
        onclick="getFlashMovie('video1').setProperty('src', 
            document.getElementById('src1').value
            + '?publish=' + document.getElementById('publish1').value)"/>
    <input value="Arrêter" type="button" 
        onclick="getFlashMovie('video1').setProperty('src', null)"/>
    </center>
    
    </body>
    </html>
    Comme on peut se rendre compte, seule la valeur en rouge dans cam.php doit etre récupérée dans index.php.
    Sans rafraichir une quelconque div (pour ne pas couper les cams en cours), y aurait il un moyen de recuperer des valeurs de cam.php et de les envoyer à index.php ?

    Je ne cherche pas une solution toute prete mais, pour le moment, une base afin de savoir comment je pourrait mettre en marche tout çà.

    Merci à tous de votre aide.

  2. #2
    Modérateur
    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    7 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 7 434
    Points : 13 040
    Points
    13 040

    Par défaut

    Bonjour,
    pour la récupération des données il existe la
    Code :
    var valeurElement = document.getElementById('id_element').value;
    ensuite ce sont les valeurs récupérées que tu passes en paramètre lors de ton appel Ajax.

  3. #3
    Membre du Club

    Homme Profil pro Sébastien DAMART
    Développeur Web
    Inscrit en
    septembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Nom : Homme Sébastien DAMART
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : septembre 2012
    Messages : 29
    Points : 58
    Points
    58

    Par défaut

    La difficulté c'est que "cam.php" n'est pas un dataFiles mais un fichier intégré.
    Si ton but est effectivement de récupérer des données, je te suggère de dédié un fichier *.php pour ça.
    puis créer une requête AJAX pour obtenir l'information et une fois obtenu générer tes composants flash "à la volée"
    Code :
    1
    2
    3
    4
     
    var _swf=document.createElement("object");
    [...]
    document.body.appendChild(_swf);

  4. #4
    Invité de passage
    Inscrit en
    mars 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 44
    Points : 4
    Points
    4

    Par défaut

    Salut et merci à tous deux pour vos réponses.

    @NoSmoking,
    J'ai pensé à cette solution. D'ailleurs, c'est d'après cet élément que j'ai commencé à fouiner du coté de Ajax.
    Le problème est que je ne peux pas récupérer cette div coté client puisque celui ci, n'aura que l'embed de la cam à envoyer.
    C'est là que mon problème se pose.

    @sdamart,

    Merci également pour ton attention.
    Là, mes connaissances font que je ne vois pas très bien où tu veux en venir.
    Quant tu parles de créer un fichier php, tu penses à créer des données via mysql ?
    Toutefois, sache que tout est modifiable.
    J'ai créé ces 2 fichiers parce que je ne savais pas trop comment m'y prendre.
    Le plus gros boulot était de pouvoir récupérer des flux videos intéractivement. Ceci est fait grace à Videoi0 et Jwplayer.
    Il ne reste maintenant qu'à pouvoir mettre çà en place. Je suis peut etre parti sur une mauvaise piste.

    Merci à vous et bonnes fetes

  5. #5
    Invité de passage
    Inscrit en
    mars 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 44
    Points : 4
    Points
    4

    Par défaut

    Salut,

    J'avance petit à petit dans mon idée.

    Par contre, j'ai un peu refondé la chose.

    Merci à vous pour vos réponses.

    Je posterai le résultat dès que fini.

  6. #6
    Invité de passage
    Inscrit en
    mars 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 44
    Points : 4
    Points
    4

    Par défaut

    Bon, finalement, je tourne en rond !
    Je me perds avec le coté serveur et client.

    Impossible d'avancer.

    Je donne ma langue au chat.

    Si une âme charitable passait par là....

    Voilà où j'en suis : http://www.developpez.net/forums/d12...e/#post7043803

  7. #7
    Modérateur
    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    7 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 7 434
    Points : 13 040
    Points
    13 040

  8. #8
    Invité de passage
    Inscrit en
    mars 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 44
    Points : 4
    Points
    4

    Par défaut

    C'est bien ce que j'explique dans le post précédent.

    Si j'utilise :
    Code php :
    1
    2
    3
    4
    <?php
    session_start();
    $_SESSION['chat_user'] = $chat_user;
    ?>
    j'ai toujours la meme valeur qui est renvoyée puisque c'est celle du membre connecté.

  9. #9
    Membre du Club

    Homme Profil pro Sébastien DAMART
    Développeur Web
    Inscrit en
    septembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Nom : Homme Sébastien DAMART
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : septembre 2012
    Messages : 29
    Points : 58
    Points
    58

    Par défaut

    Si on essaye de remettre les chose à plat.
    D'un coté tu as un fichier "client" qui contient un élément flash et qui appel une popup qui contient un autre élément flash.

    Par rapport à ton premier post, je vois une faille un peu grande.
    Pour ta question, c'est un problème PHP effectivement, c'est d'abord un problème PHP. Et pour ta deuxième question AJAX n'est pas un langage mais une technologie.

    La faille
    Tu créer une requête SQL en utilisant la valeur d'une variable de SESSION. Mais la première fois que ton utilisateur arrive sur le site, celui-ci n'est pas connecté.
    Donc $_SESSION['username'] vaut null la requête ne retourne aucun résultat donc $user_name vaut "";

    Donc pour contre-carré ces petit tracas de client / serveur,
    Je suggère d'abord ceci
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <script>
      function popup(popupType) {
     
    //connecté l'utilisateur ($_SESSION['username']=$_POST['user_name']) 
    //Je te donne la syntaxe classique
    var pseudo=document.getElementsByName('pseudo')[0].value;
    var xhr=new XMLHttpRequest();
    xhr.open("POST","async_connect.php",false);
    xhr.send("user_name="+pseudo);
    if(xhr.responseText=="ok")
    //Tu ouvre ta popup
    window.open("../cam/macam2.php");
    //et quoi qu'il arrive tu return false
    return false;// ainsi tes données ne sont pas envoyées
      }
     </script>
     <form method="post" action="" onSubmit="popup()">
      <input type="text" name="pseudo" value="<? echo $chat_user; ?>"/>
      <input type="submit"/>
     </form>
    Ainsi lorsque la popup va s'ouvrir, la variable de SESSION aura bien une valeur
    Et tu pourra démêler ce problème.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •