Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/09/2013, 21:48
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: exec() Creando Web personal de Peliculas

Resulta que en tu PC funciona el exec() porque tanto el servidor como el cliente están en la misma máquina.

Si lo intentas desde un servidor remoto nunca vas a poder hacerlo, porque PHP se ejecuta en el servidor y, en caso de que funcione el exec(), tu pc ni cuenta se dará de eso.

Tal vez con Javascript haya una opción, pero los navegadores decentes no permiten ejecutar programas por cuestiones de seguridad; aunque, pensándolo bien, podría ser tan sencillo como hacerlo directamente con un enlace en HTML:

Código HTML:
Ver original
  1. <a href="k:\peliculas\ejemplo.mp4">Ver película</a>

El problema con la paginación no es tan difícil:

Código PHP:
Ver original
  1. // Esto está mal, porque no necesitas leer todas las películas para paginarlas
  2.     $consulta=mysql_query("select * from peliculas ORDER BY id DESC");
  3.     $nro_reg=mysql_num_rows($consulta);
  4.    
  5.     if ($nro_reg==0){
  6.         echo 'No se han encontrado Peliculas';
  7.     }
  8.    
  9.     $reg_por_pagina=10;
  10.     // Esto también está mal, porque usas @ para ocultar posibles errores
  11.     @$nro_pagina=$_GET['num'];
  12.  
  13.     if (is_numeric($nro_pagina))
  14.         $inicio=($nro_pagina-1)*$reg_por_pagina;
  15.         else
  16.         $inicio=0;

Más o menos debería quedar así:

Código PHP:
Ver original
  1. // Usa COUNT(*) para saber cuantos registros hay
  2.     $consulta=mysql_query("select COUNT(*) from peliculas") or die('Error en consulta: ' . mysql_error()) ;
  3.     $nro_reg=mysql_result($consulta, 0);
  4.    
  5.     if ($nro_reg==0){
  6.         // Si no hay nada para mostrar, finaliza el script.
  7.         die('No se han encontrado Peliculas');
  8.     }
  9.    
  10.     $reg_por_pagina=10;
  11.     // La forma correcta de obtener un dato de $_GET o $_POST
  12.     // Es verificando que exista y sea válido
  13.     if(isset($_GET['num']) && int_val($_GET['num']) > 0) {
  14.          $nro_pagina = int_val($_GET['num']);
  15.     } else {
  16.          $nro_pagina = 1;
  17.     }
  18.  
  19.     // De hecho, ese if lo puedes resumir con asignación ternaria:
  20.     $nro_pagina = (isset($_GET['num']) && int_val($_GET['num']) > 0) ? int_val($_GET['num']) : 1;
  21.  
  22.     // Ahora hay que calcular la última página
  23.     // Usamos ceil() para obtener un entero redondeado siempre hacia arriba
  24.     $can_pagina = ceil($nro_reg / $reg_por_pagina);
  25.  
  26.     // Verifica que la página actual esté dentro de los límites permitidos
  27.     if($nro_pagina > $can_pagina) {
  28.           $nro_pagina = $can_pagina;
  29.     }
  30.  
  31.     // Ahora sí obtienes el inicio
  32.     $inicio = ($nro_pagina - 1) * $reg_por_pagina;

Con eso debería funcionar correctamente.
__________________
- León, Guanajuato
- GV-Foto