Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

validar por medio de un form

Estas en el tema de validar por medio de un form en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola como estan vengo a solicitar su ayuda, tengo el siguiente codigo: <html> <form action="<?php $_SERVER['PHP_SELF']?>"method="POST" name="frm"> <table> <tr><td>ejeX:</td> <td><input type="text" name="ejeX" value=""></td></tr> <tr><td>ejeY:</td> <td><input ...
  #1 (permalink)  
Antiguo 01/09/2011, 15:57
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 8
Antigüedad: 12 años, 8 meses
Puntos: 0
validar por medio de un form

Hola como estan vengo a solicitar su ayuda, tengo el siguiente codigo:

<html>
<form action="<?php $_SERVER['PHP_SELF']?>"method="POST" name="frm">
<table>
<tr><td>ejeX:</td>
<td><input type="text" name="ejeX" value=""></td></tr>
<tr><td>ejeY:</td>
<td><input type="text" name="ejeY" value=""></td></tr>
<tr><td><input type="submit" name="avanzar" value="Avanzar"/></td>
<td><input type="submit" name="retroceder" value="Retroceder"/></td></tr>
</table>
<input type="submit" name="limpiar" value="Limpiar"/>
</form>
</html>

<?php

class mover{
var $dirx;
var $diry;

function __construct($dirX, $dirY){
$this->dirX = $dirX;
$this->dirY = $dirY;
}
function setAvanzar($eje){
if ($eje=='X'){
$this->dirX++;
} else {
$this->dirY++;
}
if($_POST['avanzar']<=0){
echo 'Ingrese valores positivos';
}
}

function getAvanzar(){
echo 'el eje X y Y estan en: '.$this->dirX.', '.$this->dirY.'<br />';
}
}

class volar extends mover{

function setAvanzar ($eje, $vel){
if ($eje=='X'){
$this->dirX += $vel;
} else {
$this->dirY += $vel;
}
if ($_POST['limpiar']){
$obj = new volar(0,0);
}
}
}

class volara extends mover{

function setRetroceder ($eje, $vel){
if ($eje=='X'){
$this->dirX -= $vel;
} else {
$this->dirY -= $vel;
}
if ($_POST['limpiar']){
$obj = new volar(0,0);
}
}
}

if ($_POST['avanzar']){
$obj = new volar(1, 1);
$obj ->getAvanzar();
$obj ->setAvanzar('X',$_POST['ejeX']);
$obj ->setAvanzar('Y',$_POST['ejeY']);
$obj ->getAvanzar();
$obj ->setAvanzar('X',$_POST['ejeX']);
$obj ->getAvanzar();
}

if ($_POST['retroceder']){
$obj = new volara(20, 20);
$obj ->getAvanzar();
$obj ->setRetroceder('X',$_POST['ejeX']);
$obj ->setRetroceder('Y',$_POST['ejeY']);
$obj ->getAvanzar();
$obj ->setRetroceder('X',$_POST['ejeX']);
$obj ->getAvanzar();
$obj ->setRetroceder('X',$_POST['ejeX']);
$obj ->getAvanzar();
}

?>

envio por un formulario los datos de los ejes x y y y dependiendo de ellos avanza o retrocede, pero tengo varios errores como estos:

Strict Standards: Declaration of volar::setAvanzar() should be compatible with that of mover::setAvanzar() in C:\xampp\htdocs\ejemplo\index.php on line 53.

Notice: Undefined index: avanzar in C:\xampp\htdocs\ejemplo\index.php on line 69

Notice: Undefined index: retroceder in C:\xampp\htdocs\ejemplo\index.php on line 79

al parece las clases no se estan relacionando y no entiendo los otros dos erroes undefined index.

tambien debo hacer que valide que no ingrese numeros negativos y lo hice dentro de la function setAvanzar agregandole un if($_POST['avanzar']<=0){
echo 'Ingrese valores positivos';
}
}
pero no esta validando y si llega a cero alguno pues que salga un mensaje que ingrese nuevos datos.

alguien me puede colaborar!! gracias.
  #2 (permalink)  
Antiguo 01/09/2011, 16:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: validar por medio de un form

El primer error te dice que la declaración de la función que estas reescribiendo deben de ser iguales.

Los otros dos errores es porque no compruebas si el valor existe antes de leer el valor en el if.

Saludos.
  #3 (permalink)  
Antiguo 01/09/2011, 20:27
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 8
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: validar por medio de un form

Hola GatorV seria mucho pedir que me dieras un ejemplo o decirme como solucionar esto, la verdad fue ahi donde me quede y es primera vez que manejo poo con php y usando forms, no entiendo cuando dices que no compruebo si el valor existe antes del if, no hago esto cuando envio el form??

gracias!!
  #4 (permalink)  
Antiguo 02/09/2011, 08:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: validar por medio de un form

Sí, si solo haces un:
Código PHP:
Ver original
  1. if ($_POST['avanzar']) {}

y no existe esa llave en el arreglo, por eso te marca el notice, debes de comparar así:
Código PHP:
Ver original
  1. if (isset($_POST['avanzar']) && ($_POST['avanzar'] == 'algunvalor')) {}

El primer error te indica que el método que estas sobreescribiendo, no acepta los mismos argumentos, y si estas heredando necesitas heredar como tal la función con los mismos parámetros.

Saludos.

Etiquetas: clase, medio, php, formulario
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 19:53.