Foros del Web » Programando para Internet » PHP »

Más de librerías, funciones y variables

Estas en el tema de Más de librerías, funciones y variables en el foro de PHP en Foros del Web. Buenas! Se me ha planteado una cuestión, a ver si me podeis ayudar. Yo estaba haciendo una web basicamente en HTML, pero la estoy pasando ...
  #1 (permalink)  
Antiguo 26/01/2005, 05:49
 
Fecha de Ingreso: junio-2004
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Más de librerías, funciones y variables

Buenas! Se me ha planteado una cuestión, a ver si me podeis ayudar. Yo estaba haciendo una web basicamente en HTML, pero la estoy pasando a PHP para aligerar la faena, ya que hago servir librerías donde pongo funciones con las distintas partes del código HTML y así lo tengo más ordenado.
El problema que me he encontrado es el siguiente: Tenía una página con un formulario que se enviaba, con código PHP, per mail. Así, este formulario tenia partes en PHP (delimitadas por <? ?>) y partes en HTML (como la del mismo formulario. El contenido lo he puesto en una variable que se encuentra dentro de una función, y esa función está dentro de una librería, las cuales son llamadas des de la página donde se debe mostrar el formulario. Y, ahora sí, el problema en cuestión es que, al ponerlo tal cual (bueno, he cambiado las " por '), no se me ejecuta nada en la página des de que llamo a la función en cuestión. Supongo que es pq lleva código PHP dentro, así que la pregunta es: cómo puedo incluir html y php juntos dentro de una variable?
Que sepais que el formulario que hice servir fue el que definían en desarrolloweb (Éste).
A ver si me he explicado bien y me podeis echar una manita! Gracias!
  #2 (permalink)  
Antiguo 26/01/2005, 07:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Debes poner el código que usas para verlo en -su contexto- .. ese cambio de " a ' puede ser tu problema ..

Ejemplo:

echo "hola $variable ";

si $variable="algo";

resulta:
"hola algo"

pero si tu haces:

echo 'Hola $algo';
veras eso mismo
"Hola $algo"

A su vez no vemos que hacen tus funciones .. si retornar un valor o hacer "echo" ahí mismo en tu función .. tampoco se vé como le pasas los parámetros que necesites usar (variables) en tus funciones (el ambito de las variables es importante) .. Así que por todo eso .. cuando tengas problemas .. mejor adjunta el código "problemático" y explicación del mismo.

Un saludo,
  #3 (permalink)  
Antiguo 26/01/2005, 11:03
 
Fecha de Ingreso: junio-2004
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Ok, lo siento. Aquí os lo pongo:

Contactar.php ->
<html><head><title></title></head>
<body>
<? include("librería_contactar.php");
función(); ?>
</body>
</html>

Librería_contactar.php ->
<? function función()
{ $variable=" <? if (!$HTTP_POST_VARS){ ?>
<form action='contactar.php' method=post>
<br>
<p class='par'>Omple el formulari i envia'ns-el per posar-te en contacte amb nosaltres</p>
<br>
<div class='nom'>Nom:</div>
<input type=text name='nom' size=20 class='quad'>
<br>
<div class='nom'>Direcció correu-e:</div>
<input type=text name=email size=20 class='quad'>
<br>
<div class='nom'>Comentaris:</div>
<textarea name=coment cols=32 rows=6 class='quad'></textarea>
<br><br>
<input type=submit value='Enviar' class='enviar'>
</form>

<? }else{
$cuerpo = 'DADES:\n';
$cuerpo .= 'Nom: ' . $HTTP_POST_VARS['nom'] . '\n';
$cuerpo .= 'Email: ' . $HTTP_POST_VARS['email'] . '\n';
$cuerpo .= 'Comentaris: ' . $HTTP_POST_VARS['coment'] . '\n';

mail(\'[email protected]\',\'assumpte\',$cuerpo);

echo '<br><strong>El formulari s'ha enviat correctament</strong><br><br><a href='index.htm'>Tornar a l'inici</a>';
}?>
";

echo $variable;} ?>

-------------------------------------------------------------
Leyenda: HTML;PHP

Yo no sé si hace falta tanto colorcito para separar las diferentes partes, pero lo hago por si os ayuda. Si preferis el código a secas decídmelo y no me lo "curro" tanto xd
Como veis, sencillamente ejecuto la función en la primera página, y la función contiene un formulario que se envía por e-mail. Como preguntabas, función y la variable no retornan ningún valor, sino que deben retornar el código (de HTML y PHP) para ejecutarse dentro de "contactar.php".
La pregunta, pues, queda clara: Cuando pongo ' y cuando ", y cómo marco el código PHP dentro de la variable? Graciasss!

Última edición por Fol2DTiS; 26/01/2005 a las 11:07
  #4 (permalink)  
Antiguo 26/01/2005, 13:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El array:
$HTTP_POST_VARS

NO es "superglobal" .. es decir .. no tiene ambito para una función .. En resumen .. no puedes acceder a ese array (ni variables en el) en una llamada a una función si no lo pasas por parámetro o bien lo defines como global en tu función.

En tu funcion (en la llamada a esta y declaracion).. deberías hacer algo tipo:

funcion($HTTP_POST_VARS){
// etc
}

O bien

funcion(){
global $HTTP_POST_VARS;
// etc ...
}

Pero sería mejor que uses los arrays superglobales: por seguridad y por comodidad.

Los arrays $_POST, $_GET .. etc son ya de por si "superglobales" es decir .. no debes declararlos como globales ni pasarlos como parámetro a las funciones donde quieras usarlos .. tienen todo el ambito en todo el script para usarlos.

Cita:
Yo no sé si hace falta tanto colorcito para separar las diferentes partes, pero lo hago por si os ayuda
usando el botón "PHP" puedes colorear el código automáticamente .. Las "partes" las defines tu luego (diciendonos).

Un saludo,
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 16:46.