Foros del Web » Programando para Internet » PHP »

Relacion

Estas en el tema de Relacion en el foro de PHP en Foros del Web. ...para la siguiente query que he desarrolado en base a lo poco que leido sobre MSSQL - php...se supone es un LOGIN... Código PHP: <?php  ...
  #1 (permalink)  
Antiguo 29/01/2009, 14:12
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Relacion

...para la siguiente query que he desarrolado en base a lo poco que leido sobre MSSQL - php...se supone es un LOGIN...

Código PHP:
<?php 
require("../Querys/conexion.php");
if(((
$_POST['email1'])!="")&&(($_POST['email2'])!="")&&(($_POST['email3'])!="")&&(($_POST['contrasenaingreso'])!="")){
$emailquery1 mssql_query("SELECT email1 from usuarios WHERE email1 = '{$_POST['email1']}'"); 
$emailquery2 mssql_query("SELECT email2 from usuarios WHERE email2 = '{$_POST['email2']}'");
$emailquery3 mssql_query("SELECT email3 from usuarios WHERE email3 = '{$_POST['email3']}'");
$contrasenaquery mssql_query("SELECT contraseña from usuarios WHERE contraseña = '{$_POST['contrasenaingreso']}'");
if((
mssql_num_rows($emailquery1)==true)&&(mssql_num_rows($emailquery2)==true)&&(mssql_num_rows($emailquery3)==true)&&(mssql_num_rows($contrasenaquery))==true){ 
    echo
"Login correcto"; }else{echo"No se ha encontrado el registro";};}else{echo"Login fallido, Error3: 'campo(s) vacio(s)' ";};
?>
...de que forma puedo hacer que una vez ingresen los datos en el LOGIN, me muestre la informacion correspondiente a la cuenta?
  #2 (permalink)  
Antiguo 29/01/2009, 16:09
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

Guarda mediante variables de sesion los datos que kieras mostrar al momento que el login de tus usuarios sea aceptado, mediante el fetch puedes obtener los datos de tus queries:

Código PHP:
if (mysql_num_rows($resultado)==1)
{

$rowEmp mysql_fetch_assoc($resultado);

session_start();
$_SESSION['id'] = $rowEmp['nombre'];
$_SESSION['pass'] = $rowEmp['apellido'];
$_SESSION['mail'] = $rowEmp['email'];

$resultado lo obtenies mediante

Código PHP:
$resultado mysql_query("cadena para tu select"); 
Espero sea de ayuda

Salidos
  #3 (permalink)  
Antiguo 29/01/2009, 16:39
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Relacion

...lo he entendido, pero este metodo no me ha quedado claro...

Código PHP:
session_start(); 
  #4 (permalink)  
Antiguo 29/01/2009, 16:51
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Relacion

...podrias ser algo mas explicito...?
  #5 (permalink)  
Antiguo 29/01/2009, 17:24
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

Cada vez que vas a utilizar o crear una variable de sesion es necesario que inicies el metodo session_start(); lo tendrias que usar algo asi:

Toma de Datos de BD
Código PHP:
....

session_start();

$_SESSION['nombre'] = $rowEmp['nombre'];
$_SESSION['apellido'] = $rowEmp['apellido'];

.... 
Ahora si vas a utilizar las variables en otro archivo donde los desplegaras

Código PHP:
........

session_start();

echo 
'Tu Nombre de Usuario es: '.$_SESSION['nombre'];

echo 
'Tu Apellido es: '.$_SESSION['apellido'];
.......... 
Espero haber resuelto tu duda, sino siempre contame.

saludos
  #6 (permalink)  
Antiguo 29/01/2009, 17:38
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Relacion

...he logrado estructurar lo siguiente en base a lo que has mencionado:

Código PHP:
<?php
require("../Querys/conexion.php");
$seleccion mssql_query("SELECT nombres FROM usuarios WHERE email1 like '{$_POST['email1']}'");
if(
mssql_num_rows($seleccion)=true){

$captura mssql_fetch_assoc($resultado);

session_start(); 
$_SESSION['nombres'] = $captura['nombres'];echo 'Nombre: '.$_SESSION['nombres'];
$_SESSION['apellido'] = $captura['apellido'];echo 'Apellido: '.$_SESSION['apellidos']; 
$_SESSION['año'] = $captura['año']; echo 'Año: '.$_SESSION['año'];


};
?>

...el error mencionado es el siguiente:

Fatal error: Can't use function return value in write context in C:\xampp\htdocs\Querys\seleccion.php on line 4


pd: el metodo con el que trabajo ahora es POST, no se si sea necesario llamarlas como: $_POSt?
  #7 (permalink)  
Antiguo 29/01/2009, 17:54
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

El error te lo da en la linea No. 4 que es esta:

Código PHP:
$captura mssql_fetch_assoc($resultado); 
Pero el Fetch lo estas haciendo a $resultado, y lo debes de realizar a $seleccion

saludos
  #8 (permalink)  
Antiguo 29/01/2009, 17:55
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: Relacion

Error: La comparacion debe hacerse con dos signos igual, de lo contrario es una asignacion

Código PHP:
if(mssql_num_rows($seleccion)=true// Esto evalua si se asigna true correctamente a la funcion
if(mssql_num_rows($seleccion)==true// Esto compara el resultado de la funcion
if(mssql_num_rows($seleccion)) // Esto es lo mismo que la anterior 
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 29/01/2009, 18:07
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

Cierto Triby en el if es == ya que es comparacion y no asignacion
  #10 (permalink)  
Antiguo 29/01/2009, 18:09
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: Relacion

Asi es, jfl_freak, aunque luego tendra que arreglar tambien lo que le mencionabas de $resultado y $seleccion.
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 29/01/2009, 18:11
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Relacion

...el codigo a continuacion:

Código PHP:
<?php
require("../Querys/conexion.php");
$seleccion mssql_query("SELECT nombres,apellidos,sexo FROM usuarios WHERE email1 like '{$_POST['email1']}'");
if(
mssql_num_rows($seleccion)==true){

$captura mssql_fetch_assoc($seleccion);

session_start(); 
$_SESSION['nombres'] = $captura['nombres'];echo 'Nombre: '.$_SESSION['nombres'];
$_SESSION['apellidos'] = $captura['apellidos'];echo 'Apellido: '.$_SESSION['apellidos'];
$_SESSION['sexo'] = $captura['sexo'];echo 'Sexo: '.$_SESSION['sexo'];
} ;
?>

...el codigo muestra satisfactoriamente los datos de la respectiva cuenta, pero...
...muestra el siguiente error:

Código:
Login correcto
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\Querys\ingreso.php:9) in C:\xampp\htdocs\Querys\seleccion.php on line 8

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Querys\ingreso.php:9) in C:\xampp\htdocs\Querys\seleccion.php on line 8
Nombre: Edison JairApellido: LizcanoSexo: masculino

...a este punto ya tengo mucho que agradecerles...(Y)...gracias...
  #12 (permalink)  
Antiguo 29/01/2009, 18:18
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

Pues bueno no es de asustarse ya q es un warning, prueba colocando el session_start() al inicio y de script.
Puede ser que realices alguna salida a pantalla antes del session_start, entonces siempre es recomendable poner el Session_start al estar iniciando tu script
saludos
  #13 (permalink)  
Antiguo 29/01/2009, 18:40
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Relacion

...listo, gracias a todos, el codigo resultante es:

Código PHP:
<?php 
require("../Querys/conexion.php");
$seleccion mssql_query("SELECT nombres,apellidos,sexo FROM usuarios WHERE email1 like '{$_POST['email1']}'");
if(
mssql_num_rows($seleccion)==true){
$captura mssql_fetch_assoc($seleccion);
$_SESSION['nombres'] = $captura['nombres'];echo 'Nombre: '.$_SESSION['nombres'];
$_SESSION['apellidos'] = $captura['apellidos'];echo 'Apellido: '.$_SESSION['apellidos'];
$_SESSION['sexo'] = $captura['sexo'];echo 'Sexo: '.$_SESSION['sexo'];
};
?>
...y el metodo al inicio de la pagina "PADRE"...gracias...
  #14 (permalink)  
Antiguo 29/01/2009, 18:47
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

Ya sabes para eso estamos
  #15 (permalink)  
Antiguo 29/01/2009, 23:04
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Relacion

...aun me queda una pequeña duda con el codigo:

...la pregunta seria:
...por que el mssql_num_rows si el mssql_fetch_assoc es el que lleva la orden...

...el mssql_num_rows captura los el "numero de filas" de la query, y es ahi donde ni idea, sobra destacar mssql_fetch_assoc ya que es este mismo quien ordena la busca en relacion a los otros datos...siendo esto, entonces por que el mssql_num_rows?
  #16 (permalink)  
Antiguo 29/01/2009, 23:45
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Relacion

Pues bueno el mssql_num_rows te sirve para saber cuantos valores te devuelto tu select, por ejemplo si tienes un condicion para saber si existe o no el usuario; realizas el select y si el mssql_num_rows te da que es igual a 0 entonces dices que no existe o bien si es igual a 1 kiere decir que si existe el usuario.

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 20:40.