<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Phpost - Actualizaciones]]></title>
		<link>https://phpost.es/</link>
		<description><![CDATA[Phpost - https://phpost.es]]></description>
		<pubDate>Mon, 25 May 2026 04:06:55 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Ejecutar SQL desde la administración [Arreglado]]]></title>
			<link>https://phpost.es/thread-322.html</link>
			<pubDate>Fri, 18 Feb 2022 16:26:19 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://phpost.es/member.php?action=profile&uid=23">Miguel92</a>]]></dc:creator>
			<guid isPermaLink="false">https://phpost.es/thread-322.html</guid>
			<description><![CDATA[Esto es básicamente para el <span style="font-weight: bold;" class="mycode_b">administrador principal</span> con el <span style="font-weight: bold;" class="mycode_b">user_id 1</span>, para evitar que otro administrador meta mano.<br />
<br />
1 - En <span style="font-weight: bold;" class="mycode_b">inc/class/c.admin.php</span> buscamos<br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #FF8000">/*<br />&nbsp;&nbsp;&nbsp;&nbsp;saveConfigs()<br />&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">saveConfig</span><span style="color: #007700">()&nbsp;{&nbsp;<br /></span></code></div></div></div><br />
y arriba agregaremos <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #FF8000">#&nbsp;Ejecutamos&nbsp;las&nbsp;consultas!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Solo&nbsp;administrador&nbsp;principal<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">is_member&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">is_admod&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">uid</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Cosultas<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;sqlList&nbsp;</span><span style="color: #007700">=&nbsp;[];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;lines&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"&#092;n"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'sql'</span><span style="color: #007700">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span style="color: #0000BB">&#36;lines&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">htmlspecialchars_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"&#039;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'"'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Quitamos&nbsp;;&nbsp;solo&nbsp;si&nbsp;lo&nbsp;tiene<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">"/(.*);/"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">))&nbsp;</span><span style="color: #0000BB">&#36;sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">)&nbsp;-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">array_push</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sqlList</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">([</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">],&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">in_array</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sqlList</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'1:&nbsp;Se&nbsp;ejecut&amp;oacute;&nbsp;correctamente.'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Hubo&nbsp;un&nbsp;error&nbsp;al&nbsp;ejecutar&nbsp;la/s&nbsp;sentencia/s'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Solo&nbsp;el&nbsp;administrador&nbsp;principal&nbsp;puede.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span></code></div></div></div><br />
2 - En <span style="font-weight: bold;" class="mycode_b">inc/php/ajax/ajax.admin.php</span> buscamos <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #DD0000">'admin-badwords-delete'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;array(</span><span style="color: #DD0000">'n'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'p'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">),&nbsp;<br /></span></code></div></div></div><br />
debajo pegamos<br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #DD0000">'admin-ejecutar-sql'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;array(</span><span style="color: #DD0000">'n'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'p'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">),&nbsp;<br /></span></code></div></div></div><br />
más abajo buscamos<br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">default:<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; die</span><span style="color: #007700">(</span><span style="color: #DD0000">'0:&nbsp;Este&nbsp;archivo&nbsp;no&nbsp;existe.'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">break;&nbsp;<br /></span></code></div></div></div><br />
y arriba pegamos<br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">  &nbsp;   &nbsp; case&nbsp;</span><span style="color: #DD0000">'admin-ejecutar-sql'</span><span style="color: #007700">:<br /></span><span style="color: #0000BB">  &nbsp;   &nbsp;   &nbsp; echo&nbsp;&#36;tsAdmin</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">  &nbsp;   &nbsp; break</span><span style="color: #007700">;&nbsp;<br /></span></code></div></div></div><br />
<br />
3 - En <span style="font-weight: bold;" class="mycode_b">inc/php/admin.php</span> si tienen agregado esto, bórrenlo, ya no se usará <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">}&nbsp;elseif(</span><span style="color: #0000BB">&#36;action&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">'execute'</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;tsAdmin</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">())&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">redirectTo</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;url</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;</span><span style="color: #0000BB">&#36;smarty</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">assign</span><span style="color: #007700">(</span><span style="color: #DD0000">"tsError"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;tsAdmin</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">());&nbsp;<br /></span></code></div></div></div><br />
4 - Luego en <span style="font-weight: bold;" class="mycode_b">tema/templates/t.admin.tpl</span> y buscamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>{elseif &#36;tsAction == 'configs'}<br />
{include file='admin_mods/m.admin_configs.tpl'}</code></div></div><br />
y debajo pegamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>{elseif &#36;tsAction == 'execute'}<br />
{include file='admin_mods/m.admin_execute.tpl'}</code></div></div><br />
5 - En <span style="font-weight: bold;" class="mycode_b">tema/templates/admin_mods/m.admin_sidemenu.tpl</span> buscamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&lt;h4&gt;Configuraci&amp;oacute;n de PHPost&lt;/h4&gt;</code></div></div><br />
y arriba pegamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&lt;li id="a_execute"&gt;&lt;span class="cat-title"&gt;&lt;a href="{&#36;tsConfig.url}/admin/execute"&gt;Ejecutar consultas &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;</code></div></div><br />
6 - En <span style="font-weight: bold;" class="mycode_b">tema/templates/admin_mods/</span> crearemos un archivo llamado <span style="font-weight: bold;" class="mycode_b">m.admin_execute.tpl</span> y agregaremos esto <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&lt;div class="boxy-title"&gt;<br />
&nbsp;&nbsp; &lt;h3&gt;Administrar Base de datos&lt;/h3&gt;<br />
&lt;/div&gt;<br />
&lt;div id="res" class="boxy-content"&gt;<br />
&nbsp;&nbsp; {if &#36;tsSave}&lt;div class="alerts ok"&gt;Tus cambios han sido guardados.&lt;/div&gt;{/if}<br />
&nbsp;&nbsp; {if &#36;tsError}&lt;div class="alerts error"&gt;Hubo problemas al ejecutar las sentencias.&lt;/div&gt;{/if}<br />
<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;h4&gt;Desde aquí tu puedes &lt;u&gt;generar las consultas&lt;/u&gt;, antes de hacerlo, comprueba de que este correctamente.&lt;/h4&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;form method="post" autocomplete="off"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;legend&gt;Consultas&lt;/legend&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;textarea name="sql" id="sql" cols="30" rows="10" placeholder="EJ: ALTER TABLE w_configuracion ADD privado INT(11) NOT DEFAULT 0;"&gt;&lt;/textarea&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;small style="display:block"&gt;&lt;i&gt;Siempre cada consulta debe terminar en ; (punto y coma)&lt;/i&gt;&lt;/small&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type="button" onclick="database.execute();" value="Enviar consulta" class="mBtn btnOk"/&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />
<br />
&lt;/div&gt;</code></div></div><br />
7 - En <span style="font-weight: bold;" class="mycode_b">tema/js/admin.js</span> al final del archivo agregan <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>/** <br />
 * Database<br />
 * para ejecutar consultas y crear copias<br />
*/<br />
var database = new function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;this.execute = () =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;.post(global_data.url + '/admin-ejecutar-sql.php', 'sql=' + &#36;("#sql").val(), h =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch (h.charAt(0)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case '0':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mydialog.alert('Error', h.substring(3), false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case '1':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mydialog.alert('Bien', h.substring(3), true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code></div></div><br />
<br />
Eso sería todo, pero úsenlo con mucho cuidado ya que podrían afectar la base de datos, ejemplo quieren eliminar a un usuario y si colocan su id los eliminará a ustedes..<br />
<br />
NOTA:<br />
Estoy creando algo que incluye esta función, lo cual ustedes van a poder ejecutar consultas, crear copias de seguridad de su base de datos y descargar dicha copia, pero debo averiguar un poco más...]]></description>
			<content:encoded><![CDATA[Esto es básicamente para el <span style="font-weight: bold;" class="mycode_b">administrador principal</span> con el <span style="font-weight: bold;" class="mycode_b">user_id 1</span>, para evitar que otro administrador meta mano.<br />
<br />
1 - En <span style="font-weight: bold;" class="mycode_b">inc/class/c.admin.php</span> buscamos<br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #FF8000">/*<br />&nbsp;&nbsp;&nbsp;&nbsp;saveConfigs()<br />&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">saveConfig</span><span style="color: #007700">()&nbsp;{&nbsp;<br /></span></code></div></div></div><br />
y arriba agregaremos <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #FF8000">#&nbsp;Ejecutamos&nbsp;las&nbsp;consultas!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Solo&nbsp;administrador&nbsp;principal<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">is_member&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">is_admod&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;tsUser</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">uid</span><span style="color: #007700">)&nbsp;===&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Cosultas<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;sqlList&nbsp;</span><span style="color: #007700">=&nbsp;[];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;lines&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"&#092;n"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'sql'</span><span style="color: #007700">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span style="color: #0000BB">&#36;lines&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">htmlspecialchars_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"&#039;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'"'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Quitamos&nbsp;;&nbsp;solo&nbsp;si&nbsp;lo&nbsp;tiene<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">"/(.*);/"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">))&nbsp;</span><span style="color: #0000BB">&#36;sql&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">)&nbsp;-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">array_push</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;sqlList</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">([</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">],&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sql</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">in_array</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;sqlList</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'1:&nbsp;Se&nbsp;ejecut&amp;oacute;&nbsp;correctamente.'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Hubo&nbsp;un&nbsp;error&nbsp;al&nbsp;ejecutar&nbsp;la/s&nbsp;sentencia/s'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Solo&nbsp;el&nbsp;administrador&nbsp;principal&nbsp;puede.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span></code></div></div></div><br />
2 - En <span style="font-weight: bold;" class="mycode_b">inc/php/ajax/ajax.admin.php</span> buscamos <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #DD0000">'admin-badwords-delete'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;array(</span><span style="color: #DD0000">'n'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'p'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">),&nbsp;<br /></span></code></div></div></div><br />
debajo pegamos<br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #DD0000">'admin-ejecutar-sql'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;array(</span><span style="color: #DD0000">'n'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'p'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">),&nbsp;<br /></span></code></div></div></div><br />
más abajo buscamos<br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">default:<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp; &nbsp; die</span><span style="color: #007700">(</span><span style="color: #DD0000">'0:&nbsp;Este&nbsp;archivo&nbsp;no&nbsp;existe.'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB"> &nbsp; &nbsp; &nbsp;</span><span style="color: #007700">break;&nbsp;<br /></span></code></div></div></div><br />
y arriba pegamos<br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">  &nbsp;   &nbsp; case&nbsp;</span><span style="color: #DD0000">'admin-ejecutar-sql'</span><span style="color: #007700">:<br /></span><span style="color: #0000BB">  &nbsp;   &nbsp;   &nbsp; echo&nbsp;&#36;tsAdmin</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">  &nbsp;   &nbsp; break</span><span style="color: #007700">;&nbsp;<br /></span></code></div></div></div><br />
<br />
3 - En <span style="font-weight: bold;" class="mycode_b">inc/php/admin.php</span> si tienen agregado esto, bórrenlo, ya no se usará <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">}&nbsp;elseif(</span><span style="color: #0000BB">&#36;action&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">'execute'</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;tsAdmin</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">())&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">redirectTo</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;url</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;</span><span style="color: #0000BB">&#36;smarty</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">assign</span><span style="color: #007700">(</span><span style="color: #DD0000">"tsError"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;tsAdmin</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">executeSQL</span><span style="color: #007700">());&nbsp;<br /></span></code></div></div></div><br />
4 - Luego en <span style="font-weight: bold;" class="mycode_b">tema/templates/t.admin.tpl</span> y buscamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>{elseif &#36;tsAction == 'configs'}<br />
{include file='admin_mods/m.admin_configs.tpl'}</code></div></div><br />
y debajo pegamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>{elseif &#36;tsAction == 'execute'}<br />
{include file='admin_mods/m.admin_execute.tpl'}</code></div></div><br />
5 - En <span style="font-weight: bold;" class="mycode_b">tema/templates/admin_mods/m.admin_sidemenu.tpl</span> buscamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&lt;h4&gt;Configuraci&amp;oacute;n de PHPost&lt;/h4&gt;</code></div></div><br />
y arriba pegamos<br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&lt;li id="a_execute"&gt;&lt;span class="cat-title"&gt;&lt;a href="{&#36;tsConfig.url}/admin/execute"&gt;Ejecutar consultas &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;</code></div></div><br />
6 - En <span style="font-weight: bold;" class="mycode_b">tema/templates/admin_mods/</span> crearemos un archivo llamado <span style="font-weight: bold;" class="mycode_b">m.admin_execute.tpl</span> y agregaremos esto <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
 <br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&lt;div class="boxy-title"&gt;<br />
&nbsp;&nbsp; &lt;h3&gt;Administrar Base de datos&lt;/h3&gt;<br />
&lt;/div&gt;<br />
&lt;div id="res" class="boxy-content"&gt;<br />
&nbsp;&nbsp; {if &#36;tsSave}&lt;div class="alerts ok"&gt;Tus cambios han sido guardados.&lt;/div&gt;{/if}<br />
&nbsp;&nbsp; {if &#36;tsError}&lt;div class="alerts error"&gt;Hubo problemas al ejecutar las sentencias.&lt;/div&gt;{/if}<br />
<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;h4&gt;Desde aquí tu puedes &lt;u&gt;generar las consultas&lt;/u&gt;, antes de hacerlo, comprueba de que este correctamente.&lt;/h4&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;form method="post" autocomplete="off"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;legend&gt;Consultas&lt;/legend&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;textarea name="sql" id="sql" cols="30" rows="10" placeholder="EJ: ALTER TABLE w_configuracion ADD privado INT(11) NOT DEFAULT 0;"&gt;&lt;/textarea&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;small style="display:block"&gt;&lt;i&gt;Siempre cada consulta debe terminar en ; (punto y coma)&lt;/i&gt;&lt;/small&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type="button" onclick="database.execute();" value="Enviar consulta" class="mBtn btnOk"/&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />
<br />
&lt;/div&gt;</code></div></div><br />
7 - En <span style="font-weight: bold;" class="mycode_b">tema/js/admin.js</span> al final del archivo agregan <span style="font-style: italic;" class="mycode_i">(Actualizado 25.02.22)</span><br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>/** <br />
 * Database<br />
 * para ejecutar consultas y crear copias<br />
*/<br />
var database = new function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;this.execute = () =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;.post(global_data.url + '/admin-ejecutar-sql.php', 'sql=' + &#36;("#sql").val(), h =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch (h.charAt(0)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case '0':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mydialog.alert('Error', h.substring(3), false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case '1':<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mydialog.alert('Bien', h.substring(3), true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code></div></div><br />
<br />
Eso sería todo, pero úsenlo con mucho cuidado ya que podrían afectar la base de datos, ejemplo quieren eliminar a un usuario y si colocan su id los eliminará a ustedes..<br />
<br />
NOTA:<br />
Estoy creando algo que incluye esta función, lo cual ustedes van a poder ejecutar consultas, crear copias de seguridad de su base de datos y descargar dicha copia, pero debo averiguar un poco más...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Iniciar sesión con email]]></title>
			<link>https://phpost.es/thread-315.html</link>
			<pubDate>Wed, 16 Feb 2022 14:41:23 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://phpost.es/member.php?action=profile&uid=23">Miguel92</a>]]></dc:creator>
			<guid isPermaLink="false">https://phpost.es/thread-315.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Iniciar sesión con email</span></span></div>
<br />
Esto es bastante rápido y fácil.<br />
1 - Buscamos en inc/class/c.user.php <br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">loginUser</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;remember&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;ARMAR&nbsp;VARIABLES&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;ARMAR&nbsp;VARIABLES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;pp_password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;CONSULTA&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;pwtype&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'num_rows'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SHOW&nbsp;COLUMNS&nbsp;FROM&nbsp;u_miembros&nbsp;LIKE&nbsp;&#092;'user_pwtype&#092;''</span><span style="color: #007700">))&nbsp;==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'user_pwtype,'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;query&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;user_id,&nbsp;user_password,&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;pwtype&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&nbsp;user_activo,&nbsp;user_baneado&nbsp;FROM&nbsp;u_miembros&nbsp;WHERE&nbsp;LOWER(user_name)&nbsp;=&nbsp;&#092;''</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">.</span><span style="color: #DD0000">'&#092;'&nbsp;LIMIT&nbsp;1'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'fetch_assoc'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;query</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(empty(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">))&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;El&nbsp;usuario&nbsp;no&nbsp;existe.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_pwtype'</span><span style="color: #007700">]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;other_passwords&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;other_passwords</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #0000BB">sha1</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;SMF&nbsp;1.1.x,&nbsp;SMF&nbsp;2.0.x<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;other_passwords</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;Zinfinal<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">in_array</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">&#36;other_passwords</span><span style="color: #007700">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;UPDATE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'UPDATE&nbsp;u_miembros&nbsp;SET&nbsp;user_password&nbsp;=&nbsp;&#092;''</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setSecure</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pp_password</span><span style="color: #007700">).</span><span style="color: #DD0000">'&#092;',&nbsp;user_pwtype&nbsp;=&nbsp;&#092;'0&#092;'&nbsp;WHERE&nbsp;user_id&nbsp;=&nbsp;'</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">].</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">&#36;pp_password</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;CHECAMOS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">]&nbsp;!=&nbsp;</span><span style="color: #0000BB">&#36;pp_password</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Tu&nbsp;contrase&amp;ntilde;a&nbsp;es&nbsp;incorrecta.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_activo'</span><span style="color: #007700">]&nbsp;==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Actualizamos&nbsp;la&nbsp;session<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">session</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">&#36;remember</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Cargamos&nbsp;la&nbsp;información&nbsp;del&nbsp;usuario<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadUser</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;COMPROBAMOS&nbsp;SI&nbsp;TENEMOS&nbsp;QUE&nbsp;ASIGNAR&nbsp;MEDALLAS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">DarMedalla</span><span style="color: #007700">();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;REDERIGIR&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">redirectTo</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;redirectTo</span><span style="color: #007700">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;REDIRIGIR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">else&nbsp;return&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Debes&nbsp;activar&nbsp;tu&nbsp;cuenta'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span></code></div></div></div><br />
y la reemplazaremos por<br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">loginUser</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;remember&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Variable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Filtramos&nbsp;si&nbsp;es&nbsp;nombre&nbsp;o&nbsp;email<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;filter&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILTER_VALIDATE_EMAIL</span><span style="color: #007700">))&nbsp;?&nbsp;</span><span style="color: #DD0000">'email'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'name'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Consultamos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'fetch_assoc'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;user_id,&nbsp;user_name,&nbsp;user_password,&nbsp;user_activo,&nbsp;user_baneado&nbsp;FROM&nbsp;u_miembros&nbsp;WHERE&nbsp;LOWER(user_'</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;filter</span><span style="color: #007700">.</span><span style="color: #DD0000">')&nbsp;=&nbsp;&#092;''</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">.</span><span style="color: #DD0000">'&#092;'&nbsp;LIMIT&nbsp;1'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Comprobamos&nbsp;que&nbsp;el&nbsp;usuario&nbsp;exista<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(empty(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">))&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;El&nbsp;usuario&nbsp;no&nbsp;existe.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Comprobamos&nbsp;la&nbsp;contraseña<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;user&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">&#36;filter&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #DD0000">'email'</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">"user_name"</span><span style="color: #007700">])&nbsp;:&nbsp;</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;check_pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #0000BB">&#36;check_pass</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Comprobamos&nbsp;que&nbsp;el&nbsp;usuario&nbsp;este&nbsp;activo<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_activo'</span><span style="color: #007700">])&nbsp;===&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Actualizamos&nbsp;la&nbsp;session<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">session</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">&#36;remember</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Cargamos&nbsp;la&nbsp;información&nbsp;del&nbsp;usuario<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadUser</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;COMPROBAMOS&nbsp;SI&nbsp;TENEMOS&nbsp;QUE&nbsp;ASIGNAR&nbsp;MEDALLAS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">DarMedalla</span><span style="color: #007700">();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;REDERIGIR&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">redirectTo</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;redirectTo</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;return&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Debes&nbsp;activar&nbsp;tu&nbsp;cuenta'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Tu&nbsp;contrase&amp;ntilde;a&nbsp;es&nbsp;incorrecta.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span></code></div></div></div><br />
Y así de fácil se puede hacer el cambio.]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Iniciar sesión con email</span></span></div>
<br />
Esto es bastante rápido y fácil.<br />
1 - Buscamos en inc/class/c.user.php <br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">loginUser</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;remember&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;ARMAR&nbsp;VARIABLES&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;ARMAR&nbsp;VARIABLES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;pp_password&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;CONSULTA&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;pwtype&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'num_rows'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SHOW&nbsp;COLUMNS&nbsp;FROM&nbsp;u_miembros&nbsp;LIKE&nbsp;&#092;'user_pwtype&#092;''</span><span style="color: #007700">))&nbsp;==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'user_pwtype,'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;query&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;user_id,&nbsp;user_password,&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;pwtype&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&nbsp;user_activo,&nbsp;user_baneado&nbsp;FROM&nbsp;u_miembros&nbsp;WHERE&nbsp;LOWER(user_name)&nbsp;=&nbsp;&#092;''</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">.</span><span style="color: #DD0000">'&#092;'&nbsp;LIMIT&nbsp;1'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'fetch_assoc'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;query</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(empty(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">))&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;El&nbsp;usuario&nbsp;no&nbsp;existe.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_pwtype'</span><span style="color: #007700">]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;other_passwords&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;other_passwords</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #0000BB">sha1</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;SMF&nbsp;1.1.x,&nbsp;SMF&nbsp;2.0.x<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;other_passwords</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;Zinfinal<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">in_array</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">&#36;other_passwords</span><span style="color: #007700">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;UPDATE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'UPDATE&nbsp;u_miembros&nbsp;SET&nbsp;user_password&nbsp;=&nbsp;&#092;''</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setSecure</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;pp_password</span><span style="color: #007700">).</span><span style="color: #DD0000">'&#092;',&nbsp;user_pwtype&nbsp;=&nbsp;&#092;'0&#092;'&nbsp;WHERE&nbsp;user_id&nbsp;=&nbsp;'</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">].</span><span style="color: #DD0000">''</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">&#36;pp_password</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;CHECAMOS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">]&nbsp;!=&nbsp;</span><span style="color: #0000BB">&#36;pp_password</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Tu&nbsp;contrase&amp;ntilde;a&nbsp;es&nbsp;incorrecta.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_activo'</span><span style="color: #007700">]&nbsp;==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Actualizamos&nbsp;la&nbsp;session<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">session</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">&#36;remember</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Cargamos&nbsp;la&nbsp;información&nbsp;del&nbsp;usuario<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadUser</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;COMPROBAMOS&nbsp;SI&nbsp;TENEMOS&nbsp;QUE&nbsp;ASIGNAR&nbsp;MEDALLAS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">DarMedalla</span><span style="color: #007700">();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;REDERIGIR&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">redirectTo</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;redirectTo</span><span style="color: #007700">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;REDIRIGIR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">else&nbsp;return&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Debes&nbsp;activar&nbsp;tu&nbsp;cuenta'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span></code></div></div></div><br />
y la reemplazaremos por<br />
 <br />
<div class="codeblock phpcodeblock"><div class="title">Código PHP:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">loginUser</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;remember&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Variable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;username&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Filtramos&nbsp;si&nbsp;es&nbsp;nombre&nbsp;o&nbsp;email<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;filter&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">FILTER_VALIDATE_EMAIL</span><span style="color: #007700">))&nbsp;?&nbsp;</span><span style="color: #DD0000">'email'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'name'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Consultamos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'fetch_assoc'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">db_exec</span><span style="color: #007700">(array(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'query'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'SELECT&nbsp;user_id,&nbsp;user_name,&nbsp;user_password,&nbsp;user_activo,&nbsp;user_baneado&nbsp;FROM&nbsp;u_miembros&nbsp;WHERE&nbsp;LOWER(user_'</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;filter</span><span style="color: #007700">.</span><span style="color: #DD0000">')&nbsp;=&nbsp;&#092;''</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">.</span><span style="color: #DD0000">'&#092;'&nbsp;LIMIT&nbsp;1'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Comprobamos&nbsp;que&nbsp;el&nbsp;usuario&nbsp;exista<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(empty(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">))&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;El&nbsp;usuario&nbsp;no&nbsp;existe.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Comprobamos&nbsp;la&nbsp;contraseña<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;user&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">&#36;filter&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #DD0000">'email'</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">"user_name"</span><span style="color: #007700">])&nbsp;:&nbsp;</span><span style="color: #0000BB">&#36;username</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;check_pass&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">md5</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;password</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_password'</span><span style="color: #007700">]&nbsp;===&nbsp;</span><span style="color: #0000BB">&#36;check_pass</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">#&nbsp;Comprobamos&nbsp;que&nbsp;el&nbsp;usuario&nbsp;este&nbsp;activo<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">intval</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_activo'</span><span style="color: #007700">])&nbsp;===&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Actualizamos&nbsp;la&nbsp;session<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">session</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;data</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">],&nbsp;</span><span style="color: #0000BB">&#36;remember</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Cargamos&nbsp;la&nbsp;información&nbsp;del&nbsp;usuario<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadUser</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;COMPROBAMOS&nbsp;SI&nbsp;TENEMOS&nbsp;QUE&nbsp;ASIGNAR&nbsp;MEDALLAS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">DarMedalla</span><span style="color: #007700">();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">/*&nbsp;REDERIGIR&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if(</span><span style="color: #0000BB">&#36;redirectTo&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">NULL</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">&#36;tsCore</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">redirectTo</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;redirectTo</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;return&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Debes&nbsp;activar&nbsp;tu&nbsp;cuenta'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;return&nbsp;</span><span style="color: #DD0000">'0:&nbsp;Tu&nbsp;contrase&amp;ntilde;a&nbsp;es&nbsp;incorrecta.'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span></code></div></div></div><br />
Y así de fácil se puede hacer el cambio.]]></content:encoded>
		</item>
	</channel>
</rss>