Foros del Web » Programando para Internet » PHP »

includes desde javascript

Estas en el tema de includes desde javascript en el foro de PHP en Foros del Web. Hola gente , la verdad que no sabía si postear esto aquí o en el foro de javascript. Arreglando un sitio (depurando código y esas ...
  #1 (permalink)  
Antiguo 15/05/2010, 04:50
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 17 años, 6 meses
Puntos: 8
includes desde javascript

Hola gente , la verdad que no sabía si postear esto aquí o en el foro de javascript.
Arreglando un sitio (depurando código y esas cosas), me he topado con una cosillas que nunca había visto antes, es como si se hicieran includes de archivos php externos desde javascript, algo como esto:

Código:
<script language=\"javascript\" src=\"../../formulario/sripts.php\"></script>
¿esto es posible?. ¿Que diferencia existe en cuanto a hacer este include así o desde PHP?.

Un saludo y mil gracias
__________________
Videotutoriales de Drupal
  #2 (permalink)  
Antiguo 15/05/2010, 10:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 7 meses
Puntos: 1517
Respuesta: includes desde javascript

Sí es posible. Lo que sucede es que en ese tipo de página PHP se declara una cabecera indicando que el contenido es de javascript. Debe ser algo así
Código PHP:
Ver original
  1. <?php
  2. header('Content-type: text/javascript;');
  3. ?>
  4. alert('foo');
  5. document.write('bar');
Esa cabecera debe estar al inicio del archivo. Eso hace que todo lo que se escriba sea similar a como si estuvieras escribiendo en un archivo script.js.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/05/2010, 09:11
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: includes desde javascript

Cita:
Iniciado por abimaelrc Ver Mensaje
<?php
header('Content-type: text/javascript;');
?>
alert('foo');
document.write('bar');
[/HIGHLIGHT]
¿Pero esa cabecera donde tiene que estar?, en el archivo que llame al php desde un include javascript? ¿o en el archivo .php donde esta el código que se llama?.

En fin es un poco confuso esto.

Gracias
__________________
Videotutoriales de Drupal
  #4 (permalink)  
Antiguo 17/05/2010, 10:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Respuesta: includes desde javascript

Recuerda que PHP es un lenguaje que se procesa en el servidor, por ende tiene muchas posibilidades, por defecto su tarea es imprimir HTML, pero no esta limitado a eso, puede imprimir javascript, imagenes, videos, etc.

La cabecera debe de estar en el archivo donde se esta llamando, en este caso seria scripts.php, y eso le indica al navegador que aunque vea que la extensión es .php el contenido dentro es javascript (ya que el PHP es pre-procesado en el servidor).

Saludos.
  #5 (permalink)  
Antiguo 17/05/2010, 11:33
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: includes desde javascript

Cita:
Iniciado por GatorV Ver Mensaje
aunque vea que la extensión es .php el contenido dentro es javascript (ya que el PHP es pre-procesado en el servidor).
Saludos.
Gracias GatorV, la cuestión es que el contenido de scripts.php NO es javascript sino php. Pero supongo que este include desde javascript hubiera tenido el mismo resultado que si lo hubieramos hecho en la página llamante con un include('scripts.php') .

¿Es cierto?.

Gracias de antemano.
__________________
Videotutoriales de Drupal
  #6 (permalink)  
Antiguo 17/05/2010, 11:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Respuesta: includes desde javascript

Es indiferente, recuerda que PHP se pre-procesa en el servidor, entonces aunque exista contenido PHP, este no va a ser entregado al cliente, si no va a ser, evaluado y ejecutado en el servidor, solo el resultado de esta evaluación, si la hay es la que se entregara, considera el siguiente ejemplo:
script1.js.php:
Código PHP:
Ver original
  1. <?php
  2. $greeting = "Hello user";
  3.  
  4. header('Content-type: text/javascript');
  5. ?>
  6. function greet()
  7. {
  8.        alert('<?php echo $greeting; ?>');
  9. }

prueba.html:
Código HTML:
Ver original
  1. <script type="text/javascript" src="script1.js.php"></script>
  2. <script type="text/javascript">
  3. window.onload = function()
  4. {
  5.       greet();  
  6. };

Si ves en la pagina prueba.html no hay nada PHP ni Javascript, este es cargado desde un archivo externo que es un PHP pero actuando como Javascript.

Saludos.
  #7 (permalink)  
Antiguo 17/05/2010, 12:05
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: includes desde javascript

Cita:
Iniciado por GatorV Ver Mensaje
Es indiferente, recuerda que PHP se pre-procesa en el servidor, entonces aunque exista contenido PHP, este no va a ser entregado al cliente, si no va a ser, evaluado y ejecutado en el servidor.
Ok, eso lo entiendo , pero lo que no entendía es para que narices se llamaba a un archivo scripts.php , con extensión PHP y contenido PHP (no javascript), desde un include javascript (o como se llame en javascript), porque como tu dices ese contenido no iba a ser ejecutado ya que no se envía al servidor (si es que fuera javascript claro), pero date cuenta que no es javascript sino php ¿tampoco se envía al servidor? .
<script type="text/javascript" src="http://miphp.php"></script>

Este script está hecho por alguien que no debería tener mucha idea de hacer un include con php y me imagino que por eso lo hizo de ese modo, el tema es que ahora estoy aquí intentando ajustar un poquito el tema y me encuentro con movidas de este tipo.


Un saludo y mil gracias.
__________________
Videotutoriales de Drupal
  #8 (permalink)  
Antiguo 17/05/2010, 12:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 7 meses
Puntos: 1517
Respuesta: includes desde javascript

Ok, eso se hace por razones de verificar contenido que debe ser evaluado en el servidor y luego se brinda la información en el archivo de javascript, por ejemplo
Código PHP:
Ver original
  1. <?php
  2. header('Content-type: text/javascript;');
  3. ?>
  4. function setAlert(){
  5.     alert('<?php echo $_GET['API']; ?>');
  6. }
Luego en un archivo verificamos la información
Código HTML:
Ver original
  1. <script type="text/javascript" src="script.php?API=numero_de_api"></script>
  2. <script type="text/javascript">
  3. window.onload = setAlert;
Esta forma es bien útil para trabajar con APIs. Como conectarse a base de datos e indicar el contenido en el javascript para que otra persona lo use en otro dominio, etc.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 17/05/2010, 13:22
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: includes desde javascript

Cita:
Iniciado por abimaelrc Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. header('Content-type: text/javascript;');
  3. ?>
  4. function setAlert(){
  5.     alert('<?php echo $_GET['API']; ?>');
  6. }
Eso sigue siendo diferente a lo que yo pregunto , fíjate que aunque haces un echo eso SI ES JAVASCRIPT , pero lo que yo decía era que en archivo script.php SOLO había php , no una función javascript con PHP, sigo sin verle utilidad.

Un saludo
__________________
Videotutoriales de Drupal
  #10 (permalink)  
Antiguo 17/05/2010, 13:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 7 meses
Puntos: 1517
Respuesta: includes desde javascript

Primero busca si hay una linea que diga
Código PHP:
Ver original
  1. header('Content-type: text/javascript;');
Si lo hay, entonces, está escribiendo con PHP el contenido de javascript. Te recomiendo que veas que tiene escrito o sea escribe directamente la ruta en la barra de direcciones y mires el resultado de PHP. Luego mira bien la estructura de PHP y mira cuando imprime que es lo que hace.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 17/05/2010, 15:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Respuesta: includes desde javascript

Lo que puedes hacer es ver el atributo src del archivo y copiarlo/pegarlo en tu navegador y ver que código resulta, si es Javascript es que el proceso de ese archivo scripts.php genera algo de script.php, si no indica nada, entonces sí es un error de diseño ya que el archivo nunca va a generar nada y su proposito es otro.

Saludos.
  #12 (permalink)  
Antiguo 18/05/2010, 02:06
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: includes desde javascript

Cita:
Iniciado por GatorV Ver Mensaje
Lo que puedes hacer es ver el atributo src del archivo y copiarlo/pegarlo en tu navegador y ver que código resulta, si es Javascript es que el proceso de ese archivo scripts.php genera algo de script.php, si no indica nada, entonces sí es un error de diseño ya que el archivo nunca va a generar nada y su proposito es otro.

Saludos.
A eso me refería (parece que ya nos vamos entendiendo (::) es solo contenido PHP, no genera javascript por ello como me imaginaba y tu bien dices es un error de diseño.

Un saludo
__________________
Videotutoriales de Drupal

Etiquetas: includes, javascript
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 19:55.