Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - juaxix

Páginas: [1]
1
Aplicaciones Pre-Fabricadas / Re: Sistema de referidos x mi :)
« en: 04 de Abril de 2008, 00:01:04 am »
Cambiad:

mysql_query
("UPDATE referidos SET visitas = '$a1['visitas']+1' WHERE nick = '".$_GET[$get]."'");

por

mysql_query
("UPDATE referidos SET visitas = '".($a1['visitas']+1)."' WHERE nick = '".$_GET[$get]."'");

Por dios ,chicos, instalaros un editor en condiciones!! , usad Eclipse, que os analiza sintácticamente el contenido del PHP mientras lo editáis y podeis corregir los errores directamente!!
Mirad un vídeo de edición con un editor potente que reconoce las clases:
* Eclipse:
http://www.zenphp.es/videos/eclipse2.ogg
* Zend Studio:
http://www.zenphp.es/videos/modelo.ogg
Saludos!  :angel:

2
(X)HTML / Re: Duda encriptación
« en: 26 de Marzo de 2008, 13:34:37 pm »
La solución de MD5 es buena, es un algoritmo de encriptación fuerte que además viene con el motor de bases de datos MySQL, también tienes

base64_decode
($html)

y

base64_encode
($html)

de todas formas, md5 se puede programar en JavaScript...

3
(X)HTML / Re: Uso del frameset
« en: 26 de Marzo de 2008, 13:31:15 pm »
Está bien esto del frameset aunque hoy en dia lo que se lleva es código óptimo usando CSS ,para diseñarlo hay multitud de páginas que nos ayudan a crear nuestra organización de divisiones de la web asi como un CSS optimizado...

4
(X)HTML / Re: [Aporte] Marquesina (marquee) & como modificarla.
« en: 26 de Marzo de 2008, 13:25:45 pm »
Es interesante pero creo que ya nadie la usa por lo que tu comentas, necesitas configurarla y no siempre hace lo que necesitamos que haga,para eso tenemos AJAX y Flash :)

saludos

5
PHP / Re: hacer una modificacion permanente a un archivo mediante formulario
« en: 23 de Marzo de 2008, 02:02:04 am »
es una clase FTP....

6
PHP / Re: Error: T_STRING
« en: 23 de Marzo de 2008, 02:01:15 am »
Pues bájate el PHP Eclipse ;)

7
PHP / Re: Error al mostrar usuarios online.
« en: 23 de Marzo de 2008, 02:00:25 am »
y las tablas de la base de datos,puedes describirlas?
es más puedes poner la dirección del tutorial ?
saludos  ^-^

8
PHP / Re: hacer una modificacion permanente a un archivo mediante formulario
« en: 22 de Marzo de 2008, 19:28:17 pm »
Hay otra entrada del foro que resuelve tus dudas del FTP...de todas formas échale un vistazo a esta clase:
http://www.phpclasses.org/browse/package/1772.html
El otro post ya lo he mirado ;)
saludos

9
PHP / Re: Insertar multiples registros con diferente fecha
« en: 22 de Marzo de 2008, 19:25:52 pm »
Pues asi rápido sólo se me ocurre algo que usé para mi framework, una función como la siguiente que ayude a sumar a una fecha un número de dias:

/**
    * Función que calcula una fecha futura según la cantidad de días que se le proporcionen como argumento
    * Pasa la fecha en formato date('d/m/Y') con el caracter de entrada caracterEntrada y devuelve la suma
    * formateada con el caracter de salida caracterSalida.
    * Adaptación: Aoyama (LSCA. Israel E. Garcia)
    * @param date $fecha
    * @param int $dias
    * @param char $caracterEntrada
    * @param char $caracterSalida
    * @return date
    */
function zen_sumaFechas($fecha$dias,$formato=2,$caracterEntrada="/",$caracterSalida="/")
{
    
$corte split($caracterEntrada,$fecha);
    
$dia $corte[0];
    
$mes $corte[1];
    
$anio $corte[2];
    
$ultimo_dia date"d"mktime(000$mes 10$anio) ) ;
    
$dias_adelanto $dias;
    
$siguiente $dia $dias_adelanto;
    if (
$ultimo_dia $siguiente)
    {
        
$dia_final $siguiente $ultimo_dia;
        
$mes++;
        if (
$mes == '13')
        
{
            
$anio++;
            
$mes = '01';
        
}
        
$fecha_final $dia_final.$caracterSalida.$mes.$caracterSalida.$anio;
    }
    else
    {
        
$fecha_final $siguiente .$caracterSalida.$mes.$caracterSalida.$anio;
    }
    switch (
$formato) {
        case 
1:
            
$r split($caracterSalida,$fecha_final);
            return  
$r[2].$caracterSalida.$r[1].$caracterSalida.$r[0]; //Y-m-d
            
break;
        default:
            return 
$fecha_final//d/m/Y
            
break;
    }
}

Entonces, lo que harías sería 3 inserciones:

$n 
2;
$sql "Insert into calendario(id,actividad,fecha_limite,frecuencia) values(0,";
for (
$i=0$i<2$i++){
 
$sql2."&#39;".addslashes($_POST[&#39;actividad&#39;])."&#39;,&#39;".addslashes($_POST[&#39;frecuencia&#39;])."&#39;,&#39;".
 
zen_sumaFechas($_POST[&#39;fecha&#39;], ($i*31))."&#39;);"; //el post de la fecha en formato dia/mes/año
//Lo que se hace es multiplicar el numero de dias de un mes por el numero de inserción ;)
 
@$r mysql_query($sql2);
 if (!
$r) {
  
trigger_error("La consulta ".$i." ha fallado: ".mysql_error()."<br>".$sql2."<br>",E_USER_WARNING);
 }
}

10
PHP / Re: Duda sobre insertar fecha en Mysql por Php
« en: 22 de Marzo de 2008, 19:12:03 pm »
En zenphp, el framework que estoy escribiendo he añadido las siguientes dos funciones para este tipo de problemas:

/**
 * Convierte fecha de mysql a normal
 *
 * @param date(Y-m-d) $fecha
 * @return date(d/m/Y)
 */
function zen_parsear_fecha_a_normal($fecha){
    
ereg"([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})"$fecha$mifecha);
    return 
$mifecha[3]."/".$mifecha[2]."/".$mifecha[1];
}
/**
 * Convierte fecha de normal a mysql
 *
 * @param date(d/m/Y) $fecha
 * @return date(Y-m-d)
 */
function zen_parsear_fecha_a_mysql($fecha){
    
ereg"([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})"$fecha$mifecha);
    
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
    return 
$lafecha;
}


Para insertar en la base de datos usaremos la función "zen_parsear_fecha_a_mysql", como dice obelich,

$fecha
zen_parsear_fecha_a_mysql($_POST[&#39;fecha&#39;]); //Esto es donde se captura la fecha
$query"insert into datos values (&#39;".dato1."&#39;, &#39;".$fecha."&#39;)";//Aqui donde se insertan los datos a la tabla

Salu2 ó 3! XD

11
PHP / Re: Error: T_STRING
« en: 22 de Marzo de 2008, 19:03:33 pm »
Otro fallo de comilla al principio y al final...,
MAL:

$insertar 
INSERT INTO `conectados_registrados` (nick,ip,tiempoVALUES (&#39;".$_COOKIE[&#39;usuario&#39;]."&#39;,&#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;,&#39;".$tiempo."&#39;);

BIEN:

$insertar 
"INSERT INTO `conectados_registrados` (nick,ip,tiempo) VALUES (&#39;".$_COOKIE[&#39;usuario&#39;]."&#39;,&#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;,&#39;".$tiempo."&#39;)";

Instalate un buen editor que te diga los errores en tiempo de edición ;)

12
Los Retos PHPeros / Re: Reto de paginacion cortando el contenido
« en: 22 de Marzo de 2008, 18:55:26 pm »
En el framework PHP que estoy escribiendo la cosa se simplifica de la siguiente forma:
Tenemos una clase en zenphp/clases/clase_zen_paginador.php:


/**
 * clase_zen_paginador.php
 * @author Juan Belon
 * @copyright LGPL, GPL
 * @package zenphp
 * @version 0.1.1
 * @uses zenphp FrameWork
 * @link http://csl2-zenphp.forja.rediris.es
 * @link http://www.zenphp.es
 * @link https://forja.rediris.es/projects/csl2-zenphp/
 * @magic Clase que devuelve información de números de página para paginar resultados como lo hacen los buscadores [1]  _2_ ...  _3_   _4_
 */
// +----------------------------------------------------------------------
// | zenphp.es
// +----------------------------------------------------------------------
define(&#39;ZF_PAGINAS_POR_PAGINA&#39;,10);
class zen_paginador {
	
/**
	
 * ¿Ha habido algún error?
	
 *
	
 * @var unknown_type
	
 */
    
var $error false;
    
/**
     * Donde se guardan las posiciones de las páginas, ver documentación
     *
     * @var array
     */
    
var $posiciones = array();
    
/**
     * Total de registros
     *
     * @var unknown_type
     */
    
var $total_pags 0;
    
/**
     * Constructor de la clase paginadora
     *
     * @param int $pag_actual
     * @param int $total_pags
     * @param int $numero_indices
     * @return zen_paginador
     */
    
function zen_paginador($pag_actual$total_pags$numero_indices){
        
$this->comprobar($pag_actual$total_pags);
        if(
$this->error == true){
            echo 
_("P&aacute;gina incorrecta")."\r\n"
            
        }
        
$this->total_pags intval($total_pags);
        if((
$pag_actual <= ($numero_indices+1)) && ($total_pags <= ($numero_indices+1))){
            for(
$i=1$i<=$total_pags$i++) {
                if(
$pag_actual == $i) {
                    
$this->posiciones[$i] = "actual";
                } else {
                    
$this->posiciones[$i] = "enlace";
                }
            }    
        } elseif((
$pag_actual <= ($numero_indices+1)) && ($total_pags > ($numero_indices+1)) && ($total_pags <= ($numero_indices*2+1))) {
            for(
$i=1$i<=$total_pags$i++) {
                if(
$pag_actual == $i) {
                    
$this->posiciones[$i] = "actual";
                } else {
                    
$this->posiciones[$i] = "enlace";
                }
            }
        } elseif((
$pag_actual <= ($numero_indices+1)) && ($total_pags > ($numero_indices*2+1))) {
            for(
$i=1$i<=($numero_indices*2+1); $i++) {
                if(
$pag_actual == $i) {
                    
$this->posiciones[$i] = "actual";
                } else {
                    
$this->posiciones[$i] = "enlace";
                }
            }
            
$this->posiciones[$total_pags] = "separadorAntes";
        } elseif((
$pag_actual > ($numero_indices+1)) && ($total_pags <= ($numero_indices*2+1))) {
            for(
$i=1$i<=$total_pags$i++) {
                if(
$pag_actual == $i) {
                    
$this->posiciones[$i] = "actual";
                } else {
                    
$this->posiciones[$i] = "enlace";
                }
            }    
        } elseif((
$pag_actual > ($numero_indices+1)) && ($total_pags > ($numero_indices*2+1))) {
            
$usar_separadorDespues true;
            
$usar_separadorAntes true;
            
            if(
$pag_actual == ($numero_indices+2)) {
                
$ancho_ini 1;
                
$usar_separadorDespues false;
            } else {
                
$ancho_ini $pag_actual-$numero_indices;
                
//$usar_separadorDespues = true;
            
}
            
            if(
$pag_actual < ($total_pags-$numero_indices)) {
                if(
$pag_actual == ($total_pags-($numero_indices+1))){
                    
$ancho_fin $pag_actual+($numero_indices+1);
                    
$usar_separadorAntes false;
                } else {
                    
$ancho_fin $pag_actual+$numero_indices;
                }
            } else {
                
$ancho_fin $total_pags;
                
$ancho_ini = ($total_pags-($numero_indices*2));
                
$usar_separadorAntes false;
            }
            
            if(
$usar_separadorDespues) {
                
$this->posiciones[1] = "separadorDespues";
            }
    
            for(
$i=$ancho_ini$i<=$ancho_fin$i++) {
                if(
$pag_actual == $i)
                {
                    
$this->posiciones[$i] = "actual";
                } else
                {
                    
$this->posiciones[$i] = "enlace";
                }
            }
            
            if(
$usar_separadorAntes) {    
                
$this->posiciones[$total_pags] = "separadorAntes";
            }
        }
    }
    
/**
     * Comprueba que una página esté en el conjunto
     *
     * @param int $pagina
     * @param int $total_pags
     * @return bool
     */
    
function comprobar($pagina$total_pags=-1){
    
	
if (
$total_pags==-1$total_pags=$this->total_pags;
        if(
$pagina $total_pags)
        {
            
$this->error true;
        }
        
        return 
$this->error;
    }
    
/**
     * Devuelve el HTML para paginar resultados
     * @example $html = $paginador->html_paginado($_GET[&#39;pagina&#39;],"index.php/listar/");
     *
     * @param int $pagina
     * @param str $enlace
     * @param bool $mostrar_info Si es true muestra el total y el número de páginas
     * @param int $resultados_por_pagina Si no se especifica se usa ZF_PAGINAS_POR_PAGINA definido en la misma clase
     * @return str
     */
    
function html_paginado($pagina,$enlace,$mostrar_info=true,$resultados_por_pagina=ZF_PAGINAS_POR_PAGINA){
    
	
$totalPaginas ceil($this->total_pags/$resultados_por_pagina); //calcula el total de numero de paginas
    
	
if (
$mostrar_info)
    
	
{
    
	
	
$html  _("Total p&aacute;ginas = ") . $totalPaginas "<br />";
    
	
   
	
$html .= _("N&uacute;mero de p&aacute;gina = ") . $pagina "<br /><br />";
    
	
}
    
	
//mostrar resultados
    
	
$division_ini = ($pagina-1)*$resultados_por_pagina;
    
	
$division $resultados_por_pagina;
	
    
//la primera y ultima pagina siempre se muestran
	
    
//necesitamos un separador entre la primera/ultima pagina asi como en medio de los numeros de pagina
	
    
$separador "...";
	
    foreach(
$this->posiciones as $numero_pagi=>$tipo)
	
    {
        
	
//cada numero tiene un tipo de 4 disponibles
    
	
    
//
	
"actual" - numero de pagina actual;
	
        
//  "enlace" - es el enlace a otros numeros de pagina
        
	
//  "separadorDespues" - primer separador entre numeros de pagina (antes)
        
	
//  "separadorAntes" - ultimo separador (despues de los numeros de pagina)
        
	
switch(
$tipo)
        
	
{
	
            case 
"actual"$html.= &#39;&nbsp;&#39; . $numero_pagi . &#39;&nbsp&#39;;
                
	
break;
	
                
            
	
case 
"enlace"$html .= &#39;&nbsp<a href="&#39;.$enlace.$numero_pagi . &#39;">&#39; . $numero_pagi . &#39;</a>&nbsp;&#39;;
	
                break;
                
	

            
	
case 
"separadorDespues"$html .= &#39;&nbsp<a href="&#39;.$enlace.$numero_pagi . &#39;">&#39; . $numero_pagi . &#39;</a>&nbsp;&#39; . $separador . &#39;&nbsp;&#39;;
	
                break;
                
	

            
	
case 
"separadorAntes"$html .= &#39;&nbsp;&#39; . $separador . &#39;&nbsp;<a href="&#39;.$enlace . $numero_pagi . &#39;">&#39; . $numero_pagi . &#39;</a>&#39;;
	
                break;
        
	
}
    
	
}
    
	
return 
$html;
    }
    
}



y con ella trabajaremos para cargarla ,una vez cargado el sistema con

require_once(&#39;zenphp/zen.php&#39;);

entonces hacemos la carga de la clase y procesamos el contenido donde lo necesitemos, veamos un ejemplo dificil:

 
=========inicio paginador.php =========
    
//generatar un array
    
$resultados range(0710);

    
$resultados_por_pagina 20//20 results on a pagina
    
$totalPaginas ceil(count($resultados)/$resultados_por_pagina); //calcula el total de numero de paginas
    
echo "total p&aacute;ginas = " $totalPaginas "<br />";

    
$pagina $_GET[&#39;p&#39;]; //obtener el numero de pagina
    
echo "n&uacute;mero de p&aacute;gina = " $pagina "<br /><br />";

    
//mostrar resultados
    
$division_ini = ($pagina-1)*$resultados_por_pagina;
    
$division $resultados_por_pagina;
    echo 
"<pre>";
    
print_r(array_division($resultados$division_ini$division));
    echo 
"</pre>";
    
    
    
zen___carga_clase(&#39;zen_paginador&#39;);
    
    //parametros:
    //$pagina = pagina actual
    //$totalPaginas = numero total de paginas
    //3 = numeros a mostrar a la izquierda y a la derecha del numero de pagina actual
    
$pag = new zen_paginador($pagina$totalPaginas3);

    
//la primera y ultima pagina siempre se muestran
    //necesitamos un separador entre la primera/ultima pagina asi como en medio de los numeros de pagina
    
$separador "...";
    foreach(
$pag->posiciones as $numero_pagi=>$tipo)
    {
        
//cada numero tiene un tipo de 4 disponibles
        //  "actual" - numero de pagina actual;
        //  "enlace" - es el enlace a otros numeros de pagina
        //  "separadorDespues" - primer separador entre numeros de pagina (antes)
        //  "separadorAntes" - ultimo separador (despues de los numeros de pagina)
        
switch($tipo)
        {
            case 
"actual": echo &#39;&nbsp;&#39; . $numero_pagi . &#39;&nbsp&#39;;
                
break;
                
            case 
"enlace": echo &#39;&nbsp<a href="index.php?p=&#39; . $numero_pagi . &#39;">&#39; . $numero_pagi . &#39;</a>&nbsp;&#39;;
                
break;
                
            case 
"separadorDespues": echo &#39;&nbsp<a href="index.php?p=&#39; . $numero_pagi . &#39;">&#39; . $numero_pagi . &#39;</a>&nbsp;&#39; . $separador . &#39;&nbsp;&#39;;
                
break;
                
            case 
"separadorAntes": echo &#39;&nbsp;&#39; . $separador . &#39;&nbsp;<a href="index.php?p=&#39; . $numero_pagi . &#39;">&#39; . $numero_pagi . &#39;</a>&#39;;
                
break;
        }
    }

Veamos ahora un ejemplo fácil:

zen___carga_clase
(&#39;zen_paginador&#39;);
$pag intval($datos[0]);
//$bd es una instancia de la clase zen_basedatos ($bd = new zen_basedatos(...) )
$total abs(($bd->seleccion_unica("count(idp) from productos"))/ZF_PAGINAS_POR_PAGINA);
if (
$total==0$total 1;
$p = new zen_paginador($pag$total,4);
$r[&#39;paginacion&#39;] = $p->html_paginado($pag,"index.php/index/",true,ZF_PAGINAS_POR_PAGINA);
$limite = (($pag*ZF_PAGINAS_POR_PAGINA)-1);
if (
$limite<0$limite=0;
//Ahora sólo queda usar una clase de plantillas para mostrar el resultado
//$productos es un zen_modelo_datos ($productos = new zen_modelo_datos("id,nombre...","tabla_productos"))
$productos->condiciones_where .= " limit ".$limite.",".ZF_PAGINAS_POR_PAGINA;
echo 
$productos->html->listado(
	
	
//->html es un zen_html_modelo_datos que se crea automáticamente
 
"productos/lista_productos.html","indice.html","lista_productos",$r //los HTML son plantillas para mostrar los productos
);

13
Aplicaciones Pre-Fabricadas / Re: [RECOPILACION] Pre-Fabricados de Phperos
« en: 22 de Marzo de 2008, 18:42:25 pm »
y los frameworks? yo estoy haciendo uno con todos los retos posibles  :)

14
PHP / Re: Que ay malo en este code?
« en: 22 de Marzo de 2008, 18:31:12 pm »
Muy simple, es un error de sintaxis: a la línea 16 le tienes que poner la comilla doble que le falta...
cambia:

$query2 
mysql_query("SELECT `monedas` FROM `users` WHERE usuario = &#39;".$_COOKIE[&#39;usuario&#39;]."&#39;);

por

$query2 
mysql_query("SELECT `monedas` FROM `users` WHERE usuario = &#39;".$_COOKIE[&#39;usuario&#39;]."&#39;");

Es más,puedes añadir addslashes, para no permitir SQL Injection:

$query2 
mysql_query("SELECT `monedas` FROM `users` WHERE usuario = &#39;".addslashes($_COOKIE[&#39;usuario&#39;])."&#39;");

saludos

Páginas: [1]