Вкарване на html и vars в базата

IzKuFeLiQqQqQ

Registered
Таааа.. нещо не мога се сетя как ще стане следкото:
Искам да вкарам html и php код в базата, но без да го ескейпвам за да си бачка нормално като html
PHP:
<xen:if is="{$visitor.user_id}">

<div class="section visitorPanel">
	<div class="secondaryContent">
	
		<xen:avatar user="$visitor" size="m" img="true" />
		
		<div class="visitorText">
			<h2>{xen:phrase signed_in_as_x_sidebar, 'name={xen:helper username, $visitor, 'NoOverlay'}'}</h2>		
			<div class="stats">
			<xen:hook name="sidebar_visitor_panel_stats">
				<dl class="pairsJustified"><dt>{xen:phrase messages}:</dt> <dd>{xen:number $visitor.message_count}</dd></dl>
				<dl class="pairsJustified"><dt>{xen:phrase likes}:</dt> <dd>{xen:number $visitor.like_count}</dd></dl>
				<dl class="pairsJustified"><dt>{xen:phrase points}:</dt> <dd>{xen:number $visitor.trophy_points}</dd></dl>
<dl class="pairsJustified"><dt>{xen:phrase tokens}:</dt> <dd>{xen:number $visitor.tokens}</dd></dl>





			</div>
			</xen:hook>
		</div>
		
	</div>
</div>

<xen:else />

<div class="section loginButton">		
	<div class="secondaryContent">
		<label for="LoginControl" id="SignupButton"><a href="{xen:link login}" class="inner">{xen:if $xenOptions.registrationSetup.enabled, {xen:phrase sign_up_now}, {xen:phrase log_in}}</a></label>
	</div>
</div>

</xen:if>

<xen:include template="ad_sidebar_below_visitor_panel" />

тва е html-a, а това заявката
PHP:
mysql_query("UPDATE xf_template SET template='".$p1."'")or die(mysql_error());
а грешката е
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'name={xen:helper username, $visitor, 'NoOverlay'}'}</h2>

Как да го вкарам тва чудо... не мога се сетя функция...mysql_espace,htmlspecchars и т.н като сложа... кода не бачка като html...
 
Така:

Тествай и кажи резултата дали те удовлетворява.

Само където имаш единични кавички слагай пред тях " \ ", защото ползвам " ' " в самата функция. Тези чертички после се премахват автоматично.

PHP:
base64_encode();

Тук слагаш цялата информация
записваш в БД


После със

PHP:
base64_decode();

Изваждаш.


Ето ти едно примерче:



PHP:
<?php
$test = base64_encode('<xen:if is="{$visitor.user_id}">



<div class="section visitorPanel">

	<div class="secondaryContent">

	

		<xen:avatar user="$visitor" size="m" img="true" />

		

		<div class="visitorText">

			<h2>{xen:phrase signed_in_as_x_sidebar, \'name={xen:helper username, $visitor, \'NoOverlay\'}\'}</h2>		

			<div class="stats">

			<xen:hook name="sidebar_visitor_panel_stats">

				<dl class="pairsJustified"><dt>{xen:phrase messages}:</dt> <dd>{xen:number $visitor.message_count}</dd></dl>

				<dl class="pairsJustified"><dt>{xen:phrase likes}:</dt> <dd>{xen:number $visitor.like_count}</dd></dl>

				<dl class="pairsJustified"><dt>{xen:phrase points}:</dt> <dd>{xen:number $visitor.trophy_points}</dd></dl>

<dl class="pairsJustified"><dt>{xen:phrase tokens}:</dt> <dd>{xen:number $visitor.tokens}</dd></dl>











			</div>

			</xen:hook>

		</div>

		

	</div>

</div>



<xen:else />



<div class="section loginButton">		

	<div class="secondaryContent">

		<label for="LoginControl" id="SignupButton"><a href="{xen:link login}" class="inner">{xen:if $xenOptions.registrationSetup.enabled, {xen:phrase sign_up_now}, {xen:phrase log_in}}</a></label>

	</div>

</div>



</xen:if>



<xen:include template="ad_sidebar_below_visitor_panel" />');

/**Tazi promenliva test e vkarvash vuv bazata danni*/

echo $test;

echo base64_decode($test);
 
Не не... изхода не трябва се пипа... Смисъл добавка към готова система е.. има и трябва просто добавяне на един ред...
PHP:
$q1 = mysql_query("SELECT * FROM `xf_template` WHERE `template_id`='345'")or die(mysql_error());
$r1 = mysql_fetch_assoc($q1);
$f1 = "trophy\_points\}\<\/dd\>\<\/dl\>";
$rp1 = 'trophy_points}</dd></dl>
<dl class="pairsJustified"><dt>{xen:phrase tokens}:</dt> <dd>{xen:number $visitor.tokens}</dd></dl>
';
$p1 = preg_replace("#".$f1."#i",$rp1,$r1['template']);
echo "<pre>".$p1."</pre>";
mysql_query("UPDATE xf_template SET template='".$p1."'")or die(mysql_error());
 
Ами да, то изхода си седи същия, ти целия ти код си го правиш в някъкъв несвързан текст от порядъка на "AKFO523kdsSDF3452", така го вкарваш в БД, после това го декодирш и го изкараваш както си е било преди.

Виж примера който ти дадох.
 
eddyy93 каза:
Ами да, то изхода си седи същия, ти целия ти код си го правиш в някъкъв несвързан текст от порядъка на "AKFO523kdsSDF3452", така го вкарваш в БД, после това го декодирш и го изкараваш както си е било преди.

Виж примера който ти дадох.

Аз се оправих... то е било заради '... сложих и един str replace ' -> " и стана
 

Back
Горе