Foros del Web » Programando para Internet » PHP »

Problema de PHP en vistas .phtml

Estas en el tema de Problema de PHP en vistas .phtml en el foro de PHP en Foros del Web. Saludos. Necesito resolver un pequeño problema y estoy cansado de buscar por google tras hora y media y no dar con nada. Estoy haciendo un ...
  #1 (permalink)  
Antiguo 24/01/2018, 17:38
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 2 años, 9 meses
Puntos: 0
Pregunta Problema de PHP en vistas .phtml

Saludos.

Necesito resolver un pequeño problema y estoy cansado de buscar por google tras hora y media y no dar con nada.

Estoy haciendo un grado superior y estoy a final de curso, poco menos de 2 meses. Tengo 3 semanas para hacer parte de un proyecto (lado de PHP), montar una tienda con el modelo MVC. Poco a poco voy sacando las cosas. El caso es que en clase trabajo en linux (LAMP) y sin problemas pero en casa solo tengo windows (XAMPP). Por alguna razón los archivos .phtml de las vistas me muestran el código PHP como texto plano. Al usar el inspector del navegador (F12) veo que me comenta la primera linea <!-- <?php --> sin motivo de forma que el resto tras esa linea es texto plano. Así que el código no funciona. ¿Como puedo arreglar este problema? (por ahora son solo mensajes dependiendo de si IF(ISSET) una variable, pero quizás mas adelante sea algo más importante).


Gracias de antemano.
Un saludo.
  #2 (permalink)  
Antiguo 25/01/2018, 01:58
Avatar de rbczgz  
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.220
Antigüedad: 14 años, 2 meses
Puntos: 151
Respuesta: Problema de PHP en vistas .phtml

Hola mmiiqquueell,

¿Cómo estás intentando ver el archivo? ¿a través de http://localhost/loquesea.php o file:///C:/xampp/loquesea.php?

Por lo que dices parece lo segundo y así el servidor no interpreta el PHP, recuerda que para que se pueda ver correctamente debe ser a través del servidor.
  #3 (permalink)  
Antiguo 25/01/2018, 05:42
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 2 años, 9 meses
Puntos: 0
Respuesta: Problema de PHP en vistas .phtml

Buenas.

Lo hago correctamente, accedo desde LocalHost (barra de navegación) siempre me falla la primera vez porque olvido encender el MySQL y Apache desde el administrador del XAMPP (en linux se enciende solo), (http://localhost/) pulso sobre la carpeta del proyecto cuando me sale el indice de carpetas (puesto que tengo trabajos / ejercicios / exámenes de resto de curso) y nada mas pulsar sobre la carpeta se abre el index.php y muestra una web de solo texto con links los cuales llaman a los controladores/modelos del MVC.

En linux aparece que hay que activar el modulo de PHP 7.0 en apache2 pero claro por defecto está activado y yo estoy en XAMPP y buscando en el archivo de config.ini veo que no tiene nada de PHP, pensé que podría ser eso pero claro de ser eso no funcionaria nada de PHP y lo único que falla es si hay <?php ?> en el archivo .phtml.
  #4 (permalink)  
Antiguo 25/01/2018, 12:04
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.799
Antigüedad: 9 años, 6 meses
Puntos: 2124
Respuesta: Problema de PHP en vistas .phtml

Desconociendo el sistema de plantillas (o vistas) que estás usando, lo normal es que un script lea esos archivos y reemplace las "etiquetas" de un lenguaje de marcado específico, que puede ser desde simples {llaves} o <etiqueta></etiqueta>.

A veces también se hacen en PHP, pero la extensión debe ser .php para evitar problemas que, de ser tu caso, habría que configurar apache para que trate los archivos .phtml como PHP.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 25/01/2018, 14:35
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 2 años, 9 meses
Puntos: 0
Respuesta: Problema de PHP en vistas .phtml

Me guio con el MVC del profesor (el que dice personas_mvc_v3) ( https://github.com/tamengual9/MVC ) y voy haciendo de cero todos los archivos, es una matada pero así se aprende.

Eso lo he leído que es que el navegador interpreta los phtml como html normal y he visto que hay que editar y añadir para que los detecte como PHP pero el problema es que solo he encontrado para linux, el ini de apache de windows es totalmente diferente y no existe ninguna linea de PHP a cambiar como la de linux y no se si añadirle o no por si me lo cargo, en clase no me funcionaba el debugger y por intentar arreglarlo me he cargado el linux (que ya ta arreglado, nada importante). A unos cuantos compañeros les pasa lo mismo.
  #6 (permalink)  
Antiguo 25/01/2018, 15:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.799
Antigüedad: 9 años, 6 meses
Puntos: 2124
Respuesta: Problema de PHP en vistas .phtml

Con PHP puedes hacer include o require de archivos con cualquier extensión, por lo que el problema debe venir por otro lado.

- Qué editor usas? Te recomiendo Notepad++, tiene buen coloreado de sintáxis y autocompletado.
- Puedes copiar el código de la vista y pegarlo aquí?

En una revisión rápida, hay cosas que no me gustan en ese curso, como:

- Crear una nueva conexión a base de datos para cada tabla. Mientras aprendes no es problema, pero si desarrollas un proyecto con 4 o 5 tablas y tienes varios usuarios ingresando al mismo tiempo, vas a consumir recursos innecesariamente. Definitivamente es un punto a tener en cuenta y optimizar.

- Codificar directivas como si fueran llamadas a funciones. Por ejemplo require("archivo.php"); en lugar de require "archivo.php";
Por supuesto, esto es de acuerdo a mis preferencias de codificación y nada tiene que ver con funcionamiento y optimización.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 25/01/2018, 16:15
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 2 años, 9 meses
Puntos: 0
Respuesta: Problema de PHP en vistas .phtml

Suelo usar el notepadd++ pero para este caso no es buena idea sino la peor de todas ya que el MVC se divide en carpetas y muchos archivos por lo que es un caos cuando está todo abierto, lo mejor es usar editores como ATOM o BRACKETS que con solo abrir la carpeta del proyecto ya te salen listados todos los archivos en forma de árbol y puedes acceder directamente a cada uno y puedes elegir temas para hacer que sean coloridos como quieras (yo uso un tema de tipo neón que marca con colores intensos cada parte del código y es muy bueno para buscar errores y demás) eso en el brackets y ademas de addons para marcarme errores de escritura, mostrarme la estructura del PHP para ir rápidamente a las funciones y esas cosas. Solo me molesta que la versión de linux tiene un bug que impide poner acentos pero bueno, antes de mandar el proyecto lo repaso desde mi casa en windows que no falla. Lo del auto completado lo odio, siempre lo desactivo, quiero ser yo quien lo ponga todo ya que sino luego me auto completa y no me doy cuenta y pongo el cierre y me saltan errores por cierres sobrantes.

El curso es el que es, en realidad no es del curso sino del profesor, suele equivocarse mucho y rectificar cada 2 x 3, eso nos molesta a toda la clase porque empezamos y cuando estamos por la mitad nos dice que ha hecho cambios y arreglado cosas que fallaban y quizás nos toca borrar y empezar de cero. Igual no es el mejor MVC del mundo pero por lo menos para hacerse a la idea ya basta. Y si, lo de la base de datos ya lo sabemos pero por ahora es mejor hacerlo asi y evitar liarnos, piensa que solo nos preparan con una base mínima, ya cuando empecemos las practicas en marzo aprenderemos correctamente y seguir los patrones de la empresa, pero para eso hay que aprobar. Osea que no busques si esta escrito de una forma o de otra, solo es para que veas en que me baso.

Lo de codificar usando el require_once("loquesea.php") no importa si está o no con paréntesis, al menos en PHP 7.0 no da problemas, típico en desuso pero aun sirve para versiones antiguas.


Lo siento, no puedo mandar el código. Cada vez que lo intento me salta el Captcha y luego de darle se queda en blanco y no hace nada y al volver atrás me carga un borrado muy antiguo. Nada, es un HTML normal y corriente con sus etiquetas de HTML y clases de boostrap 4. Y antes de salir de la etiqueta body le meto la etiqueta <?php if(isset($_GET['variable'])) {echo "<p> mostrar error </p>";} ?> eso es todo.

EDIT: nada, que por más que intento no me deja poner código. Pues si no quiere por las buenas sera por las malas.

(Pulsa botón derecho → Ver imagen para ver a tamaño real)

Ale, es una versión inicial de login pero sigue haciendo lo mismo y los cambios son del código del HTML.

Última edición por mmiiqquueell; 25/01/2018 a las 16:37
  #8 (permalink)  
Antiguo 26/01/2018, 11:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.799
Antigüedad: 9 años, 6 meses
Puntos: 2124
Respuesta: Problema de PHP en vistas .phtml

Hay ideas peores que usar Notepad++, creéme, precisamente lo sugerí porque luego de varios años por aquí, hemos visto quienes usan editores mucho más básicos y por ahí se cuelan caracteres que son los responsables de problemas similares al tuyo.

Al margen de tu problema, me parecen muy interesantes tus dos opciones para editar código (Atom y Brackets) y seguramente los estaré probando en breve, pues no estoy muy conforme con el rendimiento de PhpStorm y PhpDesigner.

Ahora, pensando en cosas más genéricas, has probado a cambiar la extensión de las vistas?, no tengo la certeza de que vaya a funcionar, pero es más lógico hacer un include o require de un archivo .php y lo más que puedes perder son 5 minutos. Estoy suponiendo que podrías tener algún plugin de seguridad en tu sistema que pudiera ser el responsable de "deshabilitar" código PHP en archivos con una extensión diferente.

En cuanto a usar paréntesis en directivas, eso ha funcionado desde siempre, simplemente no es de mi agrado ver códigos así, porque puede resultar confuso.

Código PHP:
Ver original
  1. // La codificación "correcta" para directivas:
  2. echo 'Esto es un texto';
  3. include 'archivo.php';
  4. include_once 'otro_archivo.php';
  5.  
  6. // Codificar directivas como funciones:
  7. echo('Esto es un texto');
  8. require('archivo.php');

Como dije, no es que una forma sea correcta y la otra no, prefiero codificar las directivas sin paréntesis, para poder diferenciarlas de las funciones.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 26/01/2018, 14:43
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 2 años, 9 meses
Puntos: 0
Respuesta: Problema de PHP en vistas .phtml

Gracias por la respuesta, efectivamente lo de usar extensión .php ya me lo han dicho pero quería evitar usarlo y mantener el MVC pero me temo que no me quedara más remedio, aparte si me pasa a mi le pasara a los que usen windows (en este caso profesores).

Los editores, bueno, normalmente uso el bloc de notas de windows o el de linux y solo en ciertos casos uso el notepad++ o gedit. Más que nada por rapidez xD.. Pero en estos casos es mejor usar un IDE de los buenos. El ATOM a mi no me gusta, son iguales los 2 (ATOM y BRACKETS) pero no se, para instalar plugins veo que falla y se cuelga facilmente.


Lo de poner paréntesis, si, se me ha ocurrido quitarlos para evitar la confusión de función ya que no debería usarse y el resultado a sido un error por parte de PHP de que no se reconoce el "require_once o include" como expresión (require_once "URL";). No se, nos falla mucho el PHP en clase.


Bueno, gracias por la ayuda y sugerencias, cambiare extensión como solución rápida y seguiré dándole a tope ya que nos piden imposibles y creo que no nos dará tiempo.



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