Foros del Web » Programando para Internet » PHP »

PHP OO Php poo

Estas en el tema de Php poo en el foro de PHP en Foros del Web. Tengo el siguiente codigo. IUBanco.php <?php include "Banco.php"; $formulario = TRUE; if(isset($_POST["procesar"])){ $formulario=FALSE; $banco=new Banco(); $banco-> GetCapital($_REQUEST["capital"]); $banco-> GetInteres($_REQUEST["interes"]); $banco-> GetPeriodos($_REQUEST["meses"]); echo "<h2>Calculo interes compuesto</h2>"; ...
  #1 (permalink)  
Antiguo 07/07/2014, 11:59
 
Fecha de Ingreso: julio-2014
Mensajes: 5
Antigüedad: 9 años, 9 meses
Puntos: 0
Exclamación Php poo

Tengo el siguiente codigo.
IUBanco.php
<?php
include "Banco.php";
$formulario = TRUE;
if(isset($_POST["procesar"])){
$formulario=FALSE;
$banco=new Banco();
$banco-> GetCapital($_REQUEST["capital"]);
$banco-> GetInteres($_REQUEST["interes"]);
$banco-> GetPeriodos($_REQUEST["meses"]);
echo "<h2>Calculo interes compuesto</h2>";
echo "Resultado<p>";
echo "Capital inicial: ".Banco::setCapital($capital);
echo "Interes Mensual: ".Banco::setInteres($interes);
echo "Cantidad de meses: ".Banco::setPeriodos($periodos);
echo "Importe total: ".Banco::setImporte($importe);
}else{
?>
<form action="UIBanco.php" method="post">
<h1>Calculo Interes Compuesto1</h1><hr>
Datos
<p>
<table border="0">
<tr>
<td>Capital Inicial:</td>
<td><input type="text" name="capital"></td>
</tr>
<tr>
<td>Interes Mensual:</td>
<td><input type="text" name="interes"></td>
</tr>
<tr>
<td>Cantidad de meses:</td>
<td><input type="text" name="meses"></td>
</tr>
<tr>
<td><input type="submit" name="procesar" value="Procesar"></td>
</tr>
</table>
<?php
}
?>
</body>
</html>

Me sale lo siguiente:
Not Found
The requested URL /laboratorio13/Ejercicio01/UIBanco.php was not found on this server.
Apache/2.2.8 (Win32) PHP/5.2.6 Server at localhost Port 80

Cuando corro el php IUBanco.php, me aparece las cajas de texto y los botones pero cuando pongo "procesar" me sale ese error. En que ando mal amigos.
  #2 (permalink)  
Antiguo 07/07/2014, 12:07
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Php poo

el error es muy claro, el archivo que procesa los datos no se encuentra en la ruto especificada... revisa las rutas seguro que algo se te esta olvidando.
  #3 (permalink)  
Antiguo 07/07/2014, 12:10
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Php poo

Si tienes el archivo UIBanco.php en una carpeta donde pueda ejecutarlo apache ??
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 07/07/2014, 12:12
 
Fecha de Ingreso: julio-2014
Mensajes: 5
Antigüedad: 9 años, 9 meses
Puntos: 0
Exclamación Respuesta: Php poo

Cita:
Iniciado por ArturoGallegos Ver Mensaje
el error es muy claro, el archivo que procesa los datos no se encuentra en la ruto especificada... revisa las rutas seguro que algo se te esta olvidando.
Amigo, el archivo IUBanco.php es recursivo y si esta ahi en la ruta, que sera?¿
  #5 (permalink)  
Antiguo 07/07/2014, 12:21
 
Fecha de Ingreso: julio-2014
Mensajes: 5
Antigüedad: 9 años, 9 meses
Puntos: 0
Exclamación Respuesta: Php poo

Cita:
Iniciado por ArturoGallegos Ver Mensaje
el error es muy claro, el archivo que procesa los datos no se encuentra en la ruto especificada... revisa las rutas seguro que algo se te esta olvidando.
Amigo, tenias razon, lo estaba llamando mal al IUBanco.php, ahora me sale otro error:
Fatal error: Using $this when not in object context in C:\AppServ\www\Laboratorio13\Ejercicio01\Banco.php on line 8
este la clase.
Banco.php
<?php
class Banco{
Private $capital=0.0;
Private $interes =0.0;
Private $periodos=0;

function setCapital ($capital){
$this->capital=(double)$capital;
}
function getCapital (){
return $this->capital;
}
function setInteres ($interes){
$this->interes=(double)$interes;
}
function getInteres (){
return $this->interes;
}
function setPeriodos ($periodos){
$this->periodos=(int)$periodos;
}
function getPeriodos (){
return $this->periodos;
}
public function getImporte(){
$importe=$this->getCapital()*pow(1+$this->getInteres(),$this->setPeriodos());
return round($importe,2);
}
}
  #6 (permalink)  
Antiguo 07/07/2014, 13:48
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Php poo

Lo unico raro en esa parte de código es aquí:
Código PHP:
Ver original
  1. $importe=$this->getCapital()*pow(1+$this->getInteres(),$this->setPeriodos());
No debiera de ser $this->getPeriodos() ??

Y no creo que este aqui el problema; el error es muy probable que se este disparando en alguna otra parte donde estés intentando llamar métodos de forma estática que no lo son.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 07/07/2014, 14:15
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Php poo

Igual revisa esto:

Código PHP:
Ver original
  1. $banco=new Banco();
  2. $banco-> GetCapital($_REQUEST["capital"]);
  3. $banco-> GetInteres($_REQUEST["interes"]);
  4. $banco-> GetPeriodos($_REQUEST["meses"]);
  5. echo "<h2>Calculo interes compuesto</h2>";
  6. echo "Resultado<p>";
  7. echo "Capital inicial: ".Banco::setCapital($capital);
  8. echo "Interes Mensual: ".Banco::setInteres($interes);
  9. echo "Cantidad de meses: ".Banco::setPeriodos($periodos);
  10. echo "Importe total: ".Banco::setImporte($importe);

Usaste los get en vez de los set y viceversa.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 07/07/2014, 21:24
 
Fecha de Ingreso: julio-2014
Mensajes: 5
Antigüedad: 9 años, 9 meses
Puntos: 0
Exclamación Respuesta: Php poo

Cita:
Iniciado por andresdzphp Ver Mensaje
Igual revisa esto:

Código PHP:
Ver original
  1. $banco=new Banco();
  2. $banco-> GetCapital($_REQUEST["capital"]);
  3. $banco-> GetInteres($_REQUEST["interes"]);
  4. $banco-> GetPeriodos($_REQUEST["meses"]);
  5. echo "<h2>Calculo interes compuesto</h2>";
  6. echo "Resultado<p>";
  7. echo "Capital inicial: ".Banco::setCapital($capital);
  8. echo "Interes Mensual: ".Banco::setInteres($interes);
  9. echo "Cantidad de meses: ".Banco::setPeriodos($periodos);
  10. echo "Importe total: ".Banco::setImporte($importe);

Usaste los get en vez de los set y viceversa.
Si man, como podras ver soy novato en esto y aun me equivoco, y deseo aprender.
Revise lo que dijiste y corregi, ahora me sale otro error.
Resultado


Fatal error: Using $this when not in object context in C:\AppServ\www\Laboratorio13\Ejercicio01\Banco.php on line 8
Banco.php
<?php
class Banco{
private $capital=0.0;
private $interes =0.0;
private $periodos=0;

public function getCapital (){
return $this->capital;
}
la linea 8 es return $this->capital;
Cual es mi error?¿
  #9 (permalink)  
Antiguo 08/07/2014, 02:43
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Php poo

Buenas,

al usar Banco::getCapital estás llamando a un método estático, cuando deberias llamarlo con ->

Saludos

http://www.php.net/manual/es/language.oop5.static.php (info de metodos estáticos)
__________________
>> Eleazan's Source
>> @Eleazan
  #10 (permalink)  
Antiguo 08/07/2014, 12:37
 
Fecha de Ingreso: julio-2014
Mensajes: 5
Antigüedad: 9 años, 9 meses
Puntos: 0
Exclamación Respuesta: Php poo

Cita:
Iniciado por Eleazan Ver Mensaje
Buenas,

al usar Banco::getCapital estás llamando a un método estático, cuando deberias llamarlo con ->

Saludos

[url]http://www.php.net/manual/es/language.oop5.static.php[/url] (info de metodos estáticos)
Man, gracias tenias toda la razon del mundo, con tu indicacion lo resolvi y ya me salio, ahora podre resolver otro que es similar ah ese.
Dejo el codigo se ah alguien le puede servir como ejemplo.

<?php
include "Banco.php";
$formulario = TRUE;
if(isset($_POST["procesar"])){
$formulario=FALSE;
$banco=new Banco();
$banco-> setCapital($_REQUEST["capital"]);
$banco-> setInteres($_REQUEST["interes"]);
$banco-> setPeriodos($_REQUEST["meses"]);
echo "<h2>Calculo interes compuesto</h2><hr>";
echo "Resultado<p>";
echo "<b>Capital inicial: </b>".$banco->getCapital($capital);
echo "<br><b>Interes Mensual: </b>".$banco->getInteres($interes);
echo "<br><b>Cantidad de meses: </b>".$banco->getPeriodos($periodos);
echo "<br><b>Importe total: </b>".$banco->getImporte($importe);
}else{
?>
<form action="IUBanco.php" method="post">
<h1>Calculo Interes Compuesto</h1><hr>
Datos
<p>
<table border="0">
<tr>
<td>Capital Inicial:</td>
<td><input type="text" name="capital"></td>
</tr>
<tr>
<td>Interes Mensual:</td>
<td><input type="text" name="interes"></td>
</tr>
<tr>
<td>Cantidad de meses:</td>
<td><input type="text" name="meses"></td>
</tr>
<tr>
<td><input type="submit" name="procesar" value="Procesar"></td>
</tr>
</table>
<?php
//$importe=pow(3,2);
//echo $importe;
}
?>
</body>
</html>

Etiquetas: formulario, html, poo
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 14:15.