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.


Temas - gatoher

Páginas: [1] 2
1
Hola a todos!! Estoy viendo las funciones anónimas en php en la documentación oficial. Cuando llego al ejemplo de un carrito  no comprendo como como el método llamadaDeRetorno accede a las variables cantidad y producto pues no se las pasa como un argumento y no están instanciadas en ninguna parte.Solo están declaradas en el método añadir. ¿Podría alguien explicarme como tiene acceso a ellas?

Código: [Seleccionar]
class Carro
{
    const PRECIO_MANTEQUILLA = 1.00;
    const PRECIO_LECHE       = 3.00;
    const PRECIO_HUEVOS      = 6.95;

    protected $productos = array();

    public function añadir($producto, $cantidad)
    {
        $this->productos[$producto] = $cantidad;
    }

    public function obtenerCantidad($producto)
    {
        return isset($this->productos[$producto]) ? $this->productos[$producto] :
               FALSE;
    }

    public function obtenerTotal($impuesto)
    {
        $total = 0.00;

        $llamadaDeRetorno =
            function ($cantidad, $producto) use ($impuesto, &$total)
            {
                $precioUnidad = constant(__CLASS__ . "::PRECIO_" .
                    strtoupper($producto));
                $total += ($precioUnidad * $cantidad) * ($impuesto + 1.0);
            };

        array_walk($this->productos, $llamadaDeRetorno);
        return round($total, 2);
    }
}

$mi_carro = new Carro;

// Añadir algunos artículos al carro
$mi_carro->añadir('mantequilla', 1);
$mi_carro->añadir('leche', 3);
$mi_carro->añadir('huevos', 6);

// Imprimir el total con un impuesto de venta del 5%.
print $mi_carro->obtenerTotal(0.05) . "\n";
// El resultado es 54.29
?>


2
Hola a todos, estoy algo atascado con un problema, bueno ya digo que de javascript no estoy muy puesto. Estoy tratando de crear una clase en javascript que reciba dos parámetros, una con una opcion para que luego PHP carge segun la petición unos combos o selects u otros. El segundo parámetro es que archivo PHP va encargarse de ello, esta claro que hay varios.

Bueno mi idea era esa, tener un script en javascript que intanciara una peticion  XMLHttpRequest y luego la hiciera y devolviera un objeto JSON con los datos.

Esta clase o script, no he conseguido hacer de verdad una clase  javascript :'(, pero me funciona, pero con una pega. Tengo que poner un alert para que le de tiempo a cargar el objeto JSON.

Os la pongo:

Código: [Seleccionar]
var objCarg;
   
function ConexionAJAX(archivo, opcion) {
           
               
     this.crearConexionAJAX =  function devuelvoConexionAJAX() {
     
            if(window.XMLHttpRequest){
                peticion = new XMLHttpRequest();
            }else if (window.ActiveXObject){
                peticion= new ActiveXObject('Microsoft.XMLHTTP');
                }
           
            peticionCargar =  peticion;
            peticionCargar.onreadystatechange = cargoDatosConexion;
//Aqui le digo que archivo PHP se va a encargar de trabajar e
            peticionCargar.open("POST", "../Controlador/Elementos_AJAX/"+archivo, true);
            peticionCargar.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//Dentro de cada archivo hay varios if, dependiendo de la opcion se encarga un metodo o otro
            peticionCargar.send(opcion);
           
           
        function cargoDatosConexion() {
                         
            if(this.readyState === READY_STATE_COMPLETE && this.status === 200){
                //funciona
                try{
                    objCarg = JSON.parse(peticionCargar.responseText);
                   
                } catch(e){
                   
            }
               
            } 
           
                       
        }
             //alert('dddd'); si descomento funciona perfecto
            return objCarg;
    };
           
   };
   
    Bueno lo llamo asi desde cualquier script:

Código: [Seleccionar]
    var conRegistrarse  = new ConexionAJAX('cargarElementos.php?"', "opcion=PG");
//Metodo que javascript que carga los options para verlos
            cargarGeneroRegistrarse(conRegistrarse.crearConexionAJAX());
            delete conRegistrarse;

Sé que el problema esta que cuando creo la instancia el metodo:

    peticionCargar.onreadystatechange = cargoDatosConexion;

No tienen tiempo a recuperar los datos, ya que el script no se para a esperarlos  ;D, por eso si descomento el alert devuelve undefined.

A mi me gustaria poder hacer que el metodo principal:

 this.crearConexionAJAX =  function devuelvoConexionAJAX()

me devolviera el objeto ya cargado JSON, osea return objCarg. Pero se me ha atragantado  :-\.

Supongo que haciendo una clase de verdad se podría solucionar esto. ¿Alguna ayuda?

3
Pues me gustaría saber si alguien me puede explicar una parte de un método que no llego a entender. La verdad que en C no estoy muy puesto. Mejor comento lo que comprendo y me explicais la parte que tengo en duda. Pongo el método:

Código: [Seleccionar]

//HIJOS PARALELOS
void ejemplo2(){
    NUM_HIJOS = 3; // ejemplo
    int ret, i;
 
for (i=0; i<NUM_HIJOS; i++) {
ret = fork(); //Aqui generamos un nuevo proceso
if (ret == 0) {
/* estamos en alguno de los hijos. */
printf("Yo soy el hijo %d, mi padre es PID= %d, yo soy PID= %d\n", i,getppid(), getpid());

                      //Este exit solo acaba el proceso en ejecución
                      //ya que el bucle si hace 3 ciclos
exit(EXIT_SUCCESS);
               
              //Solo si hay un error al crear el proceso
} else if (ret == -1) {
perror("fallo en fork");
exit(EXIT_FAILURE);
}
       //fin for
}

        //aqui llega despues de crear el proceso hijo por la linea de antes de
        //exit(EXIT_SUCCESS);
ret = wait(NULL); // ¿¿¿ ret vale -1 ????

       //A partir de aqui no lo entiendo
      //A mi forma de ver aqui nunca entraría
while (ret > 0) {
ret = wait(NULL);
}
/*Esto tampoco lo entiendo*/
if (ret == -1 && errno != ECHILD) {
perror("fallo en wait");
exit(EXIT_FAILURE);
}
}   

   No se si me expliado, la verdad.

4
Hola a todos, tengo un problema al llamar a esta función, es un ejemplo de crear varios procesos:

Como se puede ver espera un primer parametro int y un array tipo char.


Código: [Seleccionar]
void crearPadreHijo(int argc, char argv[]){

   if(argc != 2) {
        printf("Numero de parametros incorrectos. Uso: %s [entero]\n",argv[0]);
        exit(EXIT_FAILURE);
    }

    int var=atoi(argv[1]);
    printf("Entrada: %d\n",var);

    int ret;
    ret=fork();
    if(ret>0) {
        /* tratamiento del padre */
        var+=2;
        printf("Padre: %d\n",var);
        wait(NULL);
    }
    else if(ret == 0) {
        /* tratamiento del hijo */
        var-=4;
        printf("Hijo: %d\n",var);
                exit(EXIT_SUCCESS);

    }
    else if(ret == -1) {
        perror("Fallo en fork()\n");
        exit(EXIT_FAILURE);
    }


}

Desde main hago:

char arr[10];
    arr[0] = "1";

    crearPadreHijo(2, arr);

Y al compilar me responde:

main.c: In function ‘crearPadreHijo’:
main.c:103:3: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
   printf("Numero de parametros incorrectos. Uso: %s [entero]\n",argv[0]);
   ^
main.c:107:2: warning: passing argument 1 of ‘atoi’ makes pointer from integer without a cast [enabled by default]
  int var=atoi(argv[1]);
  ^
In file included from main.c:15:0:
/usr/include/stdlib.h:147:12: note: expected ‘const char *’ but argument is of type ‘char’
 extern int atoi (const char *__nptr)
            ^
main.c: In function ‘main’:
main.c:143:12: warning: assignment makes integer from pointer without a cast [enabled by default]
     arr[0] = "1";
            ^

He probado de varias maneras y no consigo que funcione.

5
Holaa todos estoy tratando de que apache al poner localhost me redirija a un directorio por ejemplo /var/www/html/xxx

Llevo un rato intentandolo pero no consigo hacerlo. Modifico en apache2.conf  esto:

<Directory /var/www/html/xxx>
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
   Allow from all
</Directory>

y luego en sites-enabled modiico el 000-default.conf y le pongo:
    DocumentRoot /var/www/html/xxx

Pero cuando intento entrar me dice Forbidden You don't have permission ...

¿Alguna idea como podría hacerlo?

6
Hola a todos, he instalado webmail como servidor de correo. Me funciona perfeto con hotmail, 'eso si los correos van a SPAM 'pero con gmail no me funciona, me devuelve un correo que más enos dice:

Action: failed
Status: 5.7.1
Remote-MTA: dns; gmail-smtp-in.l.google.com
Diagnostic-Code: smtp; 550-5.7.1 [60.210.120.03       1] Our system has
    detected an unusual rate of 550-5.7.1 unsolicited mail originating from
    your IP address. To protect our 550-5.7.1 users from spam, mail sent from
    your IP address has been blocked. 550-5.7.1 Please visit 550-5.7.1
    https://support.google.com/mail/?p=UnsolicitedIPError to review our 550
    5.7.1 Bulk Email Senders Guidelines. qf11si38849529wjb.173 - gsmtp

¿Le ha pasado a alguien? ¿Como podría solucionarlo?

7
Estoy probando un código y no me funciona os lo pongo:

Código: [Seleccionar]
funcion_rellenaVector( int n_elem, int* vector){

int i;
  for ( i=0; i<n_elem; i++ ){
  //vector[i] = 0; //si funciona
*(vector++)= 0;//Avanzamos la posicion del vector, pero no funciona
printf("Vector: %d \n\n", vector[i]);
}
}

main{
int otro_vector [100];

  /* rellena los elems. del 150 al 199 */
  rellena_de_ceros ( 50, otro_vector+150 );
}
}

¿Que esta mal en esa linea,? Como ++ tiene más preferencia que * lo he puesto asi, pero no me funciona.

8
   Hola a todos, estoy haciendo un programa en c# no c++. Y la verdad que estoy un poco  :o. Nunca he usado c#, yo he usado java y php y estoy teniendo problemas para trabajar con strings.
   No puedo crear variables tipo string, y cuando creo una variable tipo char, por ejemplo :

Código: [Seleccionar]
    char c[5] = "casa";


  no se como mostar todo su valor en un printf. Como puedo trabajar con variables tipo string

9
   Hola a todos, tengo un problema con javascript. Quiero usar dos archivos que al cargarse en el evento onload recojan valores y cargen combos, selects, etc de archivos php. Sorpresa ha sido cuando si en dos scripts js pones el evento onload solo se carga, 'por decirlo asi' el ultimo.

   Entonces me preguntaba si habia una forma de recojer todas las variables que fuera a necesita en un archivo JS, como elementos html para utilizarlos en eventos, su contenido etc, y poder usarlo en varios scripts JS.

   Mi intencion era tener un script que cargara todos los selects, combobox etc, y luego varios scripts para hacer con ello lo que quisiera. Pero al poner el onload en cada script solo se me carga el ultimo.

   ¿Como podría recojer esos elementos html o su contenido en cada script que yo quisiera?

   No se si me explico.

10
Hola a todos estoy intentando hacer una sentencia preparada que usa un string, el problema es que quiero usar los comodines tipo %.

Os pongo un trozo de codigo para que os hagais una idea:

Código: [Seleccionar]
$sqlBuscador="Select palabra from pbs_queridas where palabra like  [b]:buscar%[/b] limit 5";   
                   
               
                $stm3 = $con->prepare($sqlBuscador);
                $stm3->bindValue(":buscar", $buscar, PDO::PARAM_STR);
                $stm3->execute();
                $tmp3 = $stm3->fetchAll();

   Como veias el :buscar recive un string pero en la select yo quiero usar el comodin %. Pero he probado de varias formas y me da error.

11
Hola a todos tengo un problema con un objeto que me devuelve JSON. En un campo de formulario un usuario puede escribir hasta 5 palabras, pero no es obligatorio.

Cuando trato de mostrar las palabras con una petición JSON cuando llega al primer campo que el usuario no ha escrito me responde ObjJSON[0][3] is undefined.

He probado con esto:

if (typeof(objSlider[1][3].palabras) !== "undefined") {
                alert("bueno");
        }else{
                alert('malo');
        }

Pero no me funciona y el script se me para. ¿Como podria evitar esto?

12
Hola a todos, la verdad que me he quedado parado con una select que quiero hacer y me he quedado.

La simplifico, a ver:

Hay 3 tablas como veis Post digamos es la central y tiene una relación de 1 => muchos con usuario y tiempo_cambio. Yo quiero en una select por ejemplo recuperar el nick del usuario y el tiempo de cambio de la tabla tiempo de cambio.

Por ejemplo esta select recupera el nick de la tabla usuario, Como comento es un ejemplo simplificado:

select nick from usuario as usu, post as p where p.idUsuario = usu.idUsuario and p.idUsuario = 12

¿Yo podría en una misma select sacar tiempo de la tabla tiempo_cambio y el nick del usuario?

Esquema de las tablas:

Tabla usuario: idUsuario (INT), nick (VARCHAR 25), password (CHAR 12), email (VARCHAR 45), fecha (DATE), admin (TINYINT 1)

Tabla post: idPost (INT) idUsuario (INT), secciones_idsecciones (TINYINT 20), tiempo_cambio_idTiempoCambio (INT), titulo (VARCHAR 60), comentario (VARCHAR 255), precio (VARCHAR 10), fechaPost (DATE)

Tabla tiempo_cambio: idTiempoCambio (INT), tiempo (VARCHAR 25)



13
De todo un poco... / Tener dos hostings en apache 2.4 montado en ubuntu
« en: 14 de Septiembre 2016, 12:27 »
   Hola a todos, estoy teniendo un problema pues despues de intalar apache 2.4 me sucede que cuando creo dos host y pongo localhost solo me aparece el ultimo host.
Mi idea era de en caso de poner localhost me apareciera el directorio con todas las web que tengo en el localhost y en caso de escribir localhost/ejemplo1.html apareciera esta y si pusiera localhost/ejemplo2.html apareciera esta ultima.
He mirado ya en varios sitios como hacerlo y he probado de varias formas. Alguien sabe que podría estar haciendo mal.

14
Pongo aqui el tema, creo que es el sitio mas adecuado:

Hola a todos, llevo un par de dias peleandome con bind9 montado en ubuntu 14.04. Me funciona perfectamente en local, pero quiero hacer que las paginas sen accesibles desde el exterior de mi red. Para eso, he abierto el puerto 80 al router, ip statica al servidor y tengo un dominio no-ip. Cuando hago ping al dominio me responde mi ip, osea me redirige bien.

La configuracion de bind creo esta bien como comento ya que localmente me funcionan y veo ls webs, pero es externamente cuando desde otr red quiero acceder a ellas que no consigo que funcione.

Pongo un par de archivos de configuracion:

//Archivo de resolucion directa

@ IN SOA ddns.net. root.ddns.net. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ddns.net.
ddns.net. IN A 192.168.1.100
dns.ddns.net. IN A 192.168.1.100
pc1.ddns.net. IN A 192.168.1.100
www IN A 192.168.1.100
miweb.ddns.net. IN A 192.168.1.100 //esta web es la que no se me ve desde exterior

Yo creo que el problema esta en el archivo /etc/resolv.conf que cada vez que reinicio se sobreescribe con los datos de /etc/network/interfaces. Os pongo los dos archivos:

//etc/resolv.conf

# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.100
search ddns.net //se elimina cada vez que se reinici pc como muy bien dice en los comentarios

//etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.100 ///Igual el error esta aqui

¿Alguna ayuda por favor?

15
Hola a todos, a ver estoy haciendo una consulta de varias tablas. Una de ella se guardan imagenes de un usuario, relacion tipica uno a muchos.

Yo solo estoy interesado que me devuelva una imagen aunque el usuario tenga 10. ¿Como se podría hacer eso? Quiero limitar ese campo a 1.

select u.nick, prov.nombre, post.fechaPost, post.titulo, post.comentario, img.ruta 'aqui solo quiero que me devuelva 1 imagen'
from usuario AS u, post AS post, provincias AS prov, imagenes AS img  order by post.fechaPost

16
 Hola a todos, me pasa una cosa curiosa. A ver estoy cargando una imagen desde JSON, todo funciona perfecto pero la primera vez. Osea, al pinchar en un boton se hace una consulta a una bbdd extrae la url y se muestra en pantalla.

Pero el usuario puede darle las veces que quiera y mientras queden imagenes se tienen que mostrar y conservar en la pantalla las ya mostradas.

  A mi lo que me ocurre es que me sobreescribe las imagenes. He intentando crear hijos desde javascript pero sin resultado, una imagen machaca la otra.

Los hijos los he creado así:

   
Código: [Seleccionar]

/*Cargamos la ultima imagen selecionada por el usuario*/
function cargarUltimaImagen(objLastImg){
        var li = document.createElement('li');
        var img = document.createElement('img');
        img.setAttribute("src", objLastImg[0].ruta);
        li.appendChild(img);
        fotos.appendChild(li); //fotos es un ul donde deberían insertar los hijos

}
   


¿Alguna idea?

17
Estoy viendo un metodo para cargar varias clases simultáneamente con PHP, estoy haciéndolo asi:

   
Código: [Seleccionar]
   spl_autoload_register(function($class){
            $class = str_replace("..", "", $class);
            require_once("validar/$class.php");
           
        });
   

   Así funciona perfectamente pero las clases están en el mismo directorio. A mi me gustaría que estuvieran en directorios distintos por el tema de orden. Estoy wampServer Windows y intento:

 
Código: [Seleccionar]
spl_autoload_register(function($class){
            $class = str_replace("..", "", $class);
            set_include_path('.;validar;entidades');//los dos directorios donde tengo los archivos
            require_once("validar/$class.php");
           
        });
 

  Pero me da error.

18
Hola me gustaría saber si hay una forma de llamar a métodos que estén en un script JavaScript o Jquery desde un archivo PHP. O sea, despues de hacer una consulta a una bbdd desde PHP  recibiendo un resultado 'true/false' poder llamar a metodos en un script Jquery a parte para mostrar y esconder elementos.

19
A ver, os cuento mi problemilla, tengo un formulario que tiene varios 'select' que se cargan con JSON. Todo funciona perfecto hasta que meto el formulario dentro de un método. Vamos, que cuando aprietas el boton de registrarse por ejemplo y se muestra el formulario pues entonces dejan de cargarse los 'selects'.

Si el formulario lo saco de la función y se carga con la pagina, claro ya es accesible desde el script de javaScript.

Pongo algo de código pero tengo claro que esto ocurre por que el JSON se carga con la página, y el formulario no se carga en el DOM hasta que no se pulsa el boton. ¿Como puedo solucionar esto?

   
Código: [Seleccionar]
echo'<section id="login_form" class="oculto login_form_tamanyo" >';
    echo'<h4>Introduzca sus datos</h4>';
    echo'<form name="logeo" action="index.php" method="POST" id="form_login">';
        echo'<fieldset>';
        echo'</fieldset>';
                echo'</form>';
        echo'</section>';


   El JSON no lo pongo por que como digo me funciona:

     
Código: [Seleccionar]
    window.onload=function(){
     //Esto es el select que se crea al pulsar el boton
     provincias = document.getElementById('provincia');
     

20
Estoy peleando por que quiero conseguir que un formulario no sea enviado si todos los campos obligatorios son rellenados. Ya tengo mis funciones en JQuery y PHP, pero cuando te dejas un campo obligatorio si, el formulario vuelve a cargarse y se marca el campo en blanco o no rellenado correctamente.

 Lo que ocurre que creo un objeto con los datos recibidos, y cada vez que se envia el formulario se instancia aun cuando no esten todos los campos obligatorios rellenados.

Para evitar esto tengo, antes de instanciar el objeto compruebo que no hay ningun null,¿ pero como compruebo si un campo es correcto por ejemplo una contraseña?

Osea, no habría una forma de evitar que el formulario se enviase. No sé si me explico.

Páginas: [1] 2

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".