Foros del Web » Programando para Internet » PHP »

Un include segun opción elegida

Estas en el tema de Un include segun opción elegida en el foro de PHP en Foros del Web. Hola, como están? Bueno é estado leyendo mucho sobre PHP y toy haciendo un proyecto en el cual se me ah precentado una dificultad y ...
  #1 (permalink)  
Antiguo 27/10/2008, 09:11
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 15 años, 10 meses
Puntos: 0
Un include segun opción elegida

Hola, como están? Bueno é estado leyendo mucho sobre PHP y toy haciendo un proyecto en el cual se me ah precentado una dificultad y quiciera saber is alguien me podria ayudar.., bien!
E puesto un sistema de registro y loguin, el cual anda perfectamente pero yo quisiera añadir una cosa extra y no e podido.., al completar el formulaio e dejado un menú desplegable par aelgir una opción que se envia perfectamante a la base de datos y quedaria así:
----------------------------------------------
Username|Password|correo|Opción|
----------------------------------------------
Nombre |pass |correo|opcion|
.................................................. ........

Bueno así se guardan los datos y yo queria que a la hra de loguear, el formulario de loguin mire si esa opcion es (si o no, unicos valores que puede tomar) y redireccione hacia uno u otro lado dependiendo si la opcion en la base de datos figura como si o no.

Espero que se me entienda y me puedan ayudar. un saludito
  #2 (permalink)  
Antiguo 27/10/2008, 09:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 102
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Un include segun opción elegida

Hola Piojo91.
Al momento de logea, haces una consulta con el usuario que logea y tomas el dato de "Opcion" despues con un IF puedes hacer que redireccione a uno como a otro sitio.

if($row[opcion] == 'si' )
{
pagina si
}
else if($row[opcion] =='no')
{
pagina no
}
  #3 (permalink)  
Antiguo 27/10/2008, 09:21
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Un include segun opción elegida

en el codigo de login, ayi obtienes el valor de esa opcion y luego lo redireccionas segun el, como dices en tu logica.....
Código PHP:
if($opcion=='si'){
  
header('location: pagina1.php');
}else{
  
header('location: pagina2.php');

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 27/10/2008, 09:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Un include segun opción elegida

Hu gracias a los 2 ahora lo pruebo, estaba mirando como solucionarlo por ahi y no se me ocurria! mil gracias!
  #5 (permalink)  
Antiguo 27/10/2008, 09:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Un include segun opción elegida

Nu me funca
Osea, yo lo qe quiero ahcer es que eso lo detecte cuando este logueando, ..
Código PHP:
<?
// Configura los datos de tu cuenta 
$dbhost='XXX'
$dbusername='XXX; 
$dbuserpass='
XXX'; 
$dbname='
XXX'; 

session_start(); 

// Conectar a la base de datos 
mysql_connect ($dbhost, $dbusername, $dbuserpass); 
mysql_select_db($dbname) or die('
Cannot select database'); 

if ($_POST['
username']) { 
//Comprobacion del envio del nombre de usuario y password 
$username=$_POST['
username']; 
$password=$_POST['
password']; 
if ($password==NULL) { 
echo "<p>La password no fue enviada</p>"; 
}else{ 
$query = mysql_query("SELECT username,password FROM users WHERE username = '
$username'") or die(mysql_error()); 
$data = mysql_fetch_array($query); 
if($data['
password'] != $password) { 
echo "<p>Login incorrecto</p>"; 
}else{ 
$query = mysql_query("SELECT username,password FROM users WHERE username = '
$username'") or die(mysql_error()); 
$row = mysql_fetch_array($query); 
$_SESSION["s_username"] = $row['
username];  


}
?>
Que ahí, cuando este logueando vea si tiene opción si o no. Gracias
  #6 (permalink)  
Antiguo 27/10/2008, 10:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 102
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Un include segun opción elegida

$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username];

Puede ser por

$query = mysql_query("SELECT username,password,opcion FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username];
if($row[opcion]=='si')
{
header('location: pagina1.php');
}
else if($row[opcion]=='no')
{
header('location: pagina2.php');
}
  #7 (permalink)  
Antiguo 27/10/2008, 10:21
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Un include segun opción elegida

haber amigo, te pongo los errores y el nuevo codigo para que lo reemplazes.

1. session_start() debe siempre estar al inicio.

2. en $dbusername no cerraste comillas.

3. cuando quieras preguntar por si existe una variable "if ($_POST['username'])", tienes que anteporner la clausula isset.

4. tampoco cerraste la comilla del valor de $_SESSION["s_username"].

5. no llames a bd si no es necesario, trata de utilizar menos lienas de codigo.

6. te falto el codigo para redireccionar a la pagina si es si o no segun la opcion.

7. ultimo, trata de tabular tus sentencias, maneja el orden.


codigo php:
Código PHP:
<?php
session_start
(); 

// Configura los datos de tu cuenta 
$dbhost='XXX'
$dbusername='XXX';
$dbuserpass='XXX'
$dbname='XXX'

// Conectar a la base de datos 
mysql_connect ($dbhost$dbusername$dbuserpass); 
mysql_select_db($dbname) or die('Cannot select database'); 

//Comprobacion del envio del nombre de usuario y password 
$username=$_POST['username']; 
$password=$_POST['password'];
if (isset(
$username){ 
    if (
$password==NULL){
        echo 
"<p>La password no fue enviada</p>"
    }else{ 
        
$query mysql_query("SELECT username,password,opcion FROM users WHERE username = '$username'") or die(mysql_error()); 
        
$row mysql_fetch_array($query); 
        if(
$row['password'] != $password) { 
            echo 
"<p>Login incorrecto</p>"
        }else{ 
            
$_SESSION["s_username"] = $row['username'];
            if(
$row['opcion']=='si'){
                
header('location: pagina1.php');
            }else{
                
header('location: pagina2.php');
            } 
        } 
    } 
}
?>
aunque dejame decirte que no es lo mas apropiado, sino te funciona, dime y te paso un codigo que yo utilizo para el logeo.

surte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #8 (permalink)  
Antiguo 27/10/2008, 10:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 11
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Un include segun opción elegida

Se me ocurre que te pueda funcionar:

Código PHP:
$query mysql_query("SELECT username,password[b],opcion[/b] FROM users WHERE username = '$username' and opcion = 'si'") or die(mysql_error());
$row mysql_fetch_array($query); 
if(
$row){
   include(
"pagina1.php");
}
else{
 
$query mysql_query("SELECT username,password[b],opcion[/b] FROM users WHERE username = '$username' and opcion = 'no'") or die(mysql_error());
$row mysql_fetch_array($query); 
if(
$row){
  include(
"pagina2.php");
}

Tu ya miras como lo puedes mejorar.
  #9 (permalink)  
Antiguo 27/10/2008, 10:33
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Un include segun opción elegida

hola mefeza, como mencione, llamad dos veces a base de datos y es en vano.
no es bueno volver lento tu archivo.

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 27/10/2008, 11:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Un include segun opción elegida

Gracias a los dos!
masterojitos poniendo el code que me dejaste me daba error en la linea 17 donde esta eso del isset, asi que lo puse así:
Código PHP:
<? 
// Configura los datos de tu cuenta  
$dbhost='mysql.webcindario.com';  
$dbusername='probandowow';  
$dbuserpass='piojo91';  
$dbname='probandowow';  

session_start();  

// Conectar a la base de datos  
mysql_connect ($dbhost$dbusername$dbuserpass);  
mysql_select_db($dbname) or die('Cannot select database');  

if (
$_POST['username']) {  
//Comprobacion del envio del nombre de usuario y password  
$username=$_POST['username'];  
$password=$_POST['password'];  
if (
$password==NULL) {  
echo 
"<p>La password no fue enviada</p>";  
}else{  
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());  
$data mysql_fetch_array($query);  
if(
$data['password'] != $password) {  
echo 
"<p>Login incorrecto</p>";  
}else{  
$query mysql_query("SELECT username,password,campaña FROM users WHERE username = '$username'") or die(mysql_error());  
$row mysql_fetch_array($query);  
$_SESSION["s_username"] = $row['username']; 
if(
$row[campaña]=='Orco')
{
header('location: reglas.php'); 
}
else if(
$row[campaña]=='Humano')
{
header('location: contacto.php'); 
}  
}  
}  

?>
y anda saludos y mil gracias.
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 14:06.