Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación

Búsqueda en los foros

Foros en Udias.com / PHP y MySQL / Campos obligatorios en un formulario.
Autor Mensaje

Miembro

Asiduo

  Karma           433

#1 Publicado: 20 Abr 2008 17:12



Hola, he añadido a mi script esta funcion:

function addslashes__recursive($var){ 
if (!is_array($var)) 
return addslashes($var); 
$new_var = array(); 
foreach ($var as $k => $v)$new_var[addslashes($k) 
]=addslashes__recursive($v); 
return $new_var; 
} 
$_POST=addslashes__recursive($_POST); 
$_GET=addslashes__recursive($_GET); 
$_REQUEST=addslashes__recursive($_REQUEST); 
$_SERVER=addslashes__recursive($_SERVER); 
$_COOKIE=addslashes__recursive($_COOKIE);




para darle mas seguridad y lo que me pasa es lo siguiente en lso formularios que tengo protegido para que no puedan enviarlos sin rellenar los campos si pongo ese codigo deja enviarlo aunque no esten rellenados por ejemplo en este:

function enviar () { 
global $prefix, $contenido; 

if(!$_POST['usuario']){ 
$error .="Falta el usuario <br />";} 

if(!$_POST['pass']){ 
$error .="Falta la contrase&ntilde;a <br />";} 

$contenido .=$error; 

if(mysql_num_rows(Query("SELECT * FROM ".$prefix. 
"usuarios where usuario='$_POST[usuario]'"))==0   
o r count($error)==0){ $pass = md5 ($_POST[pass]); Query("INSERT INTO ".$prefix."usuarios (usuario, pass) VALUES ('$_POST[usuario]','$pass')"); $contenido .='ok'; }else{$contenido .='Error';} }



Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               26433

#2 Publicado: 20 Abr 2008 17:45



Te digo lo de la otra vez, un $_POST o un $_GET solo es válido cuando desde un formaulario le has mandado algo, no puedes pretender que funcione sin haber sido enviado antes, ¿Recuerdas lo de las dos páginas?...

Puede ser que el error esté por lo que te comento.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma           433

#3 Publicado: 20 Abr 2008 18:10



eh? eso no tiene nada que ver te puse la funcion de recibir para que lo supieses pero en realidad es asi:

function registrarse () { 
global $prefix, $contenido; 

if(isset($_COOKIE[usuario])) { 
$contenido.='Ya estas logueado'; 
}else{ 
$contenido.=' 
<form name="registrarse" method="post" action="?m 
odulo=usuarios&accion=enviar"> <b>Usuario:</b><br /> <input type="text" name="usuario"><br /><br /> <b>Contrase&ntilde;a:</b><br /> <input type="password" name="pass"><br /><br /> <input type="submit" value="Registrarse"></form>'
; } } function enviar () { global $prefix, $contenido; if(!$_POST['usuario']){ $error .="Falta el usuario <br />";} if(!$_POST['pass']){ $error .="Falta la contrase&ntilde;a <br />";} $contenido .=$error; if(mysql_num_rows(Query("SELECT * FROM ".$prefix.
"usuarios where usuario='$_POST[usuario]'"))==0 o
r count($error)==0){ $pass = md5 ($_POST[pass]); Query("INSERT INTO ".$prefix."usuarios (usuario,
pass) VALUES ('$_POST[usuario]','$pass')"); $contenido .='ok'; }else{$contenido .='Error';} } function aut2() { if(isset($_COOKIE[usuario])) { }else{ index(); die(); } }



Funciona todo perfectamente, el problema es queal añadir la primera funcion para mas seguridad no funciona los if estos:

if(!$_POST['usuario']){ 
$error .="Falta el usuario <br />";} 



etc y aunque le de a enviar con los campso vacios me lo envia a la db, espero a verme explicado mejor...


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               26433

#4 Publicado: 21 Abr 2008 07:56



Estás utilizando la misma variable ($contenido) para las dos funciones, eso cuanto menos no es aconsejable


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma           433

#5 Publicado: 21 Abr 2008 11:45



pero $contenido en mi programacion es igual a echo'' si uso echo por ejemplo sale lo que meta dentro de un echo encima de la web... si no pudiese repetir $contenido tampocopodria hacerlo con un echo no? xD xk es lo mismo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               26433

#6 Publicado: 21 Abr 2008 12:04



echo o print son dos ordenes de php que "esciben" su contenido en una página html

$contenido es una variable.

Si pones

print $contenido;

Lo que tenga el campo se verá en la pantalla del navegador.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma           433

#7 Publicado: 21 Abr 2008 12:19



Ya lo se pero a ver, te digo que no puedo poner una variable diferente en cada sitio... xk si no llenaria el index

<? echo $contenido; ?>



con eso... y si uso echo en los modulos de la web como ya dije sale encima de la web... dudo mucho que el problema que tengo sea por eso...


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               26433

#8 Publicado: 21 Abr 2008 13:16



Ya, es decir, tu utilizas la variable $contenido para formar tu página index... no lo había visto nunca antes.

Puede ser un buen sistema.

Entonces el problema no se por donde va, tendremos que volver a mirar el código.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma           433

#9 Publicado: 21 Abr 2008 13:23



si, lo hago asi por que la modulacion de la pagina esta arriba de el todo, asi luego me permite personalizar el titulo, el meta descripcion, las keywords etc...

 
$titulo = $web; 
if(!empty($nombre_ca)) { $titulo =$nombre_ca; 
}elseif(!empty($descripcion)){ $descripcion = $de 
scripcion; }elseif(!empty($meta)){ $meta = $meta;
} <title><? echo $titulo; ?></title>



y luego en los modulos simplemente pongo $nombre_ca="lo que quiera"; $descripcion="lo que quiera"; etc... pues nada sera quitar la funcion esa... era simplemente para darle mas seguridad al script...


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Miembro

Ocasional

  Karma         81

#10 Publicado: 14 Nov 2010 22:45



Yo tengo una duda sobre lo campos obligatorios, a ver si me podeis ayudar, porque me tragado medio manual y no lo encuentro por ningun lado y la verdad que soy nuevo en esto, jajaja.

Bueno, tengo una base de datos de registro de socios y quiero que no me deje guardar el registro nuevo si no meto todos los campos obligatorios.

Mi primer problema es ¿como se establecen los campos obligatorios?

Gracias y un saludo!!!


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
www.jmproducciones.es

Administrador


  Karma               26433

#11 Publicado: 15 Nov 2010 07:45 - Editado por: jcu



Antes de meternos en el lío... este foro es sobre PHP, ¿Tu pregunta es sobre PHP o sobr FileMaker?, si es sobre FileMaker pon la pregunta en el foro de FileMaker.

Si quieres validar un campo en PHP puedes utilizar este javascript

<script>
function valida_entrada(){

if (document.form1.color.value.length==0){
alert("Falta información")
document.form1.color.focus()
return 0;
}

//el formulario se envia
document.form1.submit();
}
</script>


Hace que el campo color del formulario form1 no pueda estar vacío.

En el formulario el botón enviar será

<input type="button" value="Enviar" onclick="valida_entrada()">



Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Ocasional

  Karma         81

#12 Publicado: 15 Nov 2010 18:31



A gracias, mi duda era sobre filemaker, perdona las molestias.
Un saludo!!!


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
www.jmproducciones.es
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Campos obligatorios en un formulario.

Formulario en PHP
Formulario en PHP
Capcha en formulario...
Combos formulario de búsqueda
Gauardar datos de Formulario en BD


Conectados: Invitados - 3
Miembros - 1 border=0 zurydm
En verde usuarios ZDDR

Realizado con miniBB © 2001-2021
Para Udias.com © 1996-2021
Hosting con Interdominios