Foros del Web » Programando para Internet » PHP »

Problema con PHP y body onload

Estas en el tema de Problema con PHP y body onload en el foro de PHP en Foros del Web. Hola a todos, antes que nada advertir que estoy empezando en esto del PHP por lo que soy muy torpe en este tema. Explico el ...
  #1 (permalink)  
Antiguo 17/08/2011, 03:17
 
Fecha de Ingreso: agosto-2011
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 12 años, 8 meses
Puntos: 0
Problema con PHP y body onload

Hola a todos, antes que nada advertir que estoy empezando en esto del PHP por lo que soy muy torpe en este tema.
Explico el problema: estoy haciendo un formulario como el de este foro (botones para Negrita, Cursiva, subrayado etc.) y en html va muy bien, pero al ir vinculado a una base de datos tengo que incluirlo dentro de un PHP, y aquí viene el problema, después de muchas pruebas parece ser que es el body onload el que me dá error y no sé como solucionarlo, no sé si són las comillas o cualquier otra cosa, espero que alguno de vosotros me oriente porque no consigo dar con la solución.

Aquí os dejo el mensaje de error:
Cita:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /homepages/34/d374377265/htdocs/llavpenias/example.php on line 19
La linea 19 corresponde al body onload que está en negrita y más grande en el código de abajo.


Aquí os dejo el código. Gracias.

Cita:
<?php
session_start();
if($_SESSION[access]!=TRUE){
header("location: ../phpmbjm/form_admi.php");
exit;
}
else
{
echo "
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
<title>Test</title>
<script src='../bbcode/bbcode.js'></script>

</head>

<body onload="init('texto')">

<form id='FormName' action='added.php' method='post' name='FormName' enctype='multipart/form-data'>
<table width='448' border='0' cellspacing='2' cellpadding='0'>
<tr>
<td width = '150'><div align='right'><label for='fecha'>fecha</label></div></td>
<td><input id='fecha' name='fecha' type='text' size='25' value='' maxlength='255'></td>
</tr>
<tr>
<td width = '150'><div align='right'><label for='texto'>texto</label></div></td>
<td><textarea id='texto' name='texto' rows='4' cols='40'></textarea></td>
</tr>
<tr>
<td width = '150'><div align='right'><label for='imagen'>imagen(introducir nombre.extension)</label></div></td>
<td><input id='imagen' name='imagen' type='text' size='25' value='' maxlength='255'></td>
</tr>
<tr>
<td width='150'></td>
<td><input name='foto' type='file' size='60'><br></td>
<td><br><input type='submit' name='submitButtonName' value='Aceptar'></td>
</tr>
</table>
</form>
</body>
</html>";
}
?>

Última edición por juanzanper; 17/08/2011 a las 03:50
  #2 (permalink)  
Antiguo 17/08/2011, 04:24
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Problema con PHP y body onload

si inicias echo con " y a mitad del contenido se encuentra con otro ", se te produce el error, fijate que el resto de tus atributos, estan dellimitados por comillas simples.
Pero como tu
<body onload="init('texto')">
necesita tanto de comillas simples como de las dobles. para el valor que pasas a la variable y para encerrar el valor de onload, tendrias que escapar las " con \, para que tome el caracter literalmente

es decir
<body onload=\"init('texto');\">
sería lo correcto dentro del echo "cadena";

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 17/08/2011, 04:59
 
Fecha de Ingreso: agosto-2011
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problema con PHP y body onload

Cita:
Iniciado por emprear Ver Mensaje
si inicias echo con " y a mitad del contenido se encuentra con otro ", se te produce el error, fijate que el resto de tus atributos, estan dellimitados por comillas simples.
Pero como tu
<body onload="init('texto')">
necesita tanto de comillas simples como de las dobles. para el valor que pasas a la variable y para encerrar el valor de onload, tendrias que escapar las " con \, para que tome el caracter literalmente

es decir
<body onload=\"init('texto');\">
sería lo correcto dentro del echo "cadena";

Saludos
Gracias emprear, muchas gracias, impagable

un saludo
  #4 (permalink)  
Antiguo 18/08/2011, 12:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con PHP y body onload

Bueno, viendo que lo unico que tienes ahi es puro HTML, no le veo caso a hacerlo con echo, simplemente necesitas cambiar el modo del interprete PHP para que haga la salida directamente:

Código PHP:
Ver original
  1. <?php
  2. if($condicion) {
  3.     // Aqui haces lo que debas hacer
  4. } else {
  5.    // Necesitas un bloque grande de HTML?
  6.    // Finalizas el interprete y envias la salida directa:
  7. ?>
  8. <html>
  9. <head>
  10.     <title><?php echo 'Puedes intercambiar el modo sin problema'; ?></title>
  11. </head>
  12. <body onload="init('texto');">
  13.     <img src="imagen.jpg" alt="imagen" />
  14. </body>
  15. </html>
  16. <?php
  17. } // endif $condicion

De esta forma te evitas tambien problemas de escapar comillas (simples o dobles) y puedes crear tus codigos html correctamente, es decir, los atributos de las etiquetas encerrados entre comillas dobles.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: body, html, onload, formulario
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 06:20.