Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2007
nikotina nikotina is offline
Miembro
 
Registrado: oct 2006
Posts: 84
Poder: 18
nikotina Va por buen camino
Problemas con variables

Hola gente. tengo un problema que no puedo solucionar. tengo un form donde cargo tres variables, "doc", "nom" y "ape" guardado como "transacion_alumnos.php". Y lo cargo en otro llamado "agregar.php".
El problema en si es que no me actualiza la DB con dichas variables. es decir, me agrega un registro en blanco. Pero si al mysql_query le paso, por ejemplo, '25027466', 'maciel', 'jose gonzalo' si lo guarda. Es como que si no toma las variables del form. Aqui va el codigo.

espero que puedan ayudarme.
desde ya muchas gracias y un abrazo a todos.

Código PHP:
// "transaccion_alumnos.php"
<html>
<head>
<title> transaccion alumnos </title>
</head>
<body bgcolor="#B7E1E1">

<hr color = "#FFFFFF">
<form action = "agregar.php">
DNI:<br>
<input type="text"  name="doc" /><br>
Apellido:<br>
<input type="text"  name="nom" /><br>
Nombres:<br>
<input type="text"  name="ape" /><br><br><br><br><br><br><br><br>
<hr color ="#800000" heigth "50">
<input type="submit" value = "GUARDAR" />
</form>

</body>
</html>

// agregar.php
<html>
<header>
</header>
<body>
<? 
   
include("conectarse.php");
   
$link=conectarse();
   
$sql"insert into alumnos (dni,apellido,nombres) values ('$doc','$nom','$ape')"
 
   
mysql_query($sql,$link);
   
header("location:transaccion_alumnos.php");
?>
</body>
</html>

// conectarse.php
<htlm>
<head>
<title>EJEMPLO DE CONEXION </title>
</head>
<body>
<?
   
function conectarse()
   {
     if (!(
$link=mysql_connect("localhost","root","")))
         { 
           echo 
"error1";    
           exit();
          } 

     if (!
mysql_select_db("universidad",$link))
         {
             echo 
"error2";
           exit();
          }
    return 
$link;   
   }
   
conectarse();

Última edición por dec fecha: 31-03-2007 a las 04:20:19.
Responder Con Cita
  #2  
Antiguo 30-03-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Se trata, básicamente, de que estás tratando de acceder a variables que sólo estarían declaradas de encontrarse la opción "register globals" de PHP activada, cosa que es raro, puesto que desde cierta versión de PHP esta opción está desactivada por motivos de seguridad, entre otros.

Echa un vistazo al manual de PHP sobre este asunto. También en estos mismos foros vas a encontrar más información al respecto.

- Uso de Register Globals

- Variables predefinidas
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 30-03-2007
nikotina nikotina is offline
Miembro
 
Registrado: oct 2006
Posts: 84
Poder: 18
nikotina Va por buen camino
gracias Dec

Gracias Dec. yo pense que podia ser eso pero no estaba seguro.
Voy a ver como lo soluciono.
Responder Con Cita
  #4  
Antiguo 30-03-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Básicamente, se trata de utilizar las variables "superglobales" en lugar de variables locales creadas "ad hoc" en el caso de que la opción "register globals" estuviera activada.

Es decir, en lugar de "$doc" utilizar "$_GET['doc']" y así con el resto de valores/variables. Por otro lado piensa en utilizar el atributo "method" del formulario HTML, puesto que ahora mismo estás enviando los datos del formulario en la propia URL, con el "method GET", que es el utilizado por defecto.

Tal vez sea lo que estás buscando, pero, sabe que puedes usar el método "POST", es decir:

Código PHP:
<form action="agregar.php" method="post"
De modo que ahora puedas encontrar el valor que esperabas en "$doc" en la variable "$_POST['doc']", y de modo que los valores/variables no se transmitan en la URL.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 30-03-2007
nikotina nikotina is offline
Miembro
 
Registrado: oct 2006
Posts: 84
Poder: 18
nikotina Va por buen camino
no anda

Dec. chekee el register_globals y esta en on. Ademas puse en el form la directiva method = "post" y las variables $doc = $post_['doc'] y tampoco carga los registros en la DB. Que otra cosa pueder ser. Estoy desconsertado.
Responder Con Cita
  #6  
Antiguo 31-03-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo primero desactivar "register globals", puesto que, precisamente, a partir de cierta versión de PHP se desactiva por defecto al comprometer en ciertos sentidos la seguridad del sitio Web.

Después, antes de intentar hacer la inserción en la base de datos, asegúrate de que te están llegando los datos.

Código PHP:
if(isset[$_POST['doc']){
  
$doc $_POST['doc'];

Por otro lado podrías tratar de que no te "cuelan" vaya usted a saber qué entre los datos que son enviados, porque ten en cuenta que los datos van a formar parte de una consulta SQL que posteriormente vas a ejecutar...

Código PHP:
function Escapar($cadena){
  if(
get_magic_quotes_gpc()) 
    
$cadena stripslashes($cadena);        
  return 
mysql_real_escape_string($cadena$this->enlaceConexionBd);
}

if(isset[
$_POST['doc']){
  
$doc Escapar($_POST['doc']);

Asegúrate, como digo, que antes de realizar la consulta SQL verdaderamente estés recibiendo los datos. Esto es lo primero. Esto puedes hacerlo simplemente "imprimiendo" los datos (las variables) y omitiendo la consulta SQL mientras realizas las pruebas.

Por otro lado, si los datos "llegan" puede que exista algún problema en la consulta SQL. Luego de ejecutar la consulta haz una llamada a la función "mysql_error", puesto que si su resultado es distinto a una cadena vacía el mismo será un mensaje de error que describa el problema con MySQL.

Por ahora no se me ocurre otra cosa... lo siento...

Bueno. Otra cosa. Como supongo que habrás cambiado al menos parte del código fuente que ahora estás utilizando, cópialo por aquí a ver si puede dar alguna pista sobre el problema.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con variables globales y redirecciones Web dec PHP 13 04-10-2006 17:18:01
Problemas con variables.. Epunamun Varios 1 13-10-2005 00:55:03
variables variables (manual php) salvica PHP 0 25-09-2005 16:44:52
variables en API fabiof2000 API de Windows 1 17-08-2005 06:17:20
Problemas con cast, concatenar variables Choclito Firebird e Interbase 1 09-05-2005 23:57:38


La franja horaria es GMT +2. Ahora son las 16:08:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi