Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/12/2012, 14h40   #1
mikedimoi
Invité de passage
 
Inscription : 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.
mikedimoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2012, 08h59   #2
NoSmoking
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 5 096
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 5 096
Points : 8 797
Points : 8 797
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.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2012, 09h07   #3
sdamart
Membre du Club
 
Homme Sébastien DAMART
Développeur Web
Inscription : 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 : 65
Points : 65
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);
sdamart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2012, 09h41   #4
mikedimoi
Invité de passage
 
Inscription : mars 2004
Messages : 44
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 44
Points : 4
Points : 4
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
mikedimoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 09h35   #5
mikedimoi
Invité de passage
 
Inscription : mars 2004
Messages : 44
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 44
Points : 4
Points : 4
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.
mikedimoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 15h04   #6
mikedimoi
Invité de passage
 
Inscription : mars 2004
Messages : 44
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 44
Points : 4
Points : 4
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
mikedimoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 19h02   #7
NoSmoking
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 5 096
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 5 096
Points : 8 797
Points : 8 797
Tu peux lire ces excellents tuto
- Sessions et cookies en PHP
- Petite FAQ sur les Sessions PHP
- Sécuriser les sessions en PHP
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 19h55   #8
mikedimoi
Invité de passage
 
Inscription : mars 2004
Messages : 44
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 44
Points : 4
Points : 4
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é.
mikedimoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2012, 17h14   #9
sdamart
Membre du Club
 
Homme Sébastien DAMART
Développeur Web
Inscription : 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 : 65
Points : 65
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.
sdamart est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h22.


 
 
 
 
Partenaires

Hébergement Web