Foros del Web » Programando para Internet » PHP »

Necesito ayuda!!

Estas en el tema de Necesito ayuda!! en el foro de PHP en Foros del Web. Necesito ayuda!!! Situación: Base de datos= SQL Server Página=PHP y HTML NO HAY INFORMACIÓN Creo un formulario con: <FORM METHOD="POST" ACTION="PaginaDestino.php"> Y a la hora ...
  #1 (permalink)  
Antiguo 21/04/2004, 10:35
 
Fecha de Ingreso: marzo-2004
Mensajes: 14
Antigüedad: 13 años, 8 meses
Puntos: 0
Necesito ayuda!!

Necesito ayuda!!!

Situación:
Base de datos= SQL Server
Página=PHP y HTML
NO HAY INFORMACIÓN
Creo un formulario con:

<FORM METHOD="POST" ACTION="PaginaDestino.php">

Y a la hora de recoger los datos desde la página destino con:

mssql_select_db("BaseDeDatos");
mssql_query("insert into TRABAJADORES (Nombre,Apellido1,Apellido2,DNI...) values ('$Nombre','$Apellido1','$Apellido2','$DNI',...)") ;

Por supuesto estoy conectada con la base de datos...
Me aparece un error indicando que no tengo definidas las variables!!!!!!!!!!!!!
Yo me estoy mirando varios manuales y siempre hablan de mysql con php y no de php con SQL, así que me he encontrado con algunas funciones que no me van, pero esto... no encuentro el error!!!
Ya se que quizas sea muy fácil insertar datos, pero no encuentro información suficiente como para poder lograrlo!!!

Muchas, muchas gracias
  #2 (permalink)  
Antiguo 21/04/2004, 10:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Mira el valor de la directiva register_globals y si esta a off busca info sobre esa directiva y lo que significa. En las primeras FAQs del foro se habla del tema.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/04/2004, 12:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con respecto a:

Cita:
Yo me estoy mirando varios manuales y siempre hablan de mysql con php y no de php con SQL, así que me he encontrado con algunas funciones que no me van, pero esto... no encuentro el error!!!
Debes saber que cuando usas una Base de datos para operar con ella, lease: crear registros, acutalizarlos .. etc. Lo que en el fondo haces es componer una sentencia SQL acorde a lo que el motor de BD que usas acepta y lo "lanzas" (ejecutas desde PHP) con las funciones que PHP te pone a tu disposición según el motor de BD que uses.

De esto se puede deducir que el proceso normal de cualquier acción en PHP (válido para cualquier otro lenguaje de programación del "lado del servidor" com pueda ser hasta ASP) ... se trata de:

1) caputurar tus datos. Vengan de donde vengan .. sean por el URL (en un link) .. de un formulario HTML .. o procesados de otra forma.

2) componer tu sentencia SQL .. En este punto para PHP es sólo una cadena de texto más (string) así que puedes tratarla como tal.

3) Ejecutar tu sentencia SQL con las funciones própias del motor de BD que uses.

Para el coso de tomar variables "externas" a PHP .. PHP discrimina (según configuración que veras en las FAQ's que mencionó josemi) el método que se espera según se enviaron.. Por eso los formularios tinene el "method" y ahí se le indica POST o GET . en un link (URL) sería GET .. y si son cookies se discrimian también para evitar confusión con otras (lo mismo que con sesiones, variables de servidor .. de "upload de archivos" .. etc). Son los arrays "superglobales".

Los demás mensajes de aviso de variables no definidas se trabajan comprobando su existencia antes de pretender usarlas:

Código PHP:
if (isset($_POST['variable'])){
// la usas...
echo $_POST['variable'];

Aunque se puede bajar el nivel de reporte de errores de PHP (error_reporting en tu php.ini o función afin).

Pero, .. justamente de ese mensaje de error acerca de variables no definidas .. se ha podido ver rápidamente el problema. Usalo en fase de desarrollo de tus aplicaciones tal cual lo usas ahora y cuando lleves a "producción" tus aplicaciones . ahí si quiers le quitas todo mensaje de error de PHP (una vez que veas que todo anda como esperas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 21/04/2004 a las 12:11
  #4 (permalink)  
Antiguo 22/04/2004, 10:54
 
Fecha de Ingreso: marzo-2004
Mensajes: 14
Antigüedad: 13 años, 8 meses
Puntos: 0
Gracias Josemi, pero ya había leido los FAQs y nada de nada
register_globals está en "on", sigo intentando buscar el problema..
Gracias de todas formas
  #5 (permalink)  
Antiguo 22/04/2004, 13:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si en la definición del formulario no usas method= .. se asume que será GET ..

<FORM METHOD="POST" ACTION="PaginaDestino.php">

Usalo preferentemente:

<FORM METHOD="POST" ACTION="PaginaDestino.php" method="POST">

Y en consecuencia lee tus variables por el método enviado (PHP 4.1.0 en adelante):

$_POST['variable']

Pero .. para solventar tu problema .. primero asegurate haciendo "echo" a tus variables antes de atacar tu mysql_query()

Puedes hacer para probar:

print_r($_GET);
print_r($_POST);

Así veras todo lo que viaja en ambos métodos ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 27/04/2004, 13:40
 
Fecha de Ingreso: marzo-2004
Mensajes: 14
Antigüedad: 13 años, 8 meses
Puntos: 0
Gracias a todos por ayudarme con mi problema!!!!!

Para los novatillos que no sepan leer los manuales como yo, al final me funcionó así:

mssql_query("insert into TABLA (campo) values ('" . $_POST["variable"] . "')");

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