Foros del Web » Programando para Internet » PHP »

No funciona como deberia.

Estas en el tema de No funciona como deberia. en el foro de PHP en Foros del Web. Hola, pues ahora tengo un problema con un codigo que hice, pero no funciona como yo quisiera que funcionara. bueno, este es el codigo: Código ...
  #1 (permalink)  
Antiguo 07/07/2008, 17:05
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
No funciona como deberia.

Hola, pues ahora tengo un problema con un codigo que hice, pero no funciona como yo quisiera que funcionara. bueno, este es el codigo:
Código PHP:
<?php
require('../include/database_connection.php'); 

if(
$_POST['yes']=='1'){ 



$username=$_POST[username]; 

$password=$_POST[password]; 

$email=$_POST[email]; 

$firstname=$_POST[firstname]; 

$lastname=$_POST[lastname];

$day=$_POST[day];
$month=$_POST[month];
$year=$_POST[year];

$country=$_POST[country];
$query="SELECT * FROM users WHERE username='$username'";
$result=mysql_db_query($base,$query,$conn) or die (mysql_error());
if(
mysql_num_rows($result)==0)
{
//delimitation
mysql_query('INSERT INTO users (username, password, email, name, lastname, day, month, year, country)  

VALUES ("' 
$username '", "' $password '", "' $email '", "' $firstname '",  
"' 
$lastname '", "' .$day'", "' .$month'", "' .$year'", "' .$country'");')or $error true;  



if(isset(
$error))

      echo 
'We are sorry, but you were not able to register, please contact the administrator.<br><small>' mysql_error() . '</small>';



    else

      echo 
'Registration successful! Now you can <a href="../login.php">Log In</a>.';



    exit;

    }

}
//End of IF
else
{
?>
<SCRIPT LANGUAGE="javascript">
    alert("The Username already exists, please try again...");
    history.go(-1);
    </SCRIPT>
<?
//End of Else
?>
Ahora, lo que yo quiero que haga es que no registre un usuario si ya se encuentra en la base de datos (esa parte si funciona), ahora, si encuentra un usuario en la base de datos con el mismo nombre, deberia de habrir una ventana de error diciendo que el nombre de usuario ya existe (esa es la parte que no funciona), no encuentro ningun error asi que porfavor ayudenme. Gracias de antemano.
  #2 (permalink)  
Antiguo 07/07/2008, 17:23
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: No funciona como deberia.

Por lo que veo estas mal cerrando las llaves de los if. Asumo que esto es lo que quieres hacer:
Código PHP:
<?php
require('../include/database_connection.php'); 

if(
$_POST['yes'] == '1'){
    
$username    $_POST['username'];
    
$password    $_POST['password'];
    
$email        $_POST['email'];
    
$firstname    $_POST['firstname'];
    
$lastname    $_POST['lastname'];
    
    
$day    $_POST['day'];
    
$month    $_POST['month'];
    
$year    $_POST['year'];
    
    
$country    $_POST['country'];
    
$query "SELECT * 
            FROM users 
            WHERE username = '$username'"
;
    
$result mysql_db_query($base,$query,$conn) or die (mysql_error());
    if(
mysql_num_rows($result) == 0){
        
//delimitation
        
$sql 'INSERT INTO users (username, password, email, name, lastname, day, month, year, country)  
                VALUES ("' 
$username '", "' $password '", "' $email '", "' $firstname '",  
                "' 
$lastname '", "' .$day'", "' .$month'", "' .$year'", "' .$country'");';
        if(
mysql_query($sql)){
            echo 
'Registration successful! Now you can <a href="login.php">Log In</a>.';
        }else{
            echo 
'We are sorry, but you were not able to register, please contact the administrator.<br><small>' mysql_error() . '</small>';
        }
        exit;
    }else{
?>
<SCRIPT LANGUAGE="javascript">
    alert("The Username already exists, please try again...");
    history.go(-1);
</SCRIPT>
<?
    
//End of Else
}
?>
Y esto es lo que tu tienes:
Código PHP:
<?php
require('../include/database_connection.php'); 

if(
$_POST['yes'] == '1'){
    
$username    $_POST['username'];
    
$password    $_POST['password'];
    
$email        $_POST['email'];
    
$firstname    $_POST['firstname'];
    
$lastname    $_POST['lastname'];
    
    
$day    $_POST['day'];
    
$month    $_POST['month'];
    
$year    $_POST['year'];
    
    
$country    $_POST['country'];
    
$query "SELECT * 
            FROM users 
            WHERE username = '$username'"
;
    
$result mysql_db_query($base,$query,$conn) or die (mysql_error());
    if(
mysql_num_rows($result) == 0){
        
//delimitation
        
$sql 'INSERT INTO users (username, password, email, name, lastname, day, month, year, country)  
                VALUES ("' 
$username '", "' $password '", "' $email '", "' $firstname '",  
                "' 
$lastname '", "' .$day'", "' .$month'", "' .$year'", "' .$country'");';
        if(
mysql_query($sql)){
            echo 
'Registration successful! Now you can <a href="login.php">Log In</a>.';
        }else{
            echo 
'We are sorry, but you were not able to register, please contact the administrator.<br><small>' mysql_error() . '</small>';
        }
        exit;
    }
        
}else{
?>
<SCRIPT LANGUAGE="javascript">
    alert("The Username already exists, please try again...");
    history.go(-1);
</SCRIPT>
<?
//End of Else
?>
Ojo que ordene el codigo y cambie minimas cosas para que se vea mas ordenado.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 07/07/2008, 17:28
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: No funciona como deberia.

muchas gracias. probe tu codigo y me funciono pero te suplicaria que resaltaras donde estaba el error, porque no lo encuentro hehe.
  #4 (permalink)  
Antiguo 07/07/2008, 17:30
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No funciona como deberia.

supongo que en el include tienes una conexión a la BD porque veo que usas un $conn, así que tomando en cuenta eso te dejo el código que creo que te funcionaría
Código PHP:
<?php
require('../include/database_connection.php'); 
if(
$_POST['yes']=='1'){//supongo que tu controlas este por eso no lo quito
    
$username=$_POST['username']; 
    
$password=$_POST['password']; 
    
$email=$_POST['email']; 
    
$firstname=$_POST['firstname']; 
    
$lastname=$_POST['lastname'];
    
$day=$_POST['day'];
    
$month=$_POST['month'];
    
$year=$_POST['year'];
    
$country=$_POST['country'];
    
$query="SELECT * FROM users WHERE username LIKE '$username'";
    
$result=@mysql_query($query) or die (mysql_error());
    if(
mysql_num_rows($result)==0){
        
//delimitation
        
mysql_query('INSERT INTO users (username, password, email, name, lastname, day, month, year, country) VALUES ("' $username '", "' $password '", "' $email '", "' $firstname '","' $lastname '", "' .$day'", "' .$month'", "' .$year'", "' .$country'");') or $error true;  
        if(isset(
$error)){
            echo 
'We are sorry, but you were not able to register, please contact the administrator.<br><small>' mysql_error() . '</small>';
        }
        else{
            echo 
'Registration successful! Now you can <a href="login.php">Log In</a>.';
        }
    }
//End of IF
    
else
    {
?>
<SCRIPT LANGUAGE="javascript">
    alert("The Username already exists, please try again...");
    history.go(-1);
    </SCRIPT>
<?php
       
//End of Else
}//End of IF?>
saludos.

EDITO: se me olvidaba, fijate en el uso del LIKE se recomienda ampliamente usar esa sentencia cuando se trata de comparar textos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 08/07/2008 a las 08:17
  #5 (permalink)  
Antiguo 07/07/2008, 20:44
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: No funciona como deberia.

Ok... te explico.

El problema era que el primer IF...
Código PHP:
if($_POST['yes']=='1'){ 
...estaba cerrando con el ultimo ELSE...
Código PHP:
}else{
?>
<SCRIPT LANGUAGE="javascript"> 
Por lo tanto nunca iba a entrar aca si la variable post "yes" iba con 1.

Te sugiero utilizar la indentacion de codigo en el futuro para que no tengas nuevamente estos problemas.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 03:58.