Foros del Web » Programando para Internet » PHP »

Enviar Email HTML de una Pagina

Estas en el tema de Enviar Email HTML de una Pagina en el foro de PHP en Foros del Web. Que tal Masters, Les planteo una inquetud que necesito resolver. Tengo una página, muy bien diseñada que hace varias consultas a una BD Mysql, que ...

  #1 (permalink)  
Antiguo 28/09/2006, 08:19
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Enviar Email HTML de una Pagina

Que tal Masters,

Les planteo una inquetud que necesito resolver.

Tengo una página, muy bien diseñada que hace varias consultas a una BD Mysql,
que muestra algunos datos como una región repetida al estilo de Dreamweaver :



Código PHP:
<?php do { ?>
table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="230" height="12" valign="top"><class="textospeq"><?php echo $row_Recordset3['articulos']; ?></td>
</tr>
</table>
<?php } while ($row_Recordset3 mysql_fetch_assoc($Recordset3)); ?>

Así algunas veces esta pagina en php muestra más o menos datos según los tenga.

La cuestión es que debo enviar esta página, tal cual aparece en internet como email en formato HTML.



La cuestión sería enviar el html procesado de la pagina php para enviarlo con el script de las FAQS, donde
el html iría asignado a $shtml="";


Código PHP:
<?php
$sfrom
=""//cuenta que envia
$sdestinatario=""//cuenta destino
$ssubject=""//subject
$shtml=""//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
?>

Lo que planteo es descabellado ? como puedo pasar el html a la variable ?

Muchas Gracias por su ayuda y aportes.
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 28/09/2006, 09:29
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

jeje no es descabellado... Yo en alguna ocasion tuve que hacer lo mismo y lo solucione con la función file()

Saludillos.
  #3 (permalink)  
Antiguo 28/09/2006, 09:50
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Hola

hace un promedio de una semana el Sr. Cluster dio algo mas o menos parecido a esto aqui
Código PHP:
// Inicias el control del buffer 
ob_start(); 
// aquí la insertas y la ejecutas 
include("index.htm");  
// capturas el buffer en este punto a una variable 
$html=ob_get_contents(); 
// te deshaces del buffer (no lo necesitamos mostrar). 
ob_end_clean(); 
Código PHP:
$sfrom=""//cuenta que envia 
$sdestinatario=""//cuenta destino 
$ssubject=""//subject 
$shtml=""//mensaje 
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader); 
aqui pondrias
Código PHP:
$shtml="$html"//mensaje 
Vuelvo y repito mas o menos algo así dale taller o postea
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #4 (permalink)  
Antiguo 28/09/2006, 12:11
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Que tal,

He intentado lo siguiente :


Código PHP:
<? $lineas file('http://www.mipagina.com/mdis_alfa/modules/vob/vob_preliminar.php'); ?>
<?
$sfrom
="[email protected]"//cuenta que envia 
$sdestinatario="[email protected]"//cuenta destino 
$ssubject="Verification Of Benefits"//subject 
$shtml="$lineas"//mensaje 
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader);  
?>


Me sale el siguiente error :

Warning: file(http://www.mipagina.com/mdis_alfa/mo...eliminar.php): failed to open stream: HTTP request failed! in /vservers/mipagina/htdocs/mdis_alfa/modules/vob/vob_preliminar.php on line 1




Sobre la respuesta de The_Scorpion No entiendo esta línea.......Ahí debe ir la url completa ? La página que yo envío es php.


// aquí la insertas y la ejecutas
include("index.htm");



Gracias.
__________________
EL LIMITE ES EL UNIVERSO
  #5 (permalink)  
Antiguo 29/09/2006, 09:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jpogsistem Ver Mensaje
Que tal,

He intentado lo siguiente :


Código PHP:
<? $lineas file('http://www.mipagina.com/mdis_alfa/modules/vob/vob_preliminar.php'); ?>
<?
$sfrom
="[email protected]"//cuenta que envia 
$sdestinatario="[email protected]"//cuenta destino 
$ssubject="Verification Of Benefits"//subject 
$shtml="$lineas"//mensaje 
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader);  
?>


Me sale el siguiente error :

Warning: file(http://www.mipagina.com/mdis_alfa/mo...eliminar.php): failed to open stream: HTTP request failed! in /vservers/mipagina/htdocs/mdis_alfa/modules/vob/vob_preliminar.php on line 1




Sobre la respuesta de The_Scorpion No entiendo esta línea.......Ahí debe ir la url completa ? La página que yo envío es php.


// aquí la insertas y la ejecutas
include("index.htm");



Gracias.
file() genera un array .. así que para componer un "body" o cuerpo de mensaje para tu e-mail . .primero tendrás que convertir ese array en un string.

Usa la opción que te dejó the_scorpion ... revisa en php.net si tienes dudas sobre las funciones usadas: www.php.net/nombre_funcion

El uso de la propuesta mencionada es simple:

// aquí la insertas y la ejecutas
include("index.htm");

Ahí indicas el nombre de tu script que genera tu pagína .. no el URL en lo posible sólo la ruta/nombre. (Así no tendrás problemas si no tienes habilitados los "wrappers" necesarios).

En la variable que se indica te quedará el HTML generado por la ejecución de tu script.php .. tal cual si vieses el código fuente en tu navegador de esa página generada. Toma esa variable y usala como "cuerpo" de tu mensaje o la concatenas con más cosas si necesitas.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 29/09/2006, 11:59
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Gracias,

He realizado algunas pruebas pero no me queda del todo claro lo del

include("index.htm");

Lo que estoy haciendo es que coloco el codigo de The_Scorpion en la propia página que quiero enviar.

Esta página se llama vob_preliminar.php y está en :

Código PHP:
http://www.mipagina.com/mdis_alfa/modules/vob/vob_preliminar.php 
Osea que ahí debo colocar :

Código PHP:
include("vob_preliminar.htm"); 
O tal vez...

Código PHP:
include("vob_preliminar.php"); 
Que es lo correcto ?

Lo que ocurre tambén es que la página se generará como :

Código PHP:
vob_preliminar.php?vob_id=25 


Gracias de Nuevo
__________________
EL LIMITE ES EL UNIVERSO
  #7 (permalink)  
Antiguo 29/09/2006, 12:46
Avatar de kurorix  
Fecha de Ingreso: junio-2005
Ubicación: Maipu - Santiago - Chile
Mensajes: 54
Antigüedad: 18 años, 10 meses
Puntos: 0
Hola tan seguros k esto funciona ?
por k lo prove y me sigue mostrando todas las tags de html.
en otras palabras es como k estubiera mandando el correo normalmente :S
__________________
No lo pidas, Consiguelo por tu cuenta, hazlo y tendras exito.
  #8 (permalink)  
Antiguo 29/09/2006, 13:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jpogsistem Ver Mensaje
Gracias,

He realizado algunas pruebas pero no me queda del todo claro lo del

include("index.htm");

Lo que estoy haciendo es que coloco el codigo de The_Scorpion en la propia página que quiero enviar.

Esta página se llama vob_preliminar.php y está en :

Código PHP:
http://www.mipagina.com/mdis_alfa/modules/vob/vob_preliminar.php 
Osea que ahí debo colocar :

Código PHP:
include("vob_preliminar.htm"); 
O tal vez...

Código PHP:
include("vob_preliminar.php"); 
Que es lo correcto ?

Lo que ocurre tambén es que la página se generará como :

Código PHP:
vob_preliminar.php?vob_id=25 


Gracias de Nuevo
Tienes que llamar a tu página tal cual sea, con su "query string" que corresponda según tu caso.

Hazte la idea que el "include()" va a llamar a tu script y lo va a ejecutar (si lo llamas por el URL con http:// .. sólo obtendrá el resultado que este genere en función de los parámetros dados.

Código PHP:
include ("http://www.mipagina.com/mdis_alfa/modules/vob/vob_preliminar.php?vob_id=25"); 
Las funciones "ob_start()" y demás van a "capturar" el buffer de salida que PHP genera y te lo van a dejar en una "variable" para que tu la tomes y la uses como necesites.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 29/09/2006, 13:42
Avatar de kurorix  
Fecha de Ingreso: junio-2005
Ubicación: Maipu - Santiago - Chile
Mensajes: 54
Antigüedad: 18 años, 10 meses
Puntos: 0
mooo oye ando en lo mismo ke jpogsistem al poner la url completa:
http://www.pagina.com/email.php

me manda un error con el wrapper

si pongo email.php me funciona. pero me muestra todas las etiquetas de html
como hago para que estas no salgan ???

prove haciendo &lt;strong&gt; pero me muestra : &lt;strong&gt;

Saludos porfa ayuda
__________________
No lo pidas, Consiguelo por tu cuenta, hazlo y tendras exito.
  #10 (permalink)  
Antiguo 29/09/2006, 14:16
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Cluster, al colocar :

Código PHP:
include ("http://www.mipagina.com/.php?vob_id=25"); 
Me llega el email con esto :

Código PHP:
Warningmain(http://www.mipagina.com/.php): 
failed to open streamHTTP request failedin /vservers/.php on line 4 
Código PHP:
Warningmain(): Failed opening 'http://www.mipagina.com/.php' 
for inclusion (include_path='.:/usr/share/pear'in /vservers/.php on line 4 
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:31
  #11 (permalink)  
Antiguo 29/09/2006, 14:54
Avatar de Lolaloleitor  
Fecha de Ingreso: abril-2006
Mensajes: 22
Antigüedad: 18 años
Puntos: 0
Güenas a todos,
Si entiendo lo que creo que estoy entendiendo, y es el problema que yo tuve hace cosa de un mes, la solucion es hacerlo de esta manera:

//guardas en la variable $archivo la ruta completa, con las variables necesarias por get

$archivo="ruta_absoluta/archivo.php?id=$id";

//luego lo lees con la siguiente funcion:

$msj=file_get_contents($archivo);

// de esta forma ya has "traducido " el php en html y lo puedes enviar tranquilamente por email

espero que sea eso lo que estabais preguntando

  #12 (permalink)  
Antiguo 29/09/2006, 15:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por kurorix Ver Mensaje
mooo oye ando en lo mismo ke jpogsistem al poner la url completa:
http://www.pagina.com/email.php

me manda un error con el wrapper

si pongo email.php me funciona. pero me muestra todas las etiquetas de html
como hago para que estas no salgan ???

prove haciendo &lt;strong&gt; pero me muestra : &lt;strong&gt;

Saludos porfa ayuda
Por favor .. no repitas tus mensajes en respuestas a otros. Intenta seguir el hilo de los mensajes que abras!.

http://www.forosdelweb.com/showpost....88&postcount=9

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 29/09/2006, 15:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Lolaloleitor Ver Mensaje
Güenas a todos,
Si entiendo lo que creo que estoy entendiendo, y es el problema que yo tuve hace cosa de un mes, la solucion es hacerlo de esta manera:

//guardas en la variable $archivo la ruta completa, con las variables necesarias por get

$archivo="ruta_absoluta/archivo.php?id=$id";

//luego lo lees con la siguiente funcion:

$msj=file_get_contents($archivo);

// de esta forma ya has "traducido " el php en html y lo puedes enviar tranquilamente por email

espero que sea eso lo que estabais preguntando

Hacer un "file_get_contents()" o un include() con el control del buffer de salida de PHP (ob_start() y afines) es lo mismo en este caso.

Lo que sucede que la función file_get_contents() está disponible para PHP versión: PHP 4 >= 4.3.0 ó PHP 5 (hoy por hoy todo el mundo ya usa esas versiones de PHP y si usan dicha función seguro que es más óptimo que la propuesta que hice).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 29/09/2006, 15:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jpogsistem Ver Mensaje
Cluster, al colocar :

Código PHP:
include ("http://www.mipagina.com/mdis/modules/vob/vob_preliminar.php?vob_id=25"); 
Me llega el email con esto :

Código PHP:
Warningmain(http://www.mipagina.com/mdis/modules/vob/vob_preliminar.php): 
failed to open streamHTTP request failedin /vservers/...../modules/vob/vob_preliminar.php on line 4 
Código PHP:
Warningmain(): Failed opening 'http://www.mipagina.com/mdis/modules/vob/vob_preliminar.php' 
for inclusion (include_path='.:/usr/share/pear'in /vservers/..../modules/vob/vob_preliminar.php on line 4 
Ok, tienes problemas con los "wrappers" externos .. No tienes acceso a ellos.

Supongo que tu script en cuestión está en tu servidor (donde corres este otro scritp que genera el e-mail).

Si es así, .. llama a tu script PHP en cuestión por ruta absoluta:

Código PHP:
include ($_SERVER['DOCUMENT_ROOT'].'/mdis/modules/vob/vob_preliminar.php'); 
ó
Código PHP:
include ('/vservers/..../modules/vob/vob_preliminar.php'); 
Las variabels que pasas por el URL ahora, las debes pasar en tu script PHP que hace la llamada al include() definiendolas antes de "incluir" ese código que posteriormente se interpretará (como así pasa cuando includes código en otro por un include())

Código PHP:
<?
ob_start
();
$vob_id=25;
// o llamaras a este script nuevo con tu variable entrando por GET en el URL o una sesión o como sea:
// $vob_id=$_GET['vob_id'];

include ('/vservers/..../modules/vob/vob_preliminar.php');
Esto implicará revisar tu código de tu script vob_premiliar.php .. Si tomas las variables en $_GET['vob_id'] .. ahora tendrás que tomarla en $vob_id para solventar este uso. Como supongo que este escript ya lo usarás y le "inyectaras" datos por GET en un URL .. puedes hacer cosas como:
Código PHP:
if (!isset($vob_id)){
 
$vob_id=$_GET['vob_id'];

y usas $vob_id en el resto del script en cuestión.

Un saludo,

PD: kurorix esto es aplicable en tu caso también.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/11/2006 a las 05:12
  #15 (permalink)  
Antiguo 29/09/2006, 15:32
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Muchas Gracias Cluster,

Acabo de ajustarlo como me indicas y me saca esto:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 40961 bytes) in /vservers//htdocs/mdis/modules/vob/vob_preliminar.php on line 2


Será que escedí alguna cuata de envío de emails ? Mientras hacía pruebas de los que me salían con error mellegaron hasta 400 emails.........
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:20
  #16 (permalink)  
Antiguo 29/09/2006, 15:42
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Me acaba de funcionar justo con este codigo :

Código PHP:
<? // Inicias el control del buffer 
ob_start(); 
// aquí la insertas y la ejecutas 
$archivo="/vservers/....../vob/vob_preliminar.php"
$msj=file_get_contents($archivo); 

// te deshaces del buffer (no lo necesitamos mostrar). 
ob_end_clean();  
?>
Código PHP:
<?
$sfrom
="[email protected]"//cuenta que envia 
$sdestinatario="[email protected]"//cuenta destino 
$ssubject=""//subject 
$shtml="$msj"
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader);  
?>
Muchas gracias a todos.
__________________
EL LIMITE ES EL UNIVERSO

Última edición por Cluster; 29/11/2006 a las 19:31
  #17 (permalink)  
Antiguo 29/09/2006, 15:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jpogsistem Ver Mensaje
Me acaba de funcionar justo con este codigo :

Código PHP:
<? // Inicias el control del buffer 
ob_start(); 
// aquí la insertas y la ejecutas 
$archivo="/vservers/......./modules/vob/vob_preliminar.php"
$msj=file_get_contents($archivo); 

// te deshaces del buffer (no lo necesitamos mostrar). 
ob_end_clean();  
?>
Código PHP:
<?
$sfrom
="[email protected]"//cuenta que envia 
$sdestinatario="[email protected]"//cuenta destino 
$ssubject="Verification Of Benefits"//subject 
$shtml="$msj"
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader);  
?>
Muchas gracias a todos.
Si vas a usar file_get_contents() no uses ob_start() ni ob_end_clean(), están de más . .no las usas para nada (y consumen recursos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/11/2006 a las 19:31
  #18 (permalink)  
Antiguo 29/09/2006, 16:03
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Cita:
Si vas a usar file_get_contents() no uses ob_start() ni ob_end_clean(), están de más . .no las usas para nada (y consumen recursos).

Un saludo,
Ok, Eliminados.
__________________
EL LIMITE ES EL UNIVERSO
  #19 (permalink)  
Antiguo 29/09/2006, 19:33
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Parece Mentira, funciona bien con vob_preliminar.php

Pero al ponerle el id me sale el error :

Código PHP:
Warningfile_get_contents(): Unable to access /vservers/htdocs/modules/.php?vob_id=24 in /vservers//htdocs/modules/.php on line 6

Warningfile_get_contents(/vservers/?vob_id=24): failed to open streamNo such file or directory in /vservers/.php on line 6 


Lo que estoy Ejecutando :

Código PHP:
<?
$vob_id
=$_GET['vob_id'];
$archivo="/vservers/?vob_id=$vob_id"
$msj=file_get_contents($archivo); 
?>
<?
$sfrom
="[email protected]"//cuenta que envia 
$sdestinatario="[email protected]"//cuenta destino 
$ssubject=""//subject 
$shtml="$msj"
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader);  
?>
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:22
  #20 (permalink)  
Antiguo 29/09/2006, 19:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ya te expliqué como debes usarlo en ese caso:

Cita:
Las variabels que pasas por el URL ahora, las debes pasar en tu script PHP que hace la llamada al include() definiendolas antes de "incluir" ese código que posteriormente se interpretará (como así pasa cuando includes código en otro por un include())


Código PHP:
<?
ob_start();
$vob_id=25;
// o llamaras a este script nuevo con tu variable entrando por GET en el URL o una sesión o como sea:
// $vob_id=$_GET['vob_id'];

include ('/vservers/..../vob/vob_preliminar.php');

Esto implicará revisar tu código de tu script vob_premiliar.php .. Si tomas las variables en $_GET['vob_id'] .. ahora tendrás que tomarla en $vob_id para solventar este uso. Como supongo que este escript ya lo usarás y le "inyectaras" datos por GET en un URL .. puedes hacer cosas como:

Código PHP:
if (!isset($vob_id)){
$vob_id=$_GET['vob_id'];
}


y usas $vob_id en el resto del script en cuestión.
Y esto tiene su fundamente "teórico" de base.

Cuando tu llamas a un script por el protocolo HTTP:
http:// .....

Y montas una variable de "entrada" al mismo por el "query string" .. usas el standard "CGI" por eso usas el ? para indicar "a partir de aquí vienen variables" ... (en grupos de nombre=valor y con separador & ...)

Cuando tu usas "rutas absolutas" o de "sistema de archivo" .. en tu caso ese ?variable=valor está siendo interpretado como "nombre y ruta del archivo" .. lo cual no es correcto.

Por lo demás .. la solución al problema ya te la planteo y es así por como funciona el "include()" en PHP. Esta función "incluye" .. o hace un "cortar y pegar" del código que llamas en el punto de lo llamas sobre el script que lo usas. Por eso lo que hacemos es "definir" esa variable "antes" de llamar a nuestro código y tratarlo como si estuviese definida ahí mismo (y no que entre por el URL .. aunque llamando al script "padre" que a su vez incluye al otro se puede hacer el mismo efecto como ya te explico también).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/11/2006 a las 19:32
  #21 (permalink)  
Antiguo 29/09/2006, 20:03
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Seré un cabeza dura pero no acabo de entender lo que estoy haciendo mal.

Como bien mencionas esta pagina recibe el vob_id por GET y de arriba a abajo tiene :

Código PHP:
<?php Archivo que valida que sea un usuario con sesi&#243;n ?>
Código PHP:
<?php require_once(Conexi&#243;n a Base de Datos); ?>
Código PHP:
<?
$vob_id
=$_GET['vob_id'];
$archivo="/vservers.php?vob_id=$vob_id"
$msj=file_get_contents($archivo);
?>
Código PHP:
<?
$sfrom
="[email protected]"//cuenta que envia 
$sdestinatario="[email protected]"//cuenta destino 
$ssubject=""//subject 
$shtml="$msj"
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
mail($sdestinatario,$ssubject,$shtml,$sheader);  
?>
Código PHP:
<?

2 Querys a la Base de datos que funcoonan bien y los hago con $vob_id

?>
Código PHP:
De aquí para abajo está todo el diseño HTML que muestra valores de la BD al estilo <?php echo $row_Recordset1['business_address']; ?>

Cuando lo ejecuto la pagina se ve bien, es decir muestra los datos datos segun el Select

Y Con el error :

Código PHP:
Warningfile_get_contents(): Unable to access /vservers/?vob_id=24 in /vservers/.php on line 7 
Y el correo me llega Vacío.

Entonces........... Cual es el error ? O como paso la variable al fin ?


Muchas Gracias Master.
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:23
  #22 (permalink)  
Antiguo 29/09/2006, 20:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te acabo de comentar que NO puedes usar:

Código PHP:
$archivo="/vservers/.../vob_preliminar.php?vob_id=$vob_id"
NO puedes hacer referncia a tu "variable" así .. Se está tomando como nombre de archivo!!!!.

También te he comentado lo mismo ya en este mensaje así que volvemos al punto del mensaje #14 de este mismo tema.

Debes usar ob_start() .. include() como te he comentado y ob_get_contens() y todo el resto. O usar file_get_contents() (pero aquí no te aseguro nada .. Te puedo asegurar que la otra técnica funciona correctamente, por qué lo uso habitualmente) pero con la definición de tu variable -antes- de llamar a esa función y modificar tu script que llamas (como ya te dije).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/11/2006 a las 05:13
  #23 (permalink)  
Antiguo 29/09/2006, 20:26
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Código PHP:
$archivo="/vservers/.php?vob_id=$vob_id"
Lo Siento, puse el code anterior.

Cita:
Debes usar ob_start() .. include() como te he comentado y ob_get_contens() y todo el resto. O usar file_get_contents() (pero aquí no te aseguro nada .
Quiero probarlo con file_get_contents

Cita:
...pero con la definición de tu variable -antes- de llamar a esa función y modificar tu script que llamas (como ya te dije).
Ahí es donde no te entiendo. Has visto como pongo el código.........No entiendo "........la definición de tu variable -antes- de llamar a esa función y modificar tu script que llamas"

Diculpame, si puedes ser más didactico porque no hallo la esencia de lo que falta.


Código PHP:
$vob_id=$_GET['vob_id'];
$archivo="/vservers/.php"
$msj=file_get_contents($archivo); 
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:23
  #24 (permalink)  
Antiguo 29/09/2006, 20:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En mi último comentario te indico que no te puedo asegurar que con "file_get_contents()" funcione la definición de tu variabel -antes- de llamar a tu función indicada.

Tampoco indicas el código de vob_preliminar.php .. para ver como tomas tu variable $vo_id (por qué si la tomas en ese script por $_GET .. ahora no entrará por dicho método).

envia_mail_vob_preliminar.php

Lo usas:
http://www.tal.tal/dondesea/envia_ma....php?vob_id=25

Código PHP:
<? 
ob_start
(); 
$vob_id=$_GET['vob_id']; 

include (
'/vservers/.........../vob/vob_preliminar.php'); 

$html=ob_get_contents();

ob_end_clean();

// Generas tu e-mail y uas $html como parte del cuerpo del mensaje.
?>
vob_preliminar.php
No sé que código usa .. Pero ya te comenté que debes modificarlo para aceptar tu variable por $_GET o por $nombre según sea como lo llames.

Código PHP:
// al principio de ese script ...
if (!isset($vob_id)){ 
$vob_id=$_GET['vob_id']; 
}

// Y usas $vob_id en el resto del código .. no referencias a $_GET['vob_id'] 
Más "didactico" no puedo ser .. Todo está en que tu entiendas como funciona un "include()" y que sepas por donde "entran" las variables a tus scripts.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/11/2006 a las 05:14
  #25 (permalink)  
Antiguo 29/09/2006, 20:50
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Probando lo que me das me da un error nuevo :

Código PHP:
Fatal errorAllowed memory size of 8388608 bytes exhausted 
(tried to allocate 3840 bytesin /vservers/.php on line 5 
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:24
  #26 (permalink)  
Antiguo 29/09/2006, 21:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te faltó poco .. (3 Kbytes) .. Puede ser que ese script genere más de 8 Megabytes en ejecutarse? .. Haces alguna consulta a alguna BB.DD. pesada? (no hablo de lo que pesa la página una vez generada en su HTML). Ese proceso + el própio de tu script que genera el e-mail y lo envia es el que está consumiento casi 9 Megabytes de RAM para el proceso. (y tu el límite lo tienes en 8M para cada script PHP en tu configuración de PHP).

Intenta reducir la cantidad de datos que maneja .. por lo menos parar probar la "técnica" que te comento.

Prueba a usar file_get_contents() .. pero ya te digo que por mi parte no te puedo asegurar como se comporte.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #27 (permalink)  
Antiguo 29/09/2006, 21:22
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Muchas Gracias Cluster,

La verdad no creo que sean las consultas, sino algo en el "Ciclo" de como se ejecuta todo.

Si quisieras darle un ultimo vistazo al code antes de que me tire mañana por la ventana :

Gracias.
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 23/11/2006 a las 19:24
  #28 (permalink)  
Antiguo 29/09/2006, 21:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jpogsistem Ver Mensaje
Muchas Gracias Cluster,

La verdad no creo que sean las consultas, sino algo en el "Ciclo" de como se ejecuta todo.

Si quisieras darle un ultimo vistazo al code antes de que me tire mañana por la ventana :

http://www.xxxxx.com/page.txt

Gracias.
Según lo que dejastes .. todo lo tienes en un mismo script? ..

DEBEN Ser dos scripts (Y esto ya lo dejé claro en mis anteriores mensajes!, por favor presta un poco de atención ... no "cortes y pegues el código" correiendo a probarlo!). Uno el que ya tienes y otro exclusivo que va a tomar al otro script y va a genenerar/enviar el e-mail.

Como usa el sistema tu? .. describe tu proceso.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/11/2006 a las 19:33
  #29 (permalink)  
Antiguo 29/09/2006, 21:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobre tu código "vob_preliminar.php", realmente se puede optimizar más.

Haces dos veces la seleccion a la BBDD:
mysql_select_db($database_xxxx, $xxxxx);

Con que lo hagas una vez sobra!.

Las dos consultas SQL que haces, lo más probable es que se pudieran unificar en una sóla (consulta esos detalles en el foro de Base de datos).

Validaciones tipo:
if ($row_Recordset2['validity'] !='') { // Show if recordset not empty

mejor usar empty()
if (!empty($row_Recordset2['validity'])) { // Show if recordset not empty

Más no he seguido viendo ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/11/2006 a las 19:34
  #30 (permalink)  
Antiguo 29/09/2006, 21:41
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Yo lo estoy ejecutando todo en la misma página....

vob_preliminar.php que recibe de un link el $_GET['vob_id'].

Cuando dices 2 scripts te refieres a 2 archivos .php ?

O a 2 scripts separados por <? ?>
__________________
EL LIMITE ES EL UNIVERSO
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 03:42.