Remplacer la fonction Include

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Remplacer la fonction Include

par Sékiltoyai » 24 juil. 2007, 00:12

Bah faudrait déjà qu'il y ait un appel à include dans ton fichier...
Le mieux, pour tester la fonctionnalité, c'est peut être d'y aller avec des tests simples, tu ne penses pas ?

Dans un dossier, crée un fichier avec dedans
<?php
include('test_include.php');
?>
Et un fichier test_include.php avec dedans
<?php
echo 'test';
?>
Et un autre test, fait ca :
<?php
echo ini_get('include_path');
?>

J'ai un soucis avec un autre script

par Radio Klub » 23 juil. 2007, 23:58

J'utilise aussi un second script qui lui ne plante pas le site mais affiche des erreurs
Ce script affiche l'historique des titres diffusés et fonctionnait aussi très bien chez mon ancien hébergeur :
$scfp = fsockopen("tv3.stream-music.net", "8402", &$errno, &$errstr, 30);
 if(!$scfp) {
  $scsuccs=1;
echo'Radio Klub est actuellement en maintenance';
 }
if($scsuccs!=1){

  //for newer shoutcast servers
fputs ($scfp, "GET /admin.cgi?mode=viewxml HTTP/1.1\r\nHost: tv3.stream-music.net:8402\r\n .
User-Agent: SHOUTcast Song (author: [email protected])(Mozilla Compatible)\r\n .
Authorization: Basic ".base64_encode ("admin:"xxxxxxxx"")."\r\n\r\n");
 while(!feof($scfp)) {
  $page .= fgets($scfp, 1000);
 }

//define  xml elements
 $loop = array("STREAMSTATUS", "BITRATE");
 $y=0;
 while($loop[$y]!=''){
  $pageed = ereg_replace(".*<$loop[$y]>", "", $page);
  $scphp = strtolower($loop[$y]);
  $$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
  if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE)
   $$scphp = urldecode($$scphp);

// uncomment the next line to see all variables
// echo'$'.$scphp.' = '.$$scphp.'<br>';
  $y++;
 }
//end intro xml elements

//get song info and history
 $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
 $pageed = ereg_replace("</SONGHISTORY>.*", "", $pageed);
 $songatime = explode("<SONG>", $pageed);
 $r=1;
 while($songatime[$r]!=""){
  $t=$r-1;
  $playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
  $playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
  $song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
  $song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
  $song[$t] = urldecode($song[$t]);


//format the date
$frmt_date[$t] = date('h:i:s',$playedat[$t]);
	
//you may edit the html below, make sure to keep variables intact
echo'
<div align="left"><b>'.$frmt_date[$t].'</b>&nbsp;&nbsp;&nbsp;&nbsp;'.$song[$t].'<b></b></b><BR></div>
';


		$r++;
	}

fclose($scfp);
}

?>
avec l'erreur suivante :

Code : Tout sélectionner

Warning: modules_html::include() [function.modules-html-include]: Unable to access /customers/radio-klub.net/radio-klub.net/httpd.www/modules/mod_track2.php in /customers/radio-klub.net/radio-klub.net/httpd.www/includes/frontend.html.php on line 367 Warning: modules_html::include(/customers/radio-klub.net/radio-klub.net/httpd.www/modules/mod_track2.php) [function.modules-html-include]: failed to open stream: No such file or directory in /customers/radio-klub.net/radio-klub.net/httpd.www/includes/frontend.html.php on line 367 Warning: modules_html::include() [function.include]: Failed opening '/customers/radio-klub.net/radio-klub.net/httpd.www/modules/mod_track2.php' for inclusion (include_path='.:') in /customers/radio-klub.net/radio-klub.net/httpd.www/includes/frontend.html.php on line 367
Y a t-il une solution a ce type de problème ?

SCASTXML.PHP

par Radio Klub » 23 juil. 2007, 23:31

C'est effectivement le SCASTXML.PHP qui plante le site


Si je suprime le fichier, le site se lance

Quel solution alors ?

Test.php

par Radio Klub » 23 juil. 2007, 17:21

Si j'active le module en php qui plante mon site => voir script plus haut du 3e fichier


et que je pointe mon site sur le test.php, il m'affiche une page avec le OK!

Test.php

par Radio Klub » 23 juil. 2007, 17:15

Si j'active le module .php concerné, car mon site est un CRM Joomla, en y insérant le test.php à la racine du site, ca plante qd meme le site.

par Genova » 23 juil. 2007, 16:57

La seule chose qui plante ton site est le contenu de SCASTXML.PHP je supose.

Créé un fichier test.php et met ce code :

Code : Tout sélectionner

<?php error_reporting(E_ALL); $errno = 0; $errstr = ''; $fd = fsockopen("www.google.com", 80, $errno, $errstr); if (!$fd) { echo "Erreur [$errno] [$errstr]"; } else { echo 'OK !'; } ?>
ensuite lance le, il t'affiche quoi ?

Demande de script

par Radio Klub » 23 juil. 2007, 16:51

Il me reste a faire quoi alors ?

Je suis assez light en PHP

Merci

par Genova » 23 juil. 2007, 16:41

include() marche très bien sur ton serveur (fonction non désactivable). Ils ont juste désactiver la directive permettant d'inclure via le protocole HTTP.

Complément d'infos

par Radio Klub » 23 juil. 2007, 16:39

Voilà leur réponse en anglais :

We did have a update on PHP, where we have disabled allow_url_include

The new default is set to off i.e. remote files cannot be included. This is for security since this is the main source of hacked pages/websites abused to send spam. It is still possible to open remote files, just not to include and execute remote code.

par Ryle » 23 juil. 2007, 14:54

Ben c'est plutôt à eux de te dire quelles alternatives ils te proposent. Peut être ont ils défini les include_dir dans lesquels tu peux quand même mettre tes fichiers pour les inclures ?

Sinon, tu dois pouvoir définir ta propre fonction include() qui lira le fichier à inclure passé en paramètre et fera un très sécurisé eval() :) Ca reste un peu ridicule de bloquer les includes ceci dit. Je crois que la version 6 a d'ailleurs supprimé le safe mode non ?

Hébergeur

par Radio Klub » 23 juil. 2007, 14:34

Je suis chez ONE.com

Complément d'infos

par Radio Klub » 23 juil. 2007, 14:31

Effectivement, mon hébergeur est en safe-mode et m'a expliqué que les fonctions INCLUDE ne fonctionnent pas.


Il y a t-il une autre solution ?


Cordialement,


Marc

par Sékiltoyai » 22 juil. 2007, 18:11

Non, mais peut être que l'hébergement est en safe-mode, ca restreint les includes je crois, non ?

par Hubert Roksor » 22 juil. 2007, 18:06

je ne vois pas trop quel hébergeur irait bloquer la fonction include
...d'autant plus que ce n'est pas une fonction et donc je doute qu'on puisse la désactiver :lol:

Au pif, je dirais que ce sont les fonctions de sockets qui ont été désactivées.

Au passage, je note que Radio Klub a ignoré l'avertissement affiché lors de la rédaction de nouveaux sujets concernant la longueur des scripts ou l'inclusion de HTML inutile.

par Truc » 22 juil. 2007, 17:53

Attention à ne pas laisser trainer tes identifiants de connexion (mot de passe) dans les messages que tu postes :wink: