Encapsulation de cripts
Fermé
pitxu
Messages postés
689
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
25 mars 2015
-
14 sept. 2007 à 11:02
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 - 15 sept. 2007 à 07:13
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 - 15 sept. 2007 à 07:13
A voir également:
- Encapsulation de cripts
- Encapsulation d'un paquet ICMP - Forum Réseau
3 réponses
Jean-François Pillou
Messages postés
19261
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
16 février 2023
63 274
14 sept. 2007 à 12:42
14 sept. 2007 à 12:42
Le plus simple serait de changer le contenu de content.php pour :
Par ailleurs, je ne sais pas si c'est volontaire mais tu avais oublié le = derrière name.
Si tu ne peux passer changer le contenu de content.php, alors il faut que tu interpréte le contenu de content.php, soit en faisant eval($content) soit plus simplement en faisant un include au lieu de file_get_contents().
Pour récupérer cette valeur, tu peux utiliser les fonctions ob_start(); mais c'est un peu overkill !
<input type=hidden name="exemple" value="test">
Par ailleurs, je ne sais pas si c'est volontaire mais tu avais oublié le = derrière name.
Si tu ne peux passer changer le contenu de content.php, alors il faut que tu interpréte le contenu de content.php, soit en faisant eval($content) soit plus simplement en faisant un include au lieu de file_get_contents().
Pour récupérer cette valeur, tu peux utiliser les fonctions ob_start(); mais c'est un peu overkill !
pitxu
Messages postés
689
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
25 mars 2015
94
14 sept. 2007 à 13:02
14 sept. 2007 à 13:02
Merci pour ta réponse.
Je ne peux pas simplifier le code de content.php, car il y a des variables php.
Je vais essayer avec eval.
Je ne peux pas simplifier le code de content.php, car il y a des variables php.
Je vais essayer avec eval.
pitxu
Messages postés
689
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
25 mars 2015
94
15 sept. 2007 à 07:13
15 sept. 2007 à 07:13
ça ne fonctionne pas avec eval.
Pour être plus précis, voici le code :
index.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Famille Elias-Jean</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<?
function get_tab($content) {
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td id=\"tabhg\" width=\"24\" height=\"24\"> </td>
<td id=\"tabh\" height=\"24\"> </td>
<td id=\"tabhd\" width=\"24\" height=\"24\"> </td>
</tr>
<tr>
<td id=\"tabg\" width=\"24\"> </td>
<td id=\"tab\">"; if (isset($content) && !empty($content)) { echo ($content); } else { echo " "; } echo "</td>
<td id=\"tabd\" width=\"24\"> </td>
</tr>
<tr>
<td id=\"tabbg\" width=\"24\" height=\"24\"> </td>
<td id=\"tabb\" height=\"24\"> </td>
<td id=\"tabbd\" width=\"24\" height=\"24\"> </td>
</tr>
</table>"; }
get_tab(file_get_contents("shoutbox.php"));
?>
shoutbox.php
<?php
$msg = array();
function file_save($filename, $content, $flags = 0)
{if (!($file = fopen($filename, 'w')))
return false;
$n = fwrite($file, $content);
fclose($file);
return $n ? $n : false;
}
if (!file_exists("./chat.php")) file_save("./chat.php","<?php\n\$msg = ".var_export($msg,TRUE)."\n?>");
include "chat.php";
while (count($msg) >= 5) array_shift($msg);
$canpost = empty($_POST['submit']) ? 'refresh' : $_POST['submit'];
$canpost = ($canpost == 'refresh') ? 0 : 1;
if (!empty($_POST['mess']) && !empty($_POST['pseudo']) && $canpost)
{$i = count($msg);
$msg[$i]['pseudo'] = htmlentities($_POST['pseudo']);
$msg[$i]['texte'] = htmlentities($_POST['mess']);
$msg[$i]['date'] = time();
}
$msg2 = array_reverse($msg);
echo '<div class="chat">';
foreach ($msg2 as $message)
{echo '<span class="pseudo">'.$message['pseudo'].'</span> <span class="date">['.date("d/m/y à H:i:s",$message['date']).']</span><br /><span class="msg">'.nl2br($message['texte']).'<br /><hr class="chat">';
}
echo "</div>";
file_save("./chat.php", "<?php\n\$msg = ".var_export($msg,TRUE)."\n?>");
?>
<div class="miniform">
<form method="post">
<input type="hidden" name="pseudo" value="<? echo $user; ?>"><br />
<textarea name="mess" cols="20" rows="3"></textarea><br />
<input name="submit" type="submit" value="POSTER"> <input name="submit" type="submit" value="REFRESH">
</form>
</div>
Voilà, comment faire en sorte que shoutbox.php soit correctement interprété ?
Pour être plus précis, voici le code :
index.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Famille Elias-Jean</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<?
function get_tab($content) {
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td id=\"tabhg\" width=\"24\" height=\"24\"> </td>
<td id=\"tabh\" height=\"24\"> </td>
<td id=\"tabhd\" width=\"24\" height=\"24\"> </td>
</tr>
<tr>
<td id=\"tabg\" width=\"24\"> </td>
<td id=\"tab\">"; if (isset($content) && !empty($content)) { echo ($content); } else { echo " "; } echo "</td>
<td id=\"tabd\" width=\"24\"> </td>
</tr>
<tr>
<td id=\"tabbg\" width=\"24\" height=\"24\"> </td>
<td id=\"tabb\" height=\"24\"> </td>
<td id=\"tabbd\" width=\"24\" height=\"24\"> </td>
</tr>
</table>"; }
get_tab(file_get_contents("shoutbox.php"));
?>
shoutbox.php
<?php
$msg = array();
function file_save($filename, $content, $flags = 0)
{if (!($file = fopen($filename, 'w')))
return false;
$n = fwrite($file, $content);
fclose($file);
return $n ? $n : false;
}
if (!file_exists("./chat.php")) file_save("./chat.php","<?php\n\$msg = ".var_export($msg,TRUE)."\n?>");
include "chat.php";
while (count($msg) >= 5) array_shift($msg);
$canpost = empty($_POST['submit']) ? 'refresh' : $_POST['submit'];
$canpost = ($canpost == 'refresh') ? 0 : 1;
if (!empty($_POST['mess']) && !empty($_POST['pseudo']) && $canpost)
{$i = count($msg);
$msg[$i]['pseudo'] = htmlentities($_POST['pseudo']);
$msg[$i]['texte'] = htmlentities($_POST['mess']);
$msg[$i]['date'] = time();
}
$msg2 = array_reverse($msg);
echo '<div class="chat">';
foreach ($msg2 as $message)
{echo '<span class="pseudo">'.$message['pseudo'].'</span> <span class="date">['.date("d/m/y à H:i:s",$message['date']).']</span><br /><span class="msg">'.nl2br($message['texte']).'<br /><hr class="chat">';
}
echo "</div>";
file_save("./chat.php", "<?php\n\$msg = ".var_export($msg,TRUE)."\n?>");
?>
<div class="miniform">
<form method="post">
<input type="hidden" name="pseudo" value="<? echo $user; ?>"><br />
<textarea name="mess" cols="20" rows="3"></textarea><br />
<input name="submit" type="submit" value="POSTER"> <input name="submit" type="submit" value="REFRESH">
</form>
</div>
Voilà, comment faire en sorte que shoutbox.php soit correctement interprété ?