Foros del Web » Programando para Internet » PHP »

Ayuda con código

Estas en el tema de Ayuda con código en el foro de PHP en Foros del Web. Hola a todos, os pido ayuda porque estoy desesperado, muchas gracias de antemano. Tengo una pequeña base de datos, para comprobar que solo los usuarios ...
  #1 (permalink)  
Antiguo 07/09/2008, 15:21
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Exclamación Ayuda con código

Hola a todos, os pido ayuda porque estoy desesperado, muchas gracias de antemano.

Tengo una pequeña base de datos, para comprobar que solo los usuarios registrados tengan acceso a una página, mediante un formulario pido email y contraseña, mi problema está en que la consulta que cuenta si hay algun registro con dicho correo y contraseña, siempre me sale cero, cosa que no debería porque he metido los datos a pelo en la base de datos. La conexión con la BBDD y la tabla se hace correctamente. Os dejo todo para me que me echeis un vistazo:


FORMULARIO

<?php
$servidor="*";
$usuario="*";
$password="*";
$basedatos="*";

$conexion=mysql_connect($servidor,$usuario,$passwo rd)
or die("No se puede realizar la conexión al servidor");
mysql_select_db($basedatos)
or die("No se puede abrir la base de datos");

echo "<center>";
echo "<br><br>";
echo "<font color=\"#428DD9\" size=\"50\"><b>Zona de usuarios registrados</b></font><p>";
echo "<br><br><br>";
echo "<img src=\"./candado.jpg\">";
echo "<center><font color=\"#428DD9\">";
echo "<FORM ACTION=\"./consulta.php\" target=\"_parent\" METHOD=\"POST\">";

echo "<br>";
echo "Usuario:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;";

echo "<input type=\"text\" name=\"email\" size=12><br>";

echo "Contraseña:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

echo "<input type=\"password\" name=\"password\" size=12><br>";

echo "<br>";

echo "<input type=\"submit\" value=\"Entrar\">";

echo "</FORM>";

echo "</body></html>";
?>

CONSULTA SI EXISTE DICHO REGISTRO

<?php
$servidor="*";
$usuario="*";
$password="*";
$basedatos="*";

$conexion=mysql_connect($servidor,$usuario,$passwo rd)
or die("No se puede realizar la conexión al servidor");
mysql_select_db($basedatos)
or die("No se puede abrir la base de datos");

$consulta1="select count(*) from contactos where correo= \"".$_POST['email']."\" and contrasenia = \"".$_POST['password']."\"";
$resultado1=mysql_query($consulta1);
$fila=mysql_fetch_array($resultado1);
if($fila[0]>0){
include ("todosLosProductos.html");
exit();
}
if($fila[0]<1){
include ("index.php");
echo "<font color=\"#FF0000\" size=\"5\"><b>¡Nombre de usuario o contraseña incorrecta!</b></font><p>";
exit();
}
?>

BASE DE DATOS

-- phpMyAdmin SQL Dump
-- version 2.7.0-pl1
-- http://www.phpmyadmin.net
--
-- Servidor: 10.0.5.164
-- Tiempo de generación: 03-09-2008 a las 22:12:43
-- Versión del servidor: 4.99.99
-- Versión de PHP: 4.4.1
--
-- Base de datos: `*`
--
DROP DATABASE `*`;
CREATE DATABASE `*` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE *;

-- Estructura de tabla para la tabla `contactos`
--

CREATE TABLE `contactos` (
`nombre` varchar(200) default NULL,
`apellidos` varchar(200) default NULL,
`correo` varchar(200) NOT NULL default '',
`contrasenia` varchar(200) default NULL,
`pais` varchar(200) default NULL,
`fechanacimiento` varchar(200) default NULL,
`sexo` varchar(200) default NULL,
`telefono` varchar(200) default NULL,
`nombreempresa` varchar(200) default NULL,
`correoempresa` varchar(200) default NULL,
`direccionempresa` varchar(200) default NULL,
`telefonoempresa` varchar(200) default NULL,
`sectorempresa` varchar(200) default NULL,
PRIMARY KEY (`correo`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Volcar la base de datos para la tabla `contactos`
--

INSERT INTO `contactos` (`nombre`, `apellidos`, `correo`, `contrasenia`, `pais`, `fechanacimiento`, `sexo`, `telefono`, `nombreempresa`, `correoempresa`, `direccionempresa`, `telefonoempresa`, `sectorempresa`) VALUES ('Rebeca', '', '[email protected]', 'rebeca1975', 'España', '1975', 'Hombre', '626054951', 'Alhambra Comercio Exterior', '', '', '', ''),
('Jorge', 'Martín', '*@hotmail.com', 'izquierdo1203', 'España', '1985/04/10', 'Hombre', '*', '', '', '', '', '');


¿Esta consulta está bien? supongo que es donde esta el fallo...

$consulta1="select count(*) from contactos where correo= \"".$_POST['email']."\" and contrasenia = \"".$_POST['password']."\"";
  #2 (permalink)  
Antiguo 07/09/2008, 16:12
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: Ayuda con código

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 08/09/2008, 14:19
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Ayuda con código

Nadie me ayuda?
  #4 (permalink)  
Antiguo 08/09/2008, 14:36
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Ayuda con código

Que tal jogegetafe, prueba así tu código, para limpiar y escapar caracteres especiales en tus variables te recomiendo mysql_real_escape_string()

Código PHP:
$mail mysql_real_escape_string($_POST['email']);
$password mysql_real_escape_string($_POST['password']);
$consulta1 "select * from contactos where correo= '$mail' and contrasenia = '$password'";
$resultado1 mysql_query($consulta1$conexion) or die("Error en query $consulta1:".mysql_error());
if(
mysql_num_rows($resultado1) != 0){
include (
"todosLosProductos.html");
exit();
}else{ 
include (
"index.php");
echo 
"<font color=\"#FF0000\" size=\"5\"><b>¡Nombre de usuario o contraseña incorrecta!</b></font><p>";
exit();

Saludos.
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 23:34.