Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2901 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Transmission de données autre que post et get

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transmission de données autre que post et get

n°2143589
thetataz
Posté le 24-05-2012 à 20:31:23  profilanswer
 

Bonjour a tous,
 
Je suis semi-débutant (je bidouille quand j'ai besoin), et je suis actuellement en train de me développer une petit mediatheque.
Je me suis amusé a intégrer un petit coverflow et un plugins vlc permettant le streaming, enfin bref le sujet n'ai pas la.
 
J'ai quatre fonctions, deux permettant d'aller chercher les informations sur un site du style alloCine, the movie DB etc ....(dans l'exemple ce sera alloCine)(une fonction pour trouvé le lien vers la fiche du film et l'autre les infos du film, une permettant l'affichage des données récupérer et l'autre permettant l'ecriture des données dans la base de données.
 
Voici les codes (pas de moqueries sur ma façon de codé SVP :p) :
 
Fonction pour récuperer information films :

Code :
  1. function search_Title($name)
  2. {
  3. $name=strtr($name," ","+" );
  4. $url = 'http://www.allocine.fr/recherche/1/?q='.$name;
  5. $url2 = 'http://www.allocine.fr';
  6. $html = file_get_html($url);
  7. foreach($html->find('div.colcontent a') as $a)
  8. {
  9.  foreach($a->find('img') as $img)
  10.  {
  11.   $link = 'index.php?action=info&url='.$url2.$a->href;
  12.   echo '<a href='.$link.'><img src='.$img->src.' /> '.$img->alt.'</a><br>';
  13.  }
  14. }
  15. }
  16. function info_Title($url)
  17. {
  18. $html = str_get_html($url);
  19. $ref='';
  20. $title='';
  21. $date_cine='';
  22. $director='';
  23. $actors='';
  24. $genre='';
  25. $age='';
  26. $resume='';
  27. $cover='';
  28. $trailer = '';
  29. $quality = '';
  30. $poster = '';
  31. // Reference Allocine
  32. foreach($html->find('div[class="sya w-opinion w-rating w-interest"]') as $div) {
  33.  $ref = $div->id;
  34. }
  35. $url2='http://www.allocine.fr/film/fichefilm-'.$ref.'/photos';
  36. $html2=file_get_html($url2);
  37. // Nom du film
  38. foreach($html->find('div[class="titlebar_01 margin_10b"]') as $div) {
  39.  $title = $div->plaintext;
  40. }
  41. // Cover
  42. foreach($html->find('div[class="poster"] img[itemprop="image"]') as $div) {
  43.  $cover = $div->src;
  44. }
  45. // date
  46. foreach($html->find('span span[itemprop="datePublished"]') as $div) {
  47.  $date_cine = $div->plaintext;
  48. }
  49. // Réalisateur
  50. foreach($html->find('span[itemprop="director"] span[itemprop="name"]') as $div) {
  51.  $director = $div->plaintext;
  52. }
  53. // Acteurs
  54. foreach($html->find('span[itemprop="actors"] span[itemprop="name"]') as $div) {
  55.  if ($actors != '')
  56.  {
  57.   $actors = $actors . ', ' .$div->plaintext;
  58.  } else
  59.  {
  60.   $actors = $div->plaintext;
  61.  }
  62. }
  63. // genre
  64. foreach($html->find('span[itemprop="genre"]') as $div) {
  65.  if ($genre != '')
  66.  {
  67.   $genre = $genre . ', ' .$div->plaintext;
  68.  } else
  69.  {
  70.   $genre = $div->plaintext;
  71.  }
  72. }
  73. // Age
  74. foreach($html->find('span[class="insist"] span') as $div) {
  75.  $age = $div->plaintext;
  76. }
  77. // Résumé
  78. foreach($html->find('p[itemprop="description"]') as $div) {
  79.  $resume = $div->plaintext;
  80. }
  81. // Bande Annonce
  82. foreach($html->find('a[itemprop="trailer"]') as $div) {
  83.  $trailer = $div->href;
  84. }
  85. foreach($html2->find('a') as $div) {
  86.  foreach($div->find('img[alt*="affiche"]') as $div2) {
  87.   $link = file_get_html('http://www.allocine.fr'.$div->href);
  88.   foreach($link->find('div[class="slide"] img') as $div3) {
  89.    $poster[] = $div3->src;
  90.   }
  91.  }
  92. }
  93. show_Movie($ref, $title, $date_cine, $director, $actors, $genre, $age, $resume, $cover, $trailer, $poster);
  94. }


Bien-sur sur ces fonctions utilise un script appelé parser_html_dom.php (très simple a utilisé d'ailleurs)
 
 
Ensuite la fonction permettant l'affichage des données récuperer (a savoir show_Movie()) :

Code :
  1. function show_Movie($ref ,$name, $date_cine, $director, $actors, $genre, $age, $resume, $cover, $trailer, $poster)
  2. {
  3.  $quality = '';
  4.  $trailer = '';
  5.  $checked='checked';
  6.  $output = '<form method="post" action="index.php?action=add_Entry&methode=auto.'"><h2 style="text-align:center;">'.$name.'</h2>';
  7.  $output .= '<p style="text-align:center;"><img src='.$cover.' /></p>';
  8.  $output .= '<p style="text-align:center;">Date de sortie : '.$date_cine.'</p>';
  9.  $output .= '<p style="text-align:center;">Réalisateur : '.$director.'</p>';
  10.  $output .= '<p style="text-align:center;">Acteurs : '.$actors.'</p>';
  11.  $output .= '<p style="text-align:center;">Genres : '.$genre.'</p>';
  12.  $output .= '<p style="text-align:center;">Public : '.$age.'</p>';
  13.  if ($trailer != '')
  14.  {
  15.   $output .= '<p style="text-align:center;">Bande Annonce : <a href=http://www.allocine.fr'.$trailer.'>ICI</a></p>';
  16.  }
  17.  $output .= '<p style="text-align:center;">Résumé : </p>';
  18.  $output .= '<p style="text-align:center;">'.$resume.'</p>';
  19.  if ($poster != '')
  20.  {
  21.   $output .= '<p>Choix du poster :</p>';
  22.   $output .= '<p style="text-align:center;">';
  23.   foreach($poster as $element)
  24.   {
  25.    $output .= '<input type="radio" name="poster" value="'.$element.'" id="'.$element.'" '.$checked.' /><label for='.$element.'><img src='.$element . ' height="180" width="135" /></label>    ';
  26.    $checked='';
  27.   }
  28.   $output .= '</p>';
  29.   $output .= '<input type="checkbox" name="img_All" id="img_All" /> <label for="img_All">Enregistrer tous les posters</label><br />';
  30.  }
  31.  $output .= '<input type="submit" value="Enregistrer" /></form>';
  32.  $output .= '<form method="post" action="index.php?action=form"><input type="submit" value="Nouvelle recherche" /></form>';
  33.  echo $output;
  34. }


La pour le moment aucun soucis sa fait bien son boulot, le seul soucis viens de bouton pour enregistré, j'aimerai executé la derniere fonction avec ce bouton.
 
Derniere fonction, permettant l'enregistrement dans la BDD :

Code :
  1. function add_Entry($ref ,$title, $date_cine, $quality, $director, $actors, $genre, $age, $resume, $cover, $trailer)
  2. {
  3. include('auth.php');
  4. try
  5. {
  6.  $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  7.  $bdd = new PDO('mysql:host=localhost;dbname='.$basetitle, $username, $password, $pdo_options);
  8.  $req = $bdd->prepare('INSERT INTO films(ref, title, date_cine, quality, director, actors, genre, age, resume, cover, trailer)
  9.   VALUES(:ref, :title, :date_cine, :quality, :director, :actors, :genre, :age, :resume, :cover, :trailer)'
  10.  );
  11.  $req->execute(array(
  12.   'ref' => $ref,
  13.   'title' => $title,
  14.   'date_cine' => $date_cine,
  15.   'quality' => $quality,
  16.   'director' => $director,
  17.   'actors' => $actors,
  18.   'genre' => $genre,
  19.   'age' => $age,
  20.   'resume' => $resume,
  21.   'cover' => $cover,
  22.   'trailer' => $trailer,
  23.  ));
  24.  echo 'Le film a bien été ajouté</br>';
  25.  echo '<a href="index.php">Retour</a>';
  26. }
  27. catch(Exception $e)
  28. {
  29.  die('Erreur : '.$e->getMessage());
  30. }
  31. }


Donc voila ou ce trouve le soucis.
 
J'ai essayé tous de meme plusieurs chose.
J'ai d'abord pensé transmettre toutes les données par l'url, mais sa ne fonctionne pas bien la variable $resume est par moment trop longue et ne se transmet qu'a moitié.
 
Deuxieme idée, j'ai rajouté un bout de code dans ma fonction me servant a parser et donc deux variables dans dans le form d'enregistrement (l'url et une variable write (ou je donne la valeur ok), Si write = yes alors executer add_Entry(.....). Sa fonctionne mais cela fait executé deux fois la fonction pour parser, donc très long a executé, ce qui me donne par moment des timeOut.
 
Solution que je suis en train de tester, c'est enregistrer mon parsing (si sa se dit) dans un fichier text, et de le reutilisé par la suite dans ma fonction add_Entry.
 
Avez vous une idées d'un autre méthode pour me dépatouiller de ceci.
 
Merci par avance
 
PS : Desoler j'ai pas trouvé de balise pour le php, je sais pas si sa existe sur le site.

mood
Publicité
Posté le 24-05-2012 à 20:31:23  profilanswer
 

n°2143631
rufo
Pas me confondre avec Lycos!
Posté le 25-05-2012 à 10:03:54  profilanswer
 

Solutions :
- $_SESSION  
- les sockets (d'une certaine manière, du POST, donc)
- ...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Transmission de données autre que post et get

 

Sujets relatifs
Extraire des donnees de X-plane vers simulink avec UDP Sauvegarde d'un wiki et de sa base de données
[PHP] extraire des données d'une page htmlprobléme récéption données java socket
Comment un script php peut envoyer des données à un clientRécupération de données dans un fichier HTML
VBA Enregistrement de données[Résolu] AJAX, MySQL et données lourdes
Créer une base de données oracle pour JavaStockage des données d'un formulaire php dans un fichier csv
Plus de sujets relatifs à : Transmission de données autre que post et get


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR