Foros del Web » Programando para Internet » PHP »

trabaja bien en php 5.4.7 pero no en php 7

Estas en el tema de trabaja bien en php 5.4.7 pero no en php 7 en el foro de PHP en Foros del Web. Bueno en mi localhost tengo instalado PHP 5.4.7 y funciona bien el siguiente script, pero en mi Virtual Private Server con php 7.0.9 no funciona ...
  #1 (permalink)  
Antiguo 04/08/2016, 08:52
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 9 años, 8 meses
Puntos: 4
trabaja bien en php 5.4.7 pero no en php 7

Bueno en mi localhost tengo instalado PHP 5.4.7 y funciona bien el siguiente script, pero en mi Virtual Private Server con php 7.0.9 no funciona me dice Internal Server Error, a que se debe?



Código PHP:
Ver original
  1. define('IN_MYBB', 1);
  2. require_once './global.php';
  3. class blog{
  4.     function mostrar(){
  5.         global $mybb,$db, $templates, $parser, $forum;
  6.         //Esto lo agarre del foro, para que me agarre los saltos de linea automaticamente.
  7.         $parser_options['allow_html'] = $forum['allowhtml'];
  8.         $parser_options['allow_mycode'] = $forum['allowmycode'];
  9.         $parser_options['allow_smilies'] = $forum['allowsmilies'];
  10.         $parser_options['allow_imgcode'] = $forum['allowimgcode'];
  11.         $parser_options['allow_videocode'] = $forum['allowvideocode'];
  12.         $parser_options['me_username'] = $post['username'];
  13.         $parser_options['filter_badwords'] = 1;
  14.         $sql="SELECT pid, tid, subject, message FROM mybb_posts WHERE fid = '14' ORDER BY pid ASC";
  15.         $resultado = $db->query($sql);
  16.         $g=1;
  17.         while ($res=$db->fetch_array($resultado)){
  18.             $query = $db->simple_select("attachments", "*", "pid=".$res['pid']);
  19.             $adjunto=$db->fetch_field($query, 'attachname');
  20.             $nombre_archivo=$mybb->settings['uploadspath']."/".$adjunto;
  21.             $texto=substr($res['message'],0,350);
  22.             $texto=$parser->parse_message($texto, $parser_options);
  23.             $texto.="...";
  24.             eval('$blog_ciclo.= "'.$templates->get('EC_BLOG_CICLO').'";');
  25.         }
  26.         $cabecera=$this->cabecera();
  27.         eval('$html= "'.$templates->get('EC_BLOG_COMPLETO').'";');
  28.  
  29.         return $html;
  30.     }
  31.     function cabecera(){
  32.         global $mybb, $templates;
  33.         $usuario=$mybb->user['username'];
  34.         if($mybb->user['uid']==0){
  35.     //  $captcha=$this->mostrarcaptcha();
  36. //          eval('$registrofacil= "'.$templates->get('EC_registrofacil').'";');
  37.             eval('$manejousuario= "'.$templates->get('EC_sinlogear').'";');
  38.         }else{
  39.             $logout=md5($mybb->user['loginkey']);
  40.             eval('$manejousuario= "'.$templates->get('EC_logeado').'";');
  41.         }
  42.         eval('$header = "'.$templates->get('header').'";');
  43.         return $header;
  44.     }
  45. }
  46. $blog=new blog;
  47. $datos=$blog->mostrar();
  48. //output_page($datos,1);
  49. print($datos);
  #2 (permalink)  
Antiguo 04/08/2016, 09:21
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años
Puntos: 169
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

Estas seguro que la ruta de este global esta bien definida?

Código PHP:
Ver original
  1. require_once './global.php';
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 04/08/2016, 09:39
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

revisa el log de errores del servidor, allí tendrás mas detalles del error, si gustas puedes postearlo para revisarlo.

saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 04/08/2016, 10:33
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

El Internal Server Error, lo genera esta linea

Código PHP:
Ver original
  1. $texto=$parser->parse_message($texto, $parser_options);

Parse_message forma parte de mybb (aplicacion opensource) esta funcion usa preg_replace, str_replace, y aunque PHP 7 las soporta, al parecer PHP 7 tiene varios bugs para utilizar expresiones regulares y estas funciones

Al parecer tengo que evitar de manera manual que se use BBCODE, si es que quiero usar PHP 7
  #5 (permalink)  
Antiguo 04/08/2016, 15:47
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

y cual es el error ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 05/08/2016, 09:53
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

Cita:
Iniciado por hhs Ver Mensaje
y cual es el error ?
500 Internal Server Error
  #7 (permalink)  
Antiguo 05/08/2016, 10:44
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

Lo lógico sería usar en desarrollo la misma versión que usas en producción. Así podrás ver exactamente el error que te da el código y como solventarlo. A la larga irás más rápido si lo haces así.
__________________
Aviso: No se resuelven dudas por MP!
  #8 (permalink)  
Antiguo 06/08/2016, 06:14
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

Cita:
Iniciado por Malenko Ver Mensaje
Lo lógico sería usar en desarrollo la misma versión que usas en producción. Así podrás ver exactamente el error que te da el código y como solventarlo. A la larga irás más rápido si lo haces así.
Entiendo lo de estandarizar entornos de desarrollo, pero tambien es necesario actualizarse para obtener todas las mejoras de las nuevas versiones, que se supone tienen mejor performance, menores tiempos de ejecucion
  #9 (permalink)  
Antiguo 19/08/2016, 14:43
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 17 años, 11 meses
Puntos: 120
Respuesta: trabaja bien en php 5.4.7 pero no en php 7

solo revisa los LOGS que genera APACHE para ver el error especifico que te da PHP de lo contrario jamas sabras que produce el error

Etiquetas: html, registro, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:24.