Ver Mensaje Individual
  #10 (permalink)  
Antiguo 02/03/2009, 00:58
thezzin
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 16 años, 6 meses
Puntos: 31
Respuesta: Duda de cómo validar un mismo formulario para varias acciones

y cooperando mas con la verificación si un caja de texto etc esta vacía
he descubierto un truco para evadir la función empty() y por supuesto
alguien que le gusta hacer trampa seguro que se la sabe
y es que al presionar la tecla espacio en una caja de texto la función empty()
se la cree que no esta vacía
aquí unos ejemplos:
Código HTML:
<form action="" method="post">
<input name="name" type="text">
<input name="" type="submit" value="Enviar">
</form> 
Código PHP:
<?php
if(isset($_POST['name'])){
//si presionas la Tecla Espacio en la caja de texto name el resultado siempre sera, true
if(empty($_POST['name'])){
echo 
'Error!!';
}else{
echo 
$_POST['name'].' True';
 }
}
?>
al presionar la tecla Espacio en la caja de texto name una o mas veces
el resultado sera true.
ahora al usar este código el Resultado sera Falso.
Código PHP:
<?php
if(isset($_POST['name'])){
$nameb $_POST['name'];
/*
//aqui con la funcion  trim() quita el truco de la tecla Espacio
//pero esto es lo que dice la web de php ---------
trim
(PHP 4, PHP 5)
trim — Elimina espacios en blanco (u otros caracteres) del principio y final de una cadena
*/
$nameb trim($nameb);
if(
$nameb == ""){
echo 
'Error!!';
}else{
echo 
$nameb.' True';
 }
}
?>
pero esto es lo que dice la web de php
---------http://us3.php.net/manual/es/function.trim.php
trim
(PHP 4, PHP 5)
trim — Elimina espacios en blanco (u otros caracteres) del principio y final de una cadena
---------
entonces se puede usar esto

Código PHP:
<?php
if(isset($_POST['name'])){
$namec $_POST['name'];
if(
$namec == '' || $namec == ' '){
echo 
'Error!!';
}else{
echo 
$namec.' True';
 }
}
?>
pero que pasa si se presiona la Tecla Espacio mas de 2 veces el Resultado sera true

entonces aquí hay otro truco
Código PHP:
<?php
if(isset($_POST['name'])){
$namec $_POST['name'];
$namec ereg_replace(' +'' '$namec);
if(
$namec == '' || $namec == ' '){
echo 
'Error!!';
}else{
echo 
$namec.' True';
 }
}
?>
pero al escribir una palabra así:
esto tienes un espacio-------------------------------------------- largo.
use esto --- en ves de espacio porque aquí no se permiten
el resultado sera normal: esto tienes un espacio largo.
entonces eso queda a criterio de cada quien si quiere permitir espacios largos.
espero le sea útil a alguien que "quiera al menos una letra" en una caja de texto
__________________
╬-----╬
║☺₧☻║
╬-----╬