本文整理汇总了PHP中safehtml函数的典型用法代码示例。如果您正苦于以下问题:PHP safehtml函数的具体用法?PHP safehtml怎么用?PHP safehtml使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了safehtml函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: inc_informer_dist
function inc_informer_dist($id, $col, $exclus, $rac, $type, $do = 'aff')
{
include_spip('inc/texte');
if ($type == "rubrique") {
$row = sql_fetsel("titre, descriptif", "spip_rubriques", "id_rubrique = {$id}");
if ($row) {
$titre = typo($row["titre"]);
$descriptif = propre($row["descriptif"]);
} else {
$titre = _T('info_racine_site');
}
} else {
$titre = '';
}
$res = '';
if ($type == "rubrique" and $GLOBALS['spip_display'] != 1 and isset($GLOBALS['meta']['image_process'])) {
if ($GLOBALS['meta']['image_process'] != "non") {
$chercher_logo = charger_fonction('chercher_logo', 'inc');
if ($res = $chercher_logo($id, 'id_rubrique', 'on')) {
list($fid, $dir, $nom, $format) = $res;
include_spip('inc/filtres_images_mini');
$res = image_reduire("<img src='{$fid}' alt='' />", 100, 48);
if ($res) {
$res = "<div style='float: " . $GLOBALS['spip_lang_right'] . "; margin-" . $GLOBALS['spip_lang_right'] . ": -5px; margin-top: -5px;'>{$res}</div>";
}
}
}
}
$rac = spip_htmlentities($rac);
# ce lien provoque la selection (directe) de la rubrique cliquee
# et l'affichage de son titre dans le bandeau
$titre = strtr(str_replace("'", "’", str_replace('"', """, textebrut($titre))), "\n\r", " ");
$js_func = $do . '_selection_titre';
return "<div style='display: none;'>" . "<input type='text' id='" . $rac . "_sel' value='{$id}' />" . "<input type='text' id='" . $rac . "_sel2' value=\"" . entites_html($titre) . "\" />" . "</div>" . "<div class='informer' style='padding: 5px; border-top: 0px;'>" . (!$res ? '' : $res) . "<p><b>" . safehtml($titre) . "</b></p>" . (!$descriptif ? '' : "<div>" . safehtml($descriptif) . "</div>") . "<div style='text-align: " . $GLOBALS['spip_lang_right'] . ";'>" . "<input type='submit' class='fondo' value='" . _T('bouton_choisir') . "'\nonclick=\"{$js_func}('{$titre}',{$id},'selection_rubrique','id_parent'); return false;\" />" . "</div>" . "</div>";
}
示例2: formulaires_login_charger_dist
function formulaires_login_charger_dist($cible = "", $login = "", $prive = null)
{
$erreur = _request('var_erreur');
if (!$login) {
$login = strval(_request('var_login'));
}
// si on est deja identifie
if (!$login and isset($GLOBALS['visiteur_session']['login'])) {
$login = $GLOBALS['visiteur_session']['login'];
}
// ou si on a un cookie admin
if (!$login) {
if (isset($_COOKIE['spip_admin']) and preg_match(",^@(.*)\$,", $_COOKIE['spip_admin'], $regs)) {
$login = $regs[1];
}
}
include_spip('inc/auth');
$row = auth_informer_login($login);
// Construire l'environnement du squelette
// Ne pas proposer de "rester connecte quelques jours"
// si la duree de l'alea est inferieure a 12 h (valeur par defaut)
$valeurs = array('var_login' => $login, 'editable' => !$row, 'cnx' => isset($row['cnx']) ? $row['cnx'] : '', 'auth_http' => login_auth_http(), 'rester_connecte' => _RENOUVELLE_ALEA < 12 * 3600 ? '' : ' ', '_logo' => isset($row['logo']) ? $row['logo'] : '', '_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '', '_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '', '_pipeline' => 'affiche_formulaire_login');
if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
$valeurs['editable'] = true;
}
if (is_null($prive) ? is_url_prive($cible) : $prive) {
include_spip('inc/autoriser');
$loge = autoriser('ecrire');
} else {
$loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
}
// Si on est connecte, appeler traiter()
// et lancer la redirection si besoin
if (!$valeurs['editable'] and $loge) {
$traiter = charger_fonction('traiter', 'formulaires/login');
$res = $traiter($cible, $login, $prive);
$valeurs = array_merge($valeurs, $res);
if (isset($res['redirect']) and $res['redirect']) {
include_spip('inc/headers');
# preparer un lien pour quand redirige_formulaire ne fonctionne pas
$valeurs['_deja_loge'] = inserer_attribut("<a>" . _T('login_par_ici') . "</a>{$m}", 'href', $res['redirect']);
$m = redirige_formulaire($res['redirect']);
}
}
// en cas d'echec de cookie, inc_auth a renvoye vers le script de
// pose de cookie ; s'il n'est pas la, c'est echec cookie
// s'il est la, c'est probablement un bookmark sur bonjour=oui,
// et pas un echec cookie.
if ($erreur == 'cookie') {
$valeurs['echec_cookie'] = ' ';
} elseif ($erreur) {
// une erreur d'un SSO indique dans la redirection vers ici
// mais il faut se proteger de toute tentative d'injection malveilante
include_spip('inc/texte');
$valeurs['message_erreur'] = safehtml($erreur);
}
return $valeurs;
}
示例3: medata_html_dist
/**
* enlever les scripts de html si necessaire
* on utilise safehtml
*
* @param string $file
* @return array
*/
function medata_html_dist($file)
{
$meta = array();
// Securite si pas autorise : virer les scripts et les references externes
// sauf si on est en mode javascript 'ok' (1), cf. inc_version
if ($GLOBALS['filtrer_javascript'] < 1 and !autoriser('televerser', 'script')) {
$texte = spip_file_get_contents($file);
include_spip('inc/texte');
$new = trim(safehtml($texte));
// petit bug safehtml
if ($new != $texte) {
ecrire_fichier($file, $new);
}
}
return $meta;
}
示例4: metadata_svg_dist
/**
* Déterminer les dimensions d'un svg, et enlever ses scripts si nécessaire
*
* On utilise safehtml qui n'est pas apropriée pour ça en attendant mieux
* cf http://www.slideshare.net/x00mario/the-image-that-called-me
* http://heideri.ch/svgpurifier/SVGPurifier/index.php
*
* @param string $file
* @return array Tableau (largeur, hauteur)
*/
function metadata_svg_dist($file)
{
$meta = array();
$texte = spip_file_get_contents($file);
// Securite si pas autorise : virer les scripts et les references externes
// sauf si on est en mode javascript 'ok' (1), cf. inc_version
if ($GLOBALS['filtrer_javascript'] < 1 and !autoriser('televerser', 'script')) {
include_spip('inc/texte');
$new = trim(safehtml($texte));
// petit bug safehtml
if (substr($new, 0, 2) == ']>') {
$new = ltrim(substr($new, 2));
}
if ($new != $texte) {
ecrire_fichier($file, $texte = $new);
}
}
$width = $height = 150;
if (preg_match(',<svg[^>]+>,', $texte, $s)) {
$s = $s[0];
if (preg_match(',\\WviewBox\\s*=\\s*.\\s*(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+(\\d+),i', $s, $r)) {
$width = $r[3];
$height = $r[4];
} else {
// si la taille est en centimetre, estimer le pixel a 1/64 de cm
if (preg_match(',\\Wwidth\\s*=\\s*.(\\d+)([^"\']*),i', $s, $r)) {
if ($r[2] != '%') {
$width = $r[1];
if ($r[2] == 'cm') {
$width <<= 6;
}
}
}
if (preg_match(',\\Wheight\\s*=\\s*.(\\d+)([^"\']*),i', $s, $r)) {
if ($r[2] != '%') {
$height = $r[1];
if ($r[2] == 'cm') {
$height <<= 6;
}
}
}
}
}
$meta['largeur'] = $width;
$meta['hauteur'] = $height;
return $meta;
}
示例5: BOUCLE_art_syndichtml_bb1fa8f06f75cd5c61b4de0a063c1a54
function BOUCLE_art_syndichtml_bb1fa8f06f75cd5c61b4de0a063c1a54(&$Cache, &$Pile, &$doublons, &$Numrows, $SP)
{
static $command = array();
static $connect;
$command['connect'] = $connect = '';
if (!isset($command['table'])) {
$command['table'] = 'syndic_articles';
$command['id'] = '_art_syndic';
$command['from'] = array('syndic_articles' => 'spip_syndic_articles', 'L1' => 'spip_syndic');
$command['type'] = array();
$command['groupby'] = array();
$command['select'] = array("syndic_articles.date", "syndic_articles.titre", "syndic_articles.url", "L1.url_site", "L1.nom_site", "syndic_articles.descriptif");
$command['orderby'] = array('syndic_articles.date DESC');
$command['join'] = array('L1' => array('syndic_articles', 'id_syndic'));
$command['limit'] = '0,5';
$command['having'] = array();
}
$command['where'] = array(quete_condition_statut('L1.statut', 'publie,prop', 'publie', ''), quete_condition_statut('syndic_articles.statut', 'publie,prop', 'publie', ''), array('=', 'L1.id_rubrique', sql_quote(@$Pile[0]['id_rubrique'], '', 'bigint(21) NOT NULL DEFAULT \'0\'')));
if (defined("_BOUCLE_PROFILER")) {
$timer = time() + microtime();
}
$t0 = "";
// REQUETE
$iter = IterFactory::create("SQL", $command, array('squelettes/inc/inc-syndic.html', 'html_bb1fa8f06f75cd5c61b4de0a063c1a54', '_art_syndic', 6, $GLOBALS['spip_lang']));
if (!$iter->err()) {
$l1 = _T('public|spip|ecrire:form_prop_nom_site');
$SP++;
// RESULTATS
while ($Pile[$SP] = $iter->fetch()) {
$t0 .= '
<li>' . (($t1 = strval(interdire_scripts(affdate(normaliser_date($Pile[$SP]['date']))))) !== '' ? '<span>' . $t1 . '</span>' : '') . '
' . (($t1 = strval(interdire_scripts(supprimer_numero($Pile[$SP]['titre'])))) !== '' ? '<a href="' . vider_url($Pile[$SP]['url']) . '" ' . (($t2 = strval(interdire_scripts(attribut_html(supprimer_tags(typo(supprimer_numero(calculer_url($Pile[$SP]['url_site'], $Pile[$SP]['nom_site'], 'titre', $connect, false)), "TYPO", $connect, $Pile[0])))))) !== '' ? 'title="' . $l1 . ' : ' . $t2 . '"' : '') . ' class="spip_out">' . $t1 . '</a>' : '') . '
' . (($t1 = strval(interdire_scripts(typo(supprimer_numero(calculer_url($Pile[$SP]['url_site'], $Pile[$SP]['nom_site'], 'titre', $connect, false)), "TYPO", $connect, $Pile[0])))) !== '' ? '<span style="text-align: right;"><a href="' . calculer_url($Pile[$SP]['url_site'], '', 'url', $connect) . '" ' . (($t2 = strval(interdire_scripts(attribut_html(supprimer_tags(safehtml($Pile[$SP]['descriptif'])))))) !== '' ? 'title="' . $t2 . '"' : '') . ' class="spip_out" style="text-align: right; color: maroon; margin-top:-.5em">' . $t1 . '</a></span>' : '') . '
</li>
';
}
$iter->free();
}
if (defined("_BOUCLE_PROFILER") and 1000 * ($timer = time() + microtime() - $timer) > _BOUCLE_PROFILER) {
spip_log(intval(1000 * $timer) . "ms BOUCLE_art_syndic @ squelettes/inc/inc-syndic.html", "profiler" . _LOG_AVERTISSEMENT);
}
return $t0;
}
示例6: filtre_text_html_dist
function filtre_text_html_dist($t)
{
if (!preg_match(',^(.*?)<body[^>]*>(.*)</body>,is', $t, $r)) {
return appliquer_filtre($t, 'text/plain');
}
list(, $h, $t) = $r;
$style = '';
// recuperer les styles internes
if (preg_match_all(',<style>(.*?)</style>,is', $h, $r, PREG_PATTERN_ORDER)) {
$style = join("\n", $r[1]);
}
// ... et externes
include_spip('inc/distant');
if (preg_match_all(',<link[^>]+type=.text/css[^>]*>,is', $h, $r, PREG_PATTERN_ORDER)) {
foreach ($r[0] as $l) {
preg_match("/href='([^']*)'/", str_replace('"', "'", $l), $m);
$style .= "\n/* {$l} */\n" . str_replace('<', '', recuperer_page($m[1]));
}
}
// Pourquoi SafeHtml transforme-t-il en texte les scripts dans Body ?
$t = safehtml(preg_replace(',<script' . '.*?</script>,is', '', $t));
return (!$style ? '' : "\n<style>" . $style . "</style>") . $t;
}
示例7: afficher_suivi_versions
function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $uniq_auteur = false, $lang = "", $court = false) {
changer_typo($lang);
$lang_dir = lang_dir($lang);
$nb_aff = 10;
$champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps');
if ($uniq_auteur) {
$req_where = " AND articles.statut IN ('prepa','prop','publie')";
$req_where .= " AND versions.id_auteur = $uniq_auteur";
} else {
$req_where = " AND articles.statut IN ('prop','publie')";
}
if (strlen($lang) > 0)
$req_where .= " AND articles.lang=" . sql_quote($lang);
if ($id_secteur > 0)
$req_where .= " AND articles.id_secteur = ".intval($id_secteur);
$req_where = "versions.id_version > 1 $req_where";
$req_sel = "versions.id_version, versions.id_auteur, versions.date, versions.id_article, articles.statut, articles.titre";
$req_from = 'spip_versions AS versions LEFT JOIN spip_articles AS articles ON versions.id_article = articles.id_article';
$revisions = '';
$items = array();
$result = sql_select($req_sel, $req_from, $req_where, '', 'versions.date DESC', "$debut, $nb_aff");
while ($row = sql_fetch($result)) {
$id_article = $row['id_article'];
if (autoriser('voir','article',$id_article)){
$statut = $row['statut'];
$id_version = $row['id_version'];
$id_auteur = $row['id_auteur'];
$date = $row['date'];
$titre = typo(supprime_img($row['titre'],''));
// l'id_auteur peut etre un numero IP (edition anonyme)
if ($id_auteur == intval($id_auteur)
AND $row_auteur = sql_fetsel('nom,email', 'spip_auteurs', "id_auteur = ".sql_quote($id_auteur))) {
$nom = typo($row_auteur["nom"]);
$email = $row_auteur['email'];
} else {
$nom = $id_auteur;
$email = '';
}
$aff = revisions_bouton($id_article, $id_auteur, $id_version, $titre, $statut, $date, $lang_dir, $nom);
if (!$court) {
$bouton_id = "b$id_version-$id_article-$id_auteur";
$aff = bouton_block_depliable($aff,false,$bouton_id)
. debut_block_depliable(false,$bouton_id)
. safehtml(revisions_diff ($id_article, $id_version, $court))
. fin_block();
}
$revisions .= "\n<div class='tr_liste' style='padding: 5px; border-top: 1px solid #aaaaaa;'>$aff</div>";
}
}
if (!$revisions) return '';
else return
revisions_entete_boite($court, $debut, $id_secteur, $lang, $nb_aff, $req_from, $req_where, $uniq_auteur)
. $revisions
. fin_block()
. fin_cadre();
}
示例8: safehtml
// which 'quotes' all HTML-tags and special symbols
// from user input
function safehtml($s)
{
$s = str_replace("&", "&", $s);
$s = str_replace("<", "<", $s);
$s = str_replace(">", ">", $s);
$s = str_replace("'", "'", $s);
$s = str_replace("\"", """, $s);
return $s;
}
if (isset($_POST['description'])) {
$filename = $_POST['filename'];
$size = filesize($upload_dir . '/' . $filename);
$date = date('r', filemtime($upload_dir . '/' . $filename));
$description = safehtml($_POST['description']);
// Let's generate file information page
$html = <<<END
<html><head><title>{$filename} [uploaded by IFRAME Async file uploader]</title></head>
<body>
<h1>{$filename}</h1>
<p>This is a file information page for your uploaded file. Bookmark it, or send to anyone...</p>
<p>Date: {$date}</p>
<p>Size: {$size} bytes</p>
<p>Description:
<pre>{$description}</pre>
</p>
<p><a href="{$web_upload_dir}/{$filename}" style="font-size: large;">download file</a><br>
<a href="uploadtest.php" style="font-size: small;">back to file uploading</a><br>
<a href="{$web_upload_dir}/upload-log.html" style="font-size: small;">upload-log</a></p>
<br><br>Example by <a href="http://www.anyexample.com/">AnyExample</a>
示例9: traitements_previsu
/**
* filtre appliquant les traitements SPIP d'un champ (et eventuellement d'un type d'objet) sur un texte
* (voir la fonction champs_traitements($p) dans : public/references.php)
* ce mecanisme est a preferer au traditionnel #TEXTE*|propre
* traitements_previsu() consulte la globale $table_des_traitements et applique le traitement adequat
* si aucun traitement n'est trouve, alors propre() est applique
*
* @param string $texte : texte source
* @param string $nom_champ : champ (en majuscules)
* @param string $type_objet : objet (en minuscules)
* @return string : texte traite
*/
function traitements_previsu($texte, $nom_champ='', $type_objet='', $connect=null) {
include_spip('public/interfaces'); // charger les traitements
safehtml($t);
global $table_des_traitements;
if(!strlen($nom_champ) || !isset($table_des_traitements[$nom_champ])) {
$texte = propre($texte, $connect);
}
else {
include_spip('base/abstract_sql');
$table = table_objet($type_objet);
$ps = $table_des_traitements[$nom_champ];
if(is_array($ps))
$ps = $ps[(strlen($table) && isset($ps[$table])) ? $table : 0];
if(!$ps)
$texte = propre($texte, $connect);
else
// remplacer le placeholder %s par le texte fourni
eval('$texte=' . str_replace('%s', '$texte', $ps) . ';');
}
// il faut toujours securiser le texte preivusalise car il peut contenir n'importe quoi
// et servir de support a une attaque xss ou vol de cookie admin
// on ne peut donc se fier au statut de l'auteur connecte car le contenu ne vient pas
// forcement de lui
return safehtml($texte);
}
示例10: controle_forum_boucle
function controle_forum_boucle($row, $args) {
$id_forum = $row['id_forum'];
$forum_id_parent = $row['id_parent'];
$forum_id_rubrique = $row['id_rubrique'];
$forum_id_article = $row['id_article'];
$forum_id_breve = $row['id_breve'];
$forum_date_heure = $row['date_heure'];
$forum_titre = echapper_tags($row['titre']);
$forum_texte = $row['texte'];
$forum_auteur = echapper_tags(extraire_multi($row['auteur']));
$forum_email_auteur = echapper_tags($row['email_auteur']);
$forum_nom_site = echapper_tags($row['nom_site']);
$forum_url_site = echapper_tags($row['url_site']);
$forum_stat = $row['statut'];
$forum_ip = $row['ip'];
$forum_id_auteur = $row["id_auteur"];
$r = forum_parent($id_forum);
$avant = $r['avant'];
$url = $r['url'];
$titre = $r['titre'];
$type = $r['type'];
$valeur = $r['valeur'];
$pref = $r['pref'];
if ($documents = sql_allfetsel('doc.id_document, doc.fichier AS fichier', 'spip_documents AS doc LEFT JOIN spip_documents_liens AS lien ON doc.id_document=lien.id_document', 'lien.id_objet='.intval($id_forum)." AND objet='forum'")) {
include_spip('inc/documents');
foreach ($documents as $k => $t) {
$h = generer_url_entite($t['id_document'], 'document');
$documents[$k] = "<a href='".$h."'>".basename($t['fichier'])."</a>";
}
}
switch($forum_stat) {
case 'off':
case 'privoff':
$style = " style='border: 2px #ff0000 dashed;'";
break;
case 'prop':
$style = " style='border: 2px yellow solid; background-color: white;'";
break;
case 'spam':
$style = " style='border: 2px black dotted;'";
break;
default:
$style = "";
break;
}
if ($forum_email_auteur) {
if (email_valide($forum_email_auteur))
$forum_email_auteur = "<a href='mailto:"
.htmlspecialchars($forum_email_auteur)
."?subject=".rawurlencode($forum_titre)."'>".$forum_email_auteur
."</a>";
$forum_auteur .= " — $forum_email_auteur";
}
$suite = "\n<br />$avant<b>$pref\n<a href='$url' class='controle'>$titre</a></b>"
. "<div class='controle'>".justifier(propre($forum_texte))."</div>";
include_spip('public/composer');
if ($forum_notes = safehtml(calculer_notes()))
$suite .= "<div class='notes controle'>".justifier(safehtml($forum_notes))."</div>";
if (strlen($forum_url_site) > 10 AND strlen($forum_nom_site) >= 3)
$suite .= "\n<div style='text-align: left' class='serif'><b><a href='$forum_url_site'>$forum_nom_site</a></b></div>";
return "\n<div><br /><a id='forum$id_forum'></a></div>" .
debut_cadre_forum("", true, "", typo($forum_titre)) .
"<div$style>" .
date_interface($forum_date_heure) .
safehtml("<span class='arial2'> / <b>$forum_auteur</b></span>") .
boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur, "$type=$valeur", $forum_ip, 'controle_forum', $args) .
safehtml(lignes_longues($suite)) .
afficher_forum_mots($id_forum) .
join(', ', $documents) .
"<div class='nettoyeur'></div></div>".
fin_cadre_forum(true);
}
示例11: inclure_previsu
function inclure_previsu($texte,$titre, $url_site, $nom_site, $ajouter_mot, $doc,
$id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic) {
global $table_des_traitements;
$bouton = _T('forum_message_definitif');
include_spip('public/assembler');
include_spip('public/composer');
// appliquer les traitements de #TEXTE a la previsu
// comme on voit c'est complique... y a peut-etre plus simple ?
// recuperer les filtres eventuels de 'mes_fonctions.php' sur les balises
include_spip('public/parametrer');
$evaltexte = isset($table_des_traitements['TEXTE']['forums'])
? $table_des_traitements['TEXTE']['forums']
: $table_des_traitements['TEXTE'][0];
$evaltexte = '$tmptexte = '.str_replace('%s', '$texte', $evaltexte).';';
// evaluer...
eval($evaltexte);
// supprimer les <form> de la previsualisation
// (sinon on ne peut pas faire <cadre>...</cadre> dans les forums)
return preg_replace("@<(/?)form\b@ism",
'<\1div',
inclure_balise_dynamique(array('formulaires/inc-forum_previsu',
0,
array(
'titre' => safehtml(typo($titre)),
'texte' => $tmptexte,
'notes' => safehtml(calculer_notes()),
'url_site' => vider_url($url_site),
'nom_site' => safehtml(typo($nom_site)),
'ajouter_mot' => (is_array($ajouter_mot) ? $ajouter_mot : array($ajouter_mot)),
'ajouter_document' => $doc,
'erreur' => $erreur,
'bouton' => $bouton,
'id_rubrique' => $id_rubrique,
'id_forum' => $id_forum,
'id_article' => $id_article,
'id_breve' => $id_breve,
'id_syndic' => $id_syndic
)
), false));
}
示例12: strip_tags
$id = $item['id'];
$filename = strip_tags($item['filename']);
$added = strip_tags(date("d/m/Y H:i:s", $item['added']));
$descr = format_comment($item['description'] . "\n");
$seeders = strip_tags($item['seeders']);
$leechers = strip_tags($item['leechers']);
// output to browser
?>
<item>
<title><![CDATA[<?php
print htmlspecialchars("[" . TORRENT . "] " . $filename);
?>
]]></title>
<description><![CDATA[<?php
print $descr . " (" . SEEDERS . " " . safehtml($seeders) . " -- " . LEECHERS . " " . safehtml($leechers);
?>
)]]></description>
<link><?php
print $BASEURL;
?>
/index.php?page=torrent-details&id=<?php
print $id;
?>
</link>
<pubDate><?php
print $added;
?>
</pubDate>
</item>
示例13: traitements_previsu
/**
* Filtre appliquant les traitements SPIP d'un champ
*
* Applique les filtres prévus sur un champ (et eventuellement un type d'objet)
* sur un texte donné. Sécurise aussi le texte en appliquant safehtml().
*
* Ce mécanisme est à préférer au traditionnel #TEXTE*|propre
*
* traitements_previsu() consulte la globale $table_des_traitements et
* applique le traitement adequat. Si aucun traitement n'est trouvé,
* alors propre() est appliqué.
*
* @package SPIP\PortePlume\Fonctions
* @see champs_traitements() dans public/references.php
* @global table_des_traitements
*
* @param string $texte
* Texte source
* @param string $nom_champ
* Nom du champ (nom de la balise, en majuscules)
* @param string $type_objet
* L'objet a qui appartient le champ (en minuscules)
* @param string $connect
* Nom du connecteur de base de données
* @return string
* Texte traité avec les filtres déclarés pour le champ.
*/
function traitements_previsu($texte, $nom_champ = '', $type_objet = '', $connect = null)
{
include_spip('public/interfaces');
// charger les traitements
global $table_des_traitements;
if (!strlen($nom_champ) || !isset($table_des_traitements[$nom_champ])) {
$texte = propre($texte, $connect);
} else {
include_spip('base/abstract_sql');
$table = table_objet($type_objet);
$ps = $table_des_traitements[$nom_champ];
if (is_array($ps)) {
$ps = $ps[strlen($table) && isset($ps[$table]) ? $table : 0];
}
if (!$ps) {
$texte = propre($texte, $connect);
} else {
// [FIXME] Éviter une notice sur le eval suivant qui ne connait
// pas la Pile ici. C'est pas tres joli...
$Pile = array(0 => array());
// remplacer le placeholder %s par le texte fourni
eval('$texte=' . str_replace('%s', '$texte', $ps) . ';');
}
}
// il faut toujours securiser le texte prévisualisé car il peut contenir n'importe quoi
// et servir de support a une attaque xss ou vol de cookie admin
// on ne peut donc se fier au statut de l'auteur connecté car le contenu ne vient pas
// forcément de lui
return safehtml($texte);
}
示例14: echapper_html_suspect
/**
* Si le html contenu dans un texte ne passe pas sans transformation a travers safehtml
* on l'echappe
* si safehtml ne renvoie pas la meme chose on echappe les < en < pour montrer le contenu brut
*
* @param string $texte
* @return string
*/
function echapper_html_suspect($texte)
{
if (strpos($texte, '<') === false or strpos($texte, '=') === false) {
return $texte;
}
// on teste sur strlen car safehtml supprime le contenu dangereux
// mais il peut aussi changer des ' en " sur les attributs html,
// donc un test d'egalite est trop strict
if (strlen(safehtml($texte)) !== strlen($texte)) {
$texte = str_replace("<", "<", $texte);
}
return $texte;
}
示例15: strip_tags
$postid = (int) $item['postid'];
$forum = strip_tags($item['name']);
$subject = strip_tags($item['subject']);
$added = strip_tags(date("d/m/Y H:i:s", $item['added']));
$body = format_comment("[b]Author: " . security::html_safe($item['username']) . "[/b]\n\n" . security::html_safe($item['body']) . "\n");
// output to browser
$link = security::html_safe($BASEURL . "/forum.php?action=viewtopic&topicid=" . $topicid . "&page=p" . $postid . "#" . $postid);
?>
<item>
<title><?php
print safehtml("[" . FORUM . "] " . $forum . " - " . $subject);
?>
</title>
<description><?php
print safehtml($body);
?>
</description>
<link><?php
print $link;
?>
</link>
<pubDate><?php
print $added;
?>
</pubDate>
</item>
<?php
}
}