Foros del Web » Programando para Internet » PHP »

ayuda con un script

Estas en el tema de ayuda con un script en el foro de PHP en Foros del Web. Hola, pues la verdad no se que este mal en mi script, ya que lo que estoy tratando de realizar es editar algunos datos de ...
  #1 (permalink)  
Antiguo 21/01/2009, 13:59
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
ayuda con un script

Hola, pues la verdad no se que este mal en mi script, ya que lo que estoy tratando de realizar es editar algunos datos de una BD desde mi script, pero siempre me esta mandando al error, mi script es el siguiente:

Código PHP:
<?php
$con
=("host='127.0.0.1 dbname='Curso' user='postgres' password='******'");
    if (!
$con)
    {
    echo 
"Error, no se pudo conectar a la base de datos";
    }
    else
    {
    if (isset(
$_POST['cuenta']) and isset($_POST['nombre']) and isset($_POST['apellido']))//checa que esten introducidos los datos
        
{
    if (empty(
$_POST['cuenta']) || empty($_POST['nombre']) || empty($_POST['apellido']))//checa si algun campo esta vacio
            
{
            echo 
"Error, debe de llenar todos los campos";    
            }
else
{
$usuario=$_POST['cuenta'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$sql="UPDATE identificacion SET nombres='$nombre', apellidos='$apellido' WHERE usuario=$usuario";
/*si estan todos los campos llenados entonces adjudica a las variables lo que entro por POST y ejecuta el query*/
    
if(@pg_query($sql))
    {
    echo 
"Los datos se actualizaron correctamente";
    echo 
"$sql";
    }
    else
    {
    echo 
"Error al actualizar los datos.";
    echo 
"$sql";//imprimo el query para ver los datos que ingresan a la BD
    
}
    }
        }
    }
?>
La verdad no se que es lo que pase, ya que probe el mismo query internamente y si me hace los cambios, cabe destacar que el 'usuario' solo puede accesar al sistema si esta previamente logeado y con datos en la BD, de otra forma se pide que se registre, por lo que si hace cambios es por que existe en el sistema.
Si me pudieran decir en que esta mi error se los agradeceria.
  #2 (permalink)  
Antiguo 21/01/2009, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ayuda con un script

Hola kurokishi,

Por favor dinos que error te sale, ya que viendo el código parece estar correcto.

Saludos
  #3 (permalink)  
Antiguo 21/01/2009, 14:04
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

mm dinos a cual de todos los errores te manda
  #4 (permalink)  
Antiguo 21/01/2009, 14:04
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

Hola, pues lo unico que pasa es que me manda al
else
{
echo "error al actualizar los datos";
}

Por eso es que no se que pasa con el script.
gracias.
  #5 (permalink)  
Antiguo 21/01/2009, 14:07
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

por lo visto tu codigo:

$sql="UPDATE identificacion SET nombres='$nombre', apellidos='$apellido' WHERE usuario=$usuario";

cambialo por este:

$sql="UPDATE identificacion SET nombres='$nombre', apellidos='$apellido' WHERE usuario= ' $usuario ' ";

va con comillas simple si no me equivoco es eso
  #6 (permalink)  
Antiguo 21/01/2009, 14:10
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

Bueno, pues la verdad es que ya tambien lo intente con comillas pero me sigue mandando al mismo error, y no se que es lo que sea por que si hay algun dato vacio si me manda al error de que se deben llenara todos los datos, pero ya para hacer el UPDATE me sigue mandando lo mismo, incluso estaba pensando en vez de hacer un UPDATE hacer un INSERT pero como el campo 'usuario' es llave primaria me mandaria error por duplicar una llave primaria. Gracias
  #7 (permalink)  
Antiguo 21/01/2009, 14:14
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

mmm y si colocas otro campo a tu base de datos un ID ahi se te haria mas facil el update
  #8 (permalink)  
Antiguo 21/01/2009, 14:18
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

Pues de hecho lo que estoy tomando como id es el 'usuario' ya que el numero de cuenta es unico para cada usuario, por esa razon los usuarios solo pueden accesar a su 'sesion' con este numero de cuenta y su contraseña correspondiente haciendo que los otros 'usuarios' en teoria no puedan accesar a la sesion de otros usuarios.
Gracias
  #9 (permalink)  
Antiguo 21/01/2009, 14:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ayuda con un script

Imprime el valor de pg_last_error(); para que veas el error que te envia la BDD.

Saludos
  #10 (permalink)  
Antiguo 21/01/2009, 15:41
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

Hola, pues ya imprimi tambien el pg_last_error(); pero no me aparece nada anormal, si le pongo el parametro de $con entonces me muestro los datos de la conexion y me los muestra, y si le pongo la variable del query me muestra los datos que deberian de meterse en la tabla.
Pues gracias, seguire investigando y les aviso que pasa
  #11 (permalink)  
Antiguo 21/01/2009, 15:56
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

Bueno, acabo de hacer una prueba mas, quitando el if y solo imprimiendo el query (metiendolo en otra variable) de esta manera:

Código PHP:
<?php
$con
=("host='127.0.0.1' port=5432 dbname='Curso' user='postgres' password='******'");
    if (!
$con)
    {
        echo 
"Error, no se pudo conectar a la base de datos";
    }
    else
    {
        if (isset(
$_POST['cuenta']) and isset($_POST['nombre']) and isset($_POST['apellido']))
        {
            if (empty(
$_POST['cuenta']) || empty($_POST['nombre']) || empty($_POST['apellido']))
            {
                echo 
"Error, debe de llenar todos los campos";    
            }
            else
            {
                
$usuario=$_POST['cuenta'];
                
$nombre=$_POST['nombre'];
                
$apellido=$_POST['apellido'];
            
                
$sql="UPDATE id SET nombres='$nombre', apellidos='$apellido' WHERE usuario='$usuario'";
                
$query=pg_query($sql);
                echo 
"$query";

                
/*if(@pg_query($sql))
                {
                    echo "Los datos se actualizaron correctamente";
                    echo "pg_last_error()";
                }
                else
                {
                    echo "Error al actualizar los datos.";
                    
                }*/
            
}
        }
    }
?>
Y con esto me sale un error que dice que no se ha abierto la conexion a la base de datos!!
Warning: pg_query() [function.pg-query]: No PostgreSQL link opened yet in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\curso\Lecciones\edit_n ombre.php on line 22

Entonces es por esto que no me deja actualizar la bd, pero ya cheque los valores de la BD y son correctos, por lo que ahora no se el porque no me deja hacer la conexion.
Si me pueden decir cual es mi fallo ahora, se los agradeceria.
  #12 (permalink)  
Antiguo 21/01/2009, 16:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ayuda con un script

Mmmm pues en donde llamas a pg_connect???
  #13 (permalink)  
Antiguo 21/01/2009, 16:42
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: ayuda con un script

Pues gracias, fue un error bastante basico, pero por estar checando las otras variables y procesos no puse atencion al pg_conect()

Pues ya quedó, ahora lo unico seria hacer que los usuarios no puedan cambiar los datos de los demas usuarios, ya que si se ponen a jugar con los numeros de cuenta tal vez podrian atinarle a algun otro usuario y cambiarle los datos.

Código PHP:
if ($usuario !=$SESSION['usuario'])
 {
   echo 
"error, usuario no valido"
 
}
else
 {
  
$sql="UPDATE id SET nombres='$nombre', apellidos='$apellido' WHERE usuario=$usuario";
if(@
pg_query($sql))
    {
        echo 
"Los datos se actualizaron correctamente";
    }
else
    {
        echo 
"Error al actualizar los datos.";
        
    }
 } 
Muchas gracias a todos los que me dieron consejos, espero me sigan ayudando en el futuro, tratare de ser de ayuda para los demas como ustedes conmigo!

Última edición por kurokishi; 21/01/2009 a las 16:56 Razón: correccion de ultima hora
  #14 (permalink)  
Antiguo 21/01/2009, 16:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ayuda con un script

Haz un var_dump($_SESSION) para que veas que datos tiene tu sesión.

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 15:27.