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 :

[PHP-JS] Contourner l'utilisation d'un script comment faire?


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut [PHP-JS] Contourner l'utilisation d'un script comment faire?
    Voici mon problème actuellement en stage de DUT mon employeur me demande de remplacer une ligne de commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SCRIPT SRC="http://monadresse.fr"></SCRIPT>
    par une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?$fp=@fopen("http://monadresse.fr","r");
             $contenu = "";
             if($fp){while(!feof($fp)){$contenu .= fgets($fp,1024);}
             echo $contenu;}?>
    Le problème se situe au niveau de la page en question puisqu'elle contient un script avec la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.writeln('<?echo $texte;?>');
    en fin de fichier.

    J'ai donc essayé de supprimer document.writeln et ne laisser que echo $texte mais mon problème ne se résout pas. En espérant que quelqun puisse m'aider.

  2. #2
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Salut,
    j'ai un peu du mal à comprendre ton problème.
    Citation Envoyé par Ludia
    Le problème se situe au niveau de la page en question puisqu'elle contient un script avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.writeln('<?echo $texte;?>');
    en fin de fichier.
    En quoi est-ce un problème ? Qu'est-ce qui cloche ? Qu'est-ce que tu voudrais faire à la place ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Hum excuse moi je n'ai pas bien expliqué mon problème. Le script appelé permet un affichage d'une partie de la page appelée. Lorsque je passe par ma méthode et que j'enleve le document.writeln la partie de la page ne s'affiche plus. Je n'obtiens qu'un vide désastreux sur ma page. Je ne comprends pas comment régler le problème

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Et quel est le rapport avec l'autre portion de code, la variable $contenu?

  5. #5
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    ok, j'ai à moitié compris, mais il y a toujours un truc que je pige pas : pourquoi tu vires le 'document.writeln' ???

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Lorsque je fais appel a ma méthode (fgets et fopen), le document.writeln me semble inutile. De plus lorsque je le laisse j'obtiens le même résultat. Je vais tout de même revérifier puisque tu me met le doute . La variable $contenu contient toute la page ouverte par le fopen. En fait j'ai remarqué que mon bout de code fonctionnait tres bien pour remplacer un include mais pour remplacer l'appel à un script je n'y arrive pas.

  7. #7
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Désolé je suis encore un peu perdu. Ton but est de récupérer le contenu d'une page distante et de l'afficher sur la page d'appel?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Hum oui il me semble que l'on me demande d'effectuer cela. SI tu veux j'ai une page contenant un header, une publicité un menu plus la partie que je dois afficher. Cette partie que je dois afficher fais appel à un fichier .php contenant le fameux doxument.writeln, la version originale utilise un script pour pouvoir effectuer ceci mais l'on me demande d'utiliser fopen et fgets. J'ai conscience que mon problème puisse ne pas paraitre tres clair excusez moi.

  9. #9
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oui c'est pas très clair
    Si j'ai à peu près compris, un fichier fait appel à un autree fichier pour lui prendre un code d'affichage qui fait elle meme appel à un fichier contenant le document.writenl ? Et à quoi correpond la variable $texte alors?

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    $texte correspond a l'affichage final de la partie de page. (Je vais finir par m'y perdre moi-même). Je pense que vous aurez du mal à résoudre le problème je demanderais donc une aide sur qqun pouvant avoir accès a ces fichiers. (mais si vous savez comment faire postez tout de même) Je posterais une réponse des que j'aurais trouvé la solution.

  11. #11
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    peux tu nous donner les sources php et javascript avant et apres modifications ?

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Voici le fichier auquel je dois faire appel:

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
     
    <script language=javascript>
    function centerPopup(url,LargeurP,HauteurP) {
        LeftP=(screen.width-LargeurP)/2;
        TopP=(screen.height-HauteurP)/2;
        // On ouvre la fenetre
         window.open(url,'Image','top='+TopP+',left='+LeftP+',width='+LargeurP+',height='+HauteurP+',margintop=0');
    }
    </script>
    <?
    include("../../base/passql.php");
     
    function RedimImage($img,$maxW=100) {
        $size=getimagesize($img);
        if ($size[0]>$maxW) {
            $coef=$size[0]/$maxW;
            $Taille[1]=round($size[1]/$coef);
            $Taille[0]=$maxW;
        } else {
            $Taille[1]=$size[1];
            $Taille[0]=$size[0];
        }
        return $Taille;
    }
     
    $req=mysql_query("select * from clt_serv where login='$spaceid'");
    $clt=mysql_fetch_object($req);
     
    if($clt->breves==1)
    {
        $req=mysql_query("Select * from prop_aff where login='$spaceid'");
        $aff=mysql_fetch_object($req);
        $frmtitre=$aff->frmtitre;
        $frmdesc=$aff->frmdesc;
        $frmlien=$aff->frmlien;
        if($clt->nbbreves!=0) {
          $breves=mysql_query("Select * from cltbreves where login='$spaceid' order by num DESC LIMIT $clt->nbbreves");
        } else {
          $breves=mysql_query("Select * from cltbreves where login='$spaceid' order by num DESC ");
        }
    // page par défaut avec les breves et leurs description
    $texte="";
    switch($type) {
     
     case "detail" : {    // liste des breves avec leur mini-description
     
      $texte.="<table width=100% border=0>";
      if(mysql_num_rows($breves)<1)  {
        $texte.="<tr><td><font id=base>Vous n\'avez pas de brèves</font><br></td></tr>";
     
      } else {
     
        while($lst=mysql_fetch_object($breves))
        {
          $texte.="<tr><td><p align=justify>$frmtitre"."&#149;&nbsp;".AddSlashes($lst->titre)."</font><br>$frmdesc".AddSlashes($lst->minidesc)."</font>";
          //$texte.="$frmdesc"."$lst->minidesc</font><br><br></td><tr>";
     
          if(strstr($pgd,"?")==FALSE)  {
             $texte.="<br><a href=\"$pgd?spaceid=$spaceid&numbreve=$lst->num\">$frmlien En savoir plus... </font></a><br><br></p></td></tr>";
          } else {
             $texte.="<br><a href=\"$pgd&spaceid=$spaceid&numbreve=$lst->num\">$frmlien En savoir plus... </font></a><br><br></p></td></tr>";
          }
        }
      }
      $texte.="</table>";
      break;
     }
     
     case "titre" :  {   // uniquement les titres des breves
     
    // on affiche le titre de toutes les breves
     
      $texte.="<table width=100% border=0>";
      while($lst=mysql_fetch_object($breves))
      {
        if(strstr($pgd,"?")==FALSE)  {
           $texte.="<tr><td><a href=\"$pgd?spaceid=$spaceid&numbreve=$lst->num&pgd=$pgd\">$frmtitre".AddSlashes($lst->titre)."</font></a><br><br></td></tr>";
        } else {
           $texte.="<tr><td><a href=\"$pgd&spaceid=$spaceid&numbreve=$lst->num&pgd=$pgd\">$frmtitre".AddSlashes($lst->titre)."</font></a><br><br></td></tr>";
        }
      }
      $texte.="</table>";
      break;
     }
     
     case "desc": {   // description complete des breves avec l'image
     
    // si le num n'est pas defini on affiche la derniere breve enregistrée
    if($numbreve=="")  {
      $der=mysql_query("Select * from cltbreves where login='$spaceid' order by num DESC");
      $breve=mysql_fetch_object($der);
    } else {
      $res=mysql_query("Select * from cltbreves where num='$numbreve'");
      $breve=mysql_fetch_object($res);
    }
    // on redimensionne l'image pour l'afficher en petit en conservant les proportions
    if($breve->vignette!="") {
    $Taille=RedimImage($breve->vignette,120);
    $Size=getimagesize($breve->vignette);
    $Size[0]=$Size[0]+20;
    $Size[1]=$Size[1]+25;
    }
    // on enleve la couleur de fond du texte
    $pos=strrpos($frmdesc,"=")-6;
    $frmdesc=substr($frmdesc,0,$pos);
    $frmdesc.=">";
     
    $texte.="<table border=0 width=100% height=100%><tr><td colspan=3 align=center>$frmtitre".AddSlashes($breve->titre)."</font><br><br></td></tr>";
    if($breve->vignette!="") {
      $texte.="<tr><td align=left valign=top ><img src=\"http://mon adresse.fr/$breve->vignette\" align=bottom width=$Taille[0] height=$Taille[1] border=0 onclick=\"javascript:centerPopup(\'http://monadresse.fr".$breve->vignette."\',".$Size[0].",".$Size[1].");return 0;\" onMouseOver=\"this.style.cursor=\'hand\';\"></td><td>&nbsp;&nbsp;</td>";
    }
    $texte.="<td valign=top width=100%><p align=justify>$frmdesc".AddSlashes($breve->descdroite)."</font></p></td></tr>";
    $texte.="<tr>";
    if($breve->vignette!="") {
      $texte.="<td colspan=3 valign=top>";
    } else {
      $texte.="<td valign=top>";
    }
    $texte.="<p align=justify>$frmdesc".AddSlashes($breve->descbas)."</font></p></td></tr>";
    // fichier téléchargeable
    if($breve->fichier!="")  {
      $texte.="<tr><td><br><br><a href=\"http://monadresse.fr/$breve->fichier\" target=\"_blank\">".AddSlashes($breve->descfichier)."</a></td></tr>";
     
    }
    $texte.="</table>";
    break;
    }
    }
    echo $texte;
    }
    ?>
    le document.writeln se trouve ici en fin de code voici comment il est implémenté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    break;
    }
    }
     ?>
      document.writeln('<?echo $texte;?>');
    <?
     
     }
    ?>
    Voici le code de la page appelante:

    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
     
     
    <tr><td valign=top>
    <BR>
      <table cellpadding=5 border=0>
             <tr><td align=left>
             <?$fp=@fopen("http://monadresse.fr/affbreves.php?spaceid=mark&numbreve=$numbreve&type=titre&pgd=index.php?page=breves","r");
             $contenu = "";
             if($fp){while(!feof($fp)){$contenu .= fgets($fp,1024);}
             echo $contenu;}?>
               <!--<SCRIPT SRC="http://monadresse.fr/affbreves.php?spaceid=mark&numbreve=<?echo $numbreve;?>&type=titre&pgd=index.php?page=breves"></SCRIPT>   -->
             </td></tr>
      </table>
    </td>
    <td bgcolor=#CE0000><img src="./vide.gif" width=1 height=2></td>
    <td valign=top>
    <BR>
      <table cellpadding=5 border=0>
             <tr><td align=left>
             <?$fp=@fopen("http://monadresse.fr/affbreves.php?spaceid=mark&numbreve=$numbreve&type=desc&pgd=index.php?page=breves","r");
             $contenu = "";
             if($fp){while(!feof($fp)){$contenu .= fgets($fp,1024);}
             echo $contenu;}?>
             <!--<SCRIPT SRC="http://monadresse.fr/affbreves.php?spaceid=mark&numbreve=<?echo $numbreve;?>&type=desc&pgd=index.php?page=breves"></SCRIPT>    -->
             </td></tr>
      </table>
    Il ya en commentaire la version originale avec seulement l'appel au script

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Après de nombreux essais et de multiples arrachages de cheveux (voila pourquoi les informaticiens deviennent chauves) il s'est trouvé que l'hebergeur du site incriminé permettait l'appel aux scripts et non l'appel à une fonction tel fgets ou fopen. Merci des réponses que vous auriez pu penser à m'apporter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser MyBatis avec NetBeans, comment faire ?
    Par bkwaadbk dans le forum Persistance des données
    Réponses: 1
    Dernier message: 08/04/2012, 16h45
  2. Réponses: 1
    Dernier message: 24/04/2009, 11h23
  3. récupérer valeur "alert" pour utilisation dans un script php
    Par mauyebo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2008, 17h22
  4. utilisation dynamique de dir(), comment faire ?
    Par N.tox dans le forum Général Python
    Réponses: 6
    Dernier message: 11/06/2008, 00h09
  5. Réponses: 8
    Dernier message: 19/10/2005, 15h06

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