Foros del Web » Programando para Internet » PHP »

Sobre FORM

Estas en el tema de Sobre FORM en el foro de PHP en Foros del Web. Lo que trato de hacer es obtener de una pagina con un form cuyo code es el siguiente: <html> <head> <title>Prueba</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ...
  #1 (permalink)  
Antiguo 11/03/2003, 22:40
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Sobre FORM

Lo que trato de hacer es obtener de una pagina con un form cuyo code es el siguiente:
<html>
<head>
<title>Prueba</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="insert.php" method="post" enctype="multipart/form-data" name="form1">
<table width="75%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="11%">Nombre:</td>
<td width="89%"><input name="name" type="text" id="name"></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Submit" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>


los nombres y email que entre en los text para luego insertalos en una base de datos mediante el siguiente codigo:

<?
// Inicializamos las variables
$host = "localhost";
$login = "root";
$passwd = "root";
$db = "prueba";
// Conexión a la Base de Datos
// Comprobamos si se realizó la conexión y si no imprimimos un mensaje de error
$coneccion = mysql_connect($host,$login,$passwd) or die ("No puedo conectarme a la Base de Datos");
// Comprobamos si se realizó la conexión a la tabla y si no mostramos un mensaje de error
$base = mysql_select_db($db, $coneccion) or die("No puedo seleccionar la Base de Datos");
$sql = "INSERT INTO prueba (name,email) VALUES ('.$name.','.$email.')";
mysql_query ($sql,$coneccion);
mysql_close ();
?>


y no me hace nada o mejor me da error en la definición de las variables name y email en el script php.

¿Que estoy haciendo mal?
Si podes responderme esto se los agradecería mucho
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 11/03/2003, 23:50
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 1 mes
Puntos: 0
configuracion php

hola,

1. chequea la configuración PHP del server donde estés trabajando (lo puedes hacer con un documento php que tenga phpinfo(), te devuelve todas las confs. del servidor visualmente). si register_globals está en off (lo que es más probable ya que es la config por defecto que viene con las últimas versiones de PHP), significa que no puedes acceder a variables de request como las que pones arriba. es decir, que el campo "email" no estará disponible en la variable $email, sino en $_POST['email'] -o si es en GET, $_GET['email']... esto es por una cuestíón de seguridad...

2. no tienes chequeo de seguridad en los valores introducidos por el usuario, esto te hace vulnerable a un ataque... por ejemplo, puedes chequear que la dirección de email introducida tenga la apariencia, al menos, de una dirección de email, y no una consulta SQL que te puede borrar la base de datos... para eso puedes utilizar expresiones regulares... en este foro todavía hay varios threads sobre expresiones regulares, buscalos más abajo; por ej. yo utilizo ésta para validar dirección de email:

Código PHP:
if (ereg("^[a-zA-Z0-9]+@[a-zA-Z0-9\_\-]+\.[a-zA-Z]+\.?[a-zA-Z?]*"$_POST['email'])) { 
// pasa el check } 
esta regexp o exp. reg. chequa que, haya caracteres o números seguidos de una arroba, seguida de caracteres alfanuméricos o "-" o "-", seguidos de un punto, etc, etc, o sea la sintaxis de un dominio, etc

lo mismo puedes hacer con el campo de nombre (un nombre debería contener solamente letras y espacios, dependiendo de lo que quieras del usuario, etc)... tienes que investigar un poco expresiones regulares

saludos
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología
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 13:12.