Foros del Web » Programando para Internet » PHP »

Novato con un problemilla en php

Estas en el tema de Novato con un problemilla en php en el foro de PHP en Foros del Web. No se que hago mal pero me devuelve una pagina vacia. No me da ningun error, que es lo que me extraña. Este es el ...
  #1 (permalink)  
Antiguo 25/05/2012, 13:29
 
Fecha de Ingreso: mayo-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 2
Novato con un problemilla en php

No se que hago mal pero me devuelve una pagina vacia. No me da ningun error, que es lo que me extraña. Este es el codigo:

<?php
$mail=$_SESSION['email'];
session_start();
$conectar = mysql_connect("localhost","yopis","pass");
mysql_select_db("usuarios",$conectar);
$sql = mysql_query("SELECT visitas FROM usuarios WHERE email ='$email'");
$row=mysql_fetch_array($sql);
$numero==0;
if ($row > $numero){
echo $row ['visitas'];
}
?>
  #2 (permalink)  
Antiguo 25/05/2012, 13:39
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: Novato con un problemilla en php

Hola,
El problema que tienes es que estás pidiendo el valor mail a la session antes de que ésta se inicialice.
Deberías poner session_start() al inicio de tu código.
Saludos
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #3 (permalink)  
Antiguo 25/05/2012, 14:03
 
Fecha de Ingreso: mayo-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 2
Respuesta: Novato con un problemilla en php

Es verdad. lo he cambiado pero sigue igual. He comprobado que me recoge la sesion:
echo $mail;
pero el problema sigue... no se si es porque visitas es un campo numerico
alguna idea??
  #4 (permalink)  
Antiguo 25/05/2012, 14:08
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Novato con un problemilla en php

$numero==0;

Eso no esta bien recuerda que los dos == son para comparacion, pero para asignacion es solo uno =

$numero = 0;
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 25/05/2012, 14:09
Avatar de jakuam  
Fecha de Ingreso: abril-2007
Mensajes: 354
Antigüedad: 17 años
Puntos: 0
Respuesta: Novato con un problemilla en php

ricardo , tiene razon pablo .. tienes igual un errror en $numero ==0; , prueba con $numero =0;

saludos
__________________
Jakuam
Reserva Hoteles Online
Turismo San Rafael Mendoza
  #6 (permalink)  
Antiguo 25/05/2012, 14:11
Avatar de jakuam  
Fecha de Ingreso: abril-2007
Mensajes: 354
Antigüedad: 17 años
Puntos: 0
Respuesta: Novato con un problemilla en php

jota enviaste un segundo antes :D ... pero es eso el == esta mal ...
__________________
Jakuam
Reserva Hoteles Online
Turismo San Rafael Mendoza
  #7 (permalink)  
Antiguo 25/05/2012, 14:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Novato con un problemilla en php

$numero==0;

Eso no esta bien recuerda que los dos == son para comparacion, pero para asignacion es solo uno =

$numero = 0;

Adicionalmente no tenes que crear una variable para eso:

Código PHP:
Ver original
  1. <?php
  2. $mail=$_SESSION['email'];
  3.  
  4. $conectar = mysql_connect("localhost","yopis","pass");
  5. mysql_select_db("usuarios",$conectar);
  6. $sql = mysql_query("SELECT visitas FROM usuarios WHERE email ='$email'");
  7. $numero_registros = mysql_num_rows($sql);
  8.  
  9. if ($numero_registros > 0){
  10. while($resultado = mysql_fetch_array($sql)){
  11. echo $resultado['visitas'];
  12. }
  13. }else{
  14. echo 'No se encontraron visitas.';
  15. }
  16. ?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 25/05/2012, 14:16
 
Fecha de Ingreso: marzo-2012
Ubicación: Republica Dominicana
Mensajes: 51
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Novato con un problemilla en php

Es logico que tre hiba a devolver una pagina en blanco el problema esta enn que tu consulta pones

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT visitas FROM usuarios WHERE email ='[/B]$email[/B]'");x

Y la variable es: $mail...como no encuentra la variable devuelve false o 0

Espero haberte ayudado... :D
  #9 (permalink)  
Antiguo 26/05/2012, 02:10
 
Fecha de Ingreso: mayo-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 2
Respuesta: Novato con un problemilla en php

Gracias a todos, algo voy aprendiendo pero hay algo que me falla todavia porque en el resultado del numero de registros me devuelve 0 y me dice que no se encontraron visitas, por lo que deduzco que no encuentra el email. estará mal hecho el where?
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     $mail=$_SESSION['email'];
  4.      echo $mail;
  5.     $conectar = mysql_connect("localhost","yopis","pass")
  6.     or die ("Fallo en el establecimiento de la conexión");
  7.     mysql_select_db("dbusuarios",$conectar)
  8.     or die("Error en la selección de la base de datos");
  9.     $sql = mysql_query("SELECT visitas FROM usuarios WHERE email ='$email'");
  10.     $numero_registros = mysql_num_rows($sql);
  11.     echo $numero_registros;
  12.     if ($numero_registros > 0){
  13.     while($resultado = mysql_fetch_array($sql)){
  14.     echo $resultado['visitas'];
  15.     }
  16.     }else{
  17.     echo 'No se encontraron visitas.';
  18.     mysql_close($conectar);
  19.     }
  20.     ?>
Estructura de tabla para la tabla `usuarios`
( `usuario` varchar(50) collate utf8_spanish_ci NOT NULL,
`contrasena` varchar(50) collate utf8_spanish_ci NOT NULL,
`email` varchar(50) collate utf8_spanish_ci NOT NULL,
`visitas` tinyint(4) NOT NULL default '5',
UNIQUE KEY `email` (`email`))
  #10 (permalink)  
Antiguo 26/05/2012, 04:05
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Novato con un problemilla en php

Como tu bien dices tu variable $email debe de estar vacía... pero pruebalo haciendo un simple echo (como tienes puesto arriba, pero prueba a hacerlo independientemente del código en otra página o apartado de todo el código):
Código PHP:
Ver original
  1. <?
  2.     session_start();
  3.     $mail=$_SESSION['email'];
  4.     echo $mail;
  5.     ?>

Si te muestra el email correctamente, la variable esta bien... revisar el código es lo unico

Yo registro todos los datos de la siguiente forma:
Código PHP:
Ver original
  1. <?
  2. $usuarios = mysql_query("SELECT * FROM usuarios WHERE email='aquiponestuemail"); // Consulta a la base de datos para determinar si existe algun email con el email introducido
  3. if($ok = mysql_fetch_array($usuarios)){ // Si existe, continuamos...
  4. // Ahora puedes sacar todos los datos de esa fila que contenga ese email
  5. $_SESSION[email] = $ok["email"];
  6. // Puedes sacar de otras columnas...
  7. session_register("nombre");
  8. $_SESSION[nombre] = $ok["nombre"];
  9. echo "Email: $_SESSION[email]";
  10. }else{
  11. echo "No existe ese email en la base de datos";
  12. }
  13. ?>
  #11 (permalink)  
Antiguo 26/05/2012, 04:32
 
Fecha de Ingreso: mayo-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 2
Respuesta: Novato con un problemilla en php

Gracias a todos. ademas de las otras cosas que me deciais y ya cambié, el problema era que la variable la llamé $mail y en el where la recogia como $email. disculpad la torpeza!!! Gracias
  #12 (permalink)  
Antiguo 08/06/2012, 05:45
 
Fecha de Ingreso: junio-2012
Mensajes: 11
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Respuesta: Novato con un problemilla en php

Hola a todos!!!!!!
estoy empezando a hacer mis primeros pinitos en php y a la primera de cambio me ha surgido un problema clave. Os cuento. He creado un html muy basico para dar de alta un formulario. A continuación un php que recibe la informacion del html y carga esos resultados en una bbdd (MySQL) me instalé el xampp. El problema es que no sé porque no me lo inserta en la BBDD, y el caso es que el programa no me da problema, por un if que puse sé que no se insertan en la BBDD. Bajo mi novato punto de vista creo que el codigo está bien, pero nose....he mirado y buscado de todo en internet. Pienso que puede ser por la configuración del xammp pero vamos que me funciona perfectamente (eso creo), porque através del phpmyadmin he podido introducir registros en mi basededatos.
Os escribo el código para que vosotros expertos me echeis un cable. Muchas gracias!!!!!!!!


<?php
//llamar a la funcion

//recibir la informacion de login.html
$nombre=strip_tags($_POST['Nombre']);
$apellido=$_POST['apellidos'];
echo "$nombre";

//comprobar que el usuario no existe en la bbdd
//registrar usuarios que no hayan sido dados de alta

$conexion=mysql_connect("localhost","root","contra seña") or die("problema al conectar el host");
$con=mysql_select_db("test",$conexion) or die("problemas al conectar la base de datos") or die("problemas la conectar con la bd");

if($con==true)
{
echo "conexion OK"; // esto funciona
}

$insertar="INSERT INTO 'tablauno' (nombre,apellidos) VALUES ('$nombre', '$apellido')";
$insertardb=mysql_query($insertar,$conexion) or die("problema");
if($insertardb==true)
{
echo "Usuario registrado";
}

else
{
echo 'Usuario No registrado con éxito';

}
//else
//{
// echo 'Hubo un error en el registro';
//}


//el resultado de esa conexion lo guardamos en una variable para poder emplearla mas facilmente. es la varibale que nos permite la conexion en la base de datos
// nombre tabla usuarios
//$con=Conectarse
//$sql="SELECT" Usuario * FROM usuarios WHERE usuario=$username"


?>

---------------------------------------------------------------------------------

este es el html




<html>
<head>
<title> Prueba de html </title>
</head>



<body>
<form method="POST" action="prueba.php">
Nombre:<input type="text" name="Nombre" /> <br />
Apellidos: <input type="text" name="apellidos" /> <br />
Registrase: <input type= "submit" name="login" /> <br/>

</form>
</body>
</html>
  #13 (permalink)  
Antiguo 08/06/2012, 09:18
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 8 meses
Puntos: 44
Respuesta: Novato con un problemilla en php

garridoyuste crea un post nuevo y ahi lo podrán atender mejor... saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #14 (permalink)  
Antiguo 08/06/2012, 09:19
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 8 meses
Puntos: 44
Respuesta: Novato con un problemilla en php

Código PHP:
Ver original
  1. $insertar="INSERT INTO 'tablauno' (nombre,apellidos) VALUES ('$nombre', '$apellido')";


ahi está tu problema... esperas un campo llamada $nombre cuando en el formulario es Nombre y esperas $apellido cuando en el formulario es apellidos, te recomiendo abrir tema nuevo... es mejor... y así si alguien tiene un problema similar al tuyo puede encontrarlo fácilmente


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #15 (permalink)  
Antiguo 11/06/2012, 01:50
 
Fecha de Ingreso: junio-2012
Mensajes: 11
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Novato con un problemilla en php

MUCHAS GRACIAS p414. Pero no funciona, además yo creo que está bien, que el value que hay que meter es el de las variables que reciben el valor del formulario. Voy a ver si creo otro tema!. GRACIAS

Etiquetas: mysql, sql, usuarios
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

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 22:31.