Foros del Web » Programando para Internet » PHP »

Usar punto y coma dentro de un echo sin cerrarlo

Estas en el tema de Usar punto y coma dentro de un echo sin cerrarlo en el foro de PHP en Foros del Web. Quiero conseguir cerrar la parte de $_SESSION['nombre']=$usuario para que funcione, pero si lo hago se cierra el echo. Esto surge porque si luego a la ...
  #1 (permalink)  
Antiguo 12/05/2010, 15:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 0
Usar punto y coma dentro de un echo sin cerrarlo

Quiero conseguir cerrar la parte de $_SESSION['nombre']=$usuario para que funcione, pero si lo hago se cierra el echo.

Esto surge porque si luego a la pagina que redirijo hago echo $_SESSION['nombre'] me sale "$usuario."'>$usuario</a>" esa parte de código pero con sus valores correspondientes, por lo que creo que lo que le falta es el punto y coma.

Código PHP:
Ver original
  1. echo "<b>Autor:</b> <a id='autor' href='perfil2.php' onclick='".$_SESSION['nombre']=$usuario."'>$usuario</a>"

He probado a ponerlo detrás de las dobles comillas, pero tampoco funciona, te muestra el punto y coma en el echo.


Espero haberme explicado bien.

Muchas gracias.

PD: Lo que quiero lograr con esto es que al hacer clic en el nombre del autor, se guarde su nombre, y en la página de perfil.php, buscaría su nombre en la BBDD y entonces ya pondría sus datos, no sé si está bien hecho así.

Última edición por Weahl; 12/05/2010 a las 15:08
  #2 (permalink)  
Antiguo 12/05/2010, 15:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo


Código PHP:
Ver original
  1. $_SESSION['nombre']=$usuario;
  2. echo "<b>Autor:</b> <a id='autor' href='perfil2.php' onclick='".$usuario."'>$usuario</a>";
...
  #3 (permalink)  
Antiguo 12/05/2010, 15:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo

A ver si lo he entendido, al hacer ese onclick...no, no lo he entendido, funciona, pero no entiendo el porqué.

Si la SESSION se declara antes, luego el onclick que es lo que hace exactamente.
  #4 (permalink)  
Antiguo 12/05/2010, 15:17
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo

Cita:
Iniciado por Weahl Ver Mensaje

Si la SESSION se declara antes, luego el onclick que es lo que hace exactamente.
El onclick de GatorV, hace exactamente lo que tú pretendías con tu código .
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 12/05/2010, 15:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo

Ya pero lo que busco es la lógica, el orden de acontecimientos que suceden en solo esas dos líneas de código, a ver si así consigo entender porque si que funciona de este modo.

Muchas gracias a ambos ;).
  #6 (permalink)  
Antiguo 12/05/2010, 15:58
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo

Cita:
Iniciado por Weahl Ver Mensaje
Ya pero lo que busco es la lógica, el orden de acontecimientos que suceden en solo esas dos líneas de código, a ver si así consigo entender porque si que funciona de este modo.

Muchas gracias a ambos ;).


No tengo idea de lo que quieres, pero esto te va a servir para hacer clik sobre un enlace y enviar un valor almacenado en el...

PD: se puede hacer de muchas maneras esto... Espero que te sirva de algo.

El codigo:

<?

session_start();

//pon todo esto en un archivo llamado "perfil2.php"

if($_GET['verGet']){
$_SESSION['ses_autor']='';
}

//aca tienes el nombre almacenado en una variable
//el autor esta litaral pero puede ser recuperado de un array
$usuario1 = "Juan Perez1";
$usuario2 = "Juan Perez2";
$usuario3 = "Juan Perez3";

//agregas la variable a la url ludgo de ? (esto seria un envio get)
echo "<li><b>Autor:</b><a href='perfil2.php?nameAutor=".$usuario1."'>".$usua rio1."</a>";
echo "<li><b>Autor:</b><a href='perfil2.php?nameAutor=".$usuario2."'>".$usua rio2."</a>";
echo "<li><b>Autor:</b><a href='perfil2.php?nameAutor=".$usuario3."'>".$usua rio3."</a>";



//en este caso el envio es a la misma pagina
//pero podria ser a otra pagina, inclusive a otro servidor
if($_GET['nameAutor']){
echo "<br />Se buscara a <b>".$_GET['nameAutor'] ."</b> en la db.";
$_SESSION['ses_autor']=$_GET['nameAutor'];
}


?>

<!-- Esto para borrar la sesion -->
<p /><a href="?verGet=tre">Borrar</a>


<!-- copia (y pega) hasta aca -->
  #7 (permalink)  
Antiguo 12/05/2010, 16:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo

No me ha funcionado, he corregido un corchete de el primer IF que no estaba cerrado pero no consigo obtener los datos, aparte que no entiendo muy bien como funciona, sobre todo la parte en la que recoge los datos y en las que se declara la sesión, que no se muy bien para que sirve declararla.

Y aunque no tenga respuesta, muchas gracias por haberte molestado en enseñarme algo nuevo, espero que puedas leerme y contestarme a mis dudas ^^.

Saludos.


PD: Al final resulta que no me funciona el código de GatorV :S, ya que parece ser que me coge la variable del ultimo usuario, no del que hago clic.


EDIT: Wiwi74, ¡conseguí hacerlo!. Resulta que era tan sencillo como:

Código PHP:
Ver original
  1. Origen:
  2. <a id='autor' href='perfil2.php?autor=$usuario'>$usuario</a>
  3.  
  4. Destino:
  5. $sql= mysql_query("SELECT * FROM usuario WHERE usuario = '".$_GET['autor']."'", $conexion);

No había que crear sesiones ni nada por el estilo, que como me lo pusiste era un poco lío jeje ^^.

Muchas gracias ;).

Última edición por Weahl; 12/05/2010 a las 16:41
  #8 (permalink)  
Antiguo 14/07/2010, 11:24
Avatar de DeLaF  
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Usar punto y coma dentro de un echo sin cerrarlo

Cita:
Iniciado por Weahl Ver Mensaje
$sql= mysql_query("SELECT * FROM usuario WHERE usuario = '".$_GET['autor']."'", $conexion);
Nunca uses directamente $_GET en tus consultas SQL, ya que te arriesgas a ser victima de SQL Injection[1].

Usa algun metodo para revisar lo que los usuarios pueden "meter" a tu base de datos, ejemplo pasando la variable $_GET['autor'] por mysql_real_escape_string[2]

Salu2,

[1] http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
[2] http://cl.php.net/mysql_real_escape_string

Etiquetas: coma, echo, punto
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:36.