Foros del Web » Programando para Internet » PHP »

$_COOKIES['nombre'];

Estas en el tema de $_COOKIES['nombre']; en el foro de PHP en Foros del Web. Mi codigo php @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php if ( isset ( $_POST [ 'enviar' ] ) ) {     $conexion = ...
  #1 (permalink)  
Antiguo 31/07/2012, 08:59
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Pregunta $_COOKIES['nombre'];

Mi codigo php
Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['enviar'])){
  3.  
  4.  $conexion = mysql_connect("localhost","root","lamonda2@");
  5.  mysql_select_db("web");
  6.  $registros = mysql_query("SELECT nombre,contrasena FROM user WHERE nombre = '$_POST[nombre]' AND contrasena = '$_POST[contrasena]'");
  7.  
  8.  if($reg = mysql_fetch_array($registros)){
  9.  $x = $reg['nombre'];
  10.  setcookie("nombre", "$x");
  11.  header('Location: index.php');
  12.  }else{
  13.  echo "Incorrecto";
  14.  }
  15.  
  16. }
  17. ?>
  18.  
  19. <?php
  20. if($_COOKIE['nombre']){
  21.  
  22.  echo $_COOKIE['nombre'];
  23.  }else{
  24.  echo'
  25. <form action="" method="post">
  26. Nombre: <input name="nombre"><br>
  27. Contraseña: <input name="contrasena"><br>
  28. <input name="enviar" type="submit">
  29. </form>';
  30.  
  31. }
  32. ?>

Como ago para que no tenga que poner mi codigo html en un echo '';
Y que en todas las paginas se guarde la session para no tener que poner mi nombre y contraseña cada vez que cambie de pagina.

No quiero que me deis codigos solo que me expliqueis.
  #2 (permalink)  
Antiguo 31/07/2012, 09:02
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 9 meses
Puntos: 127
Respuesta: $_COOKIES['nombre'];

Cita:
Iniciado por PepeF Ver Mensaje
Mi codigo php
Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['enviar'])){
  3.  
  4.  $conexion = mysql_connect("localhost","root","lamonda2@");
  5.  mysql_select_db("web");
  6.  $registros = mysql_query("SELECT nombre,contrasena FROM user WHERE nombre = '$_POST[nombre]' AND contrasena = '$_POST[contrasena]'");
  7.  
  8.  if($reg = mysql_fetch_array($registros)){
  9.  $x = $reg['nombre'];
  10.  setcookie("nombre", "$x");
  11.  header('Location: index.php');
  12.  }else{
  13.  echo "Incorrecto";
  14.  }
  15.  
  16. }
  17. ?>
  18.  
  19. <?php
  20. if($_COOKIE['nombre']){
  21.  
  22.  echo $_COOKIE['nombre'];
  23.  }else{
  24.  echo'
  25. <form action="" method="post">
  26. Nombre: <input name="nombre"><br>
  27. Contraseña: <input name="contrasena"><br>
  28. <input name="enviar" type="submit">
  29. </form>';
  30.  
  31. }
  32. ?>

Como ago para que no tenga que poner mi codigo html en un echo '';
Y que en todas las paginas se guarde la session para no tener que poner mi nombre y contraseña cada vez que cambie de pagina.

No quiero que me deis codigos solo que me expliqueis.
Para lo primero, la forma es cerrando las etiquetas de php y escribiendo directamente el html. Todo lo que no esté entre <?php y ?> será leído por el navegador e interpretado como código del cliente.

...
?>
<b>código html</b>
<?php
...

Para lo segundo es necesario que al principio de cada script reanudes sesión con session_start() y comprubes a continuación y existe o no expiró el cookie que creaste al crear la sesión.

Un saludo
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #3 (permalink)  
Antiguo 31/07/2012, 09:04
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $_COOKIES['nombre'];

las sessiones las crea en la misma parte que la cookie con los datos extraidos en $reg al igual que hiciste con la cookie , ademas tienes que añadir session_start() en esa pasgina y en todas las demas

para el html cierrar php , muestras html , y vuelves abrir php justo en el else
  #4 (permalink)  
Antiguo 31/07/2012, 09:04
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Respuesta: $_COOKIES['nombre'];

Entonces seria
<?php
session_start();
if($_COOKIE['nombre']){
?>
Aqui el codigo.
<?php
}else{
echo "Registrate o logeate";
?>


con poner eso en todas las paginas basta¿?
  #5 (permalink)  
Antiguo 31/07/2012, 09:06
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 9 meses
Puntos: 127
Respuesta: $_COOKIES['nombre'];

El session_start se utiliza para poder tener disponibles las variables del array $_SESSION porque normalmente se comprueba que estas variables son equivalentes a las de cookie.

Ese código funcionaría.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #6 (permalink)  
Antiguo 31/07/2012, 09:08
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Respuesta: $_COOKIES['nombre'];

Si si gracias funcionar me funciona pero cuando usas las cookie no hace falta poner session_start(); o si?
  #7 (permalink)  
Antiguo 31/07/2012, 09:09
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 9 meses
Puntos: 127
Respuesta: $_COOKIES['nombre'];

Cita:
Iniciado por PepeF Ver Mensaje
Si si gracias funcionar me funciona pero cuando usas las cookie no hace falta poner session_start(); o si?
Session_start como ya dije es para $_SESSION así que no afecta a $_COOKIE

Lo puedes quitar en tu código.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #8 (permalink)  
Antiguo 31/07/2012, 09:09
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $_COOKIES['nombre'];

no hay mejor manera de comprobarlo que haciendolo uno mismo , prueba sin session_start() y lo compruebas
  #9 (permalink)  
Antiguo 31/07/2012, 09:10
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Respuesta: $_COOKIES['nombre'];

Lo he echo y me sale lo mismo por eso lo digo jajka.
  #10 (permalink)  
Antiguo 31/07/2012, 09:10
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $_COOKIES['nombre'];

pues ay tienes la respuesta amigo !!

yo te dije de añadirlo en el caso de que crees sessiones en vez de cookies que yo lo recomiendo.
  #11 (permalink)  
Antiguo 31/07/2012, 09:12
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Respuesta: $_COOKIES['nombre'];

¿Am ok y xq lo recomiendas? Este foro tiene cookies
  #12 (permalink)  
Antiguo 31/07/2012, 09:19
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $_COOKIES['nombre'];

La diferencia de ambas está en cómo cada una guardan los datos:
- Las cookies a nivel local en el navegador del usuario.
- Las Sesiones almacenan los datos directamente en el servidor web.

SESIONES

Ventajas

Pueden almacenar grandes cantidades de datos fácilmente.
Ahorrar ancho de banda al pasar sólo una referencia a la sesión de cada pageLoad. Una “cookie” en el cliente tiene que pasar todos sus datos.
Los datos se almacenan en el servidor web. Esto hace que las sesiones seguras, porque los datos no pueden ser vistos o editados por el cliente.

Desventajas

Termina cuando se cierra el navegador a menos que haya configurado php.ini para alargar la vida sesiones de ‘cookie. No puede durar para siempre.
  #13 (permalink)  
Antiguo 31/07/2012, 09:22
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Respuesta: $_COOKIES['nombre'];

am ok y tu sabes hacer esto index.php?panel=nombre y salga un texto y al poner index.php?panel=contraseña salga un texto diferente?
  #14 (permalink)  
Antiguo 31/07/2012, 09:24
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $_COOKIES['nombre'];

pues comparas el $_GET panel y muestras datos segun el valor puedes hacer un switch o con if
  #15 (permalink)  
Antiguo 31/07/2012, 09:26
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 7 meses
Puntos: 27
Respuesta: $_COOKIES['nombre'];

GRACIAS lo hice con if

Etiquetas: mysql, php+archivos, php+basedatos, php+consulta
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 00:36.