Foro oficial de PHP

si instalas XAMPP el te instala apache PHP MySql y con eso ya puedes empezar a trabajar, si quieres un IDE puedes utilizar NetBeans pero me parece muy pesado y si solo lo utilizaras para PHP y otros script puedes utilizar Notepad++ sin complicarte
¡Gracias!
Yo instalaba por consola todo eso e instalaba el XAMPP por aparte y me creaba conflictos: localhost alguna veces abría y otras no, quizás porque yo iniciaba XAMPP y por consola también iniciaba Apache 2.2 y éste no corría en XAMPP.
Lo que pienso hacer ahora es eliminar todo lo que instalé por consola (PHP, Apache y MySQL) y correr todo desde XAMPP:
 
Buenas noches manes;
Soy nuevo en php, y tengo una dificultad en un codigo.
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;
}
$I=$b->setImporte()

public function getImporte(){
$importe=$this->getCapital()*pow(1+$this->getInteres(),$this->setPeriodos());
return round($importe,2);
}
}
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 Conpuesto</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 error, linea 25, cual es mi error amigos?
 
Buenas noches manes;
Soy nuevo en php, y tengo una dificultad en un codigo.
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;
}
$I=$b->setImporte()

public function getImporte(){
$importe=$this->getCapital()*pow(1+$this->getInteres(),$this->setPeriodos());
return round($importe,2);
}
}
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 Conpuesto</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 error, linea 25, cual es mi error amigos?

Man, si no vi mal, le hace falta el ";" en la linea 25 xD
 
[sC+].V0DK4N
Man, observe el codigo, ahora me sale otro error, este:
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;
}
public function setCapital ($capital){
$this->capital=(double)$capital;
}
public function getInteres (){
return $this->interes;
}
la linea 8 es return $this->capital;
 
Hola a todos, por favor necesito que me ayuden con algo sencillo pero que no he podido solucionar. Tengo un formulario que recoge unos datos y los pasa a una funcion llamada ajax.js y luego envía los datos a un archivo llamado registro.php para insertarlos en una bd y al final el archivo consulta.php en el que me muestra esos datos en pantalla.

HTML:
<form name="nuevo_empleado" action="" onsubmit="enviarDatosEmpleado(); return false">
    <input type="hidden" name="codigo" value="<? echo $row['id_codigo'] ?>">
    Nombres: <input type="text" name="nombre">
    Apellido: <input type="text" name="apellido">
    Web: <input type="text"name="web">
    <input type="submit" name="Submit" value="Enviar">
</form>

ajax.js
Código:
// Función para recoger los datos de PHP según el navegador, se usa siempre.
function objetoAjax(){
    var xmlhttp=false;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
        xmlhttp = false;
    }
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
      xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}
//Función para recoger los datos del formulario y enviarlos por post
function enviarDatosEmpleado(){
  //div donde se mostrará lo resultados
  divResultado = document.getElementById('resultado');
  //recogemos los valores de los inputs
  cod=document.nuevo_empleado.codigo.value;
  nom=document.nuevo_empleado.nombre.value;
  ape=document.nuevo_empleado.apellido.value;
  web=document.nuevo_empleado.web.value;
  //instanciamos el objetoAjax
  ajax=objetoAjax();
  //uso del medotod POST
  //archivo que realizará la operacion
  //registro.php
  ajax.open("POST", "registro.php",true);
  //cuando el objeto XMLHttpRequest cambia de estado, la función se inicia
  ajax.onreadystatechange=function() {
      //la función responseText tiene todos los datos pedidos al servidor
      if (ajax.readyState==4) {
          //mostrar resultados en esta capa
        divResultado.innerHTML = ajax.responseText
          //llamar a funcion para limpiar los inputs
        LimpiarCampos();
    }
}
    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    //enviando los valores a registro.php para que inserte los datos
    ajax.send("&codigo="+cod+"&nombre="+nom+"&apellido="+ape+"&web="+web)
}
//función para limpiar los campos
function LimpiarCampos(){
  document.nuevo_empleado.codigo.value="";  
  document.nuevo_empleado.nombre.value="";
  document.nuevo_empleado.apellido.value="";
  document.nuevo_empleado.web.value="";
  document.nuevo_empleado.nombre.focus();
}

registro.php
PHP:
<?php
//Configuracion de la conexion a base de datos
  $bd_host = "localhost";
  $bd_usuario = "user";
  $bd_password = "pass";
  $bd_base = "empleados";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
//variables POST
  $cod=$_POST['codigo'];
  $nom=$_POST['nombre'];
  $ape=$_POST['apellido'];
  $web=$_POST['web'];
//registra los datos del empleados
  $sql="INSERT INTO comentarios (codigo, nombre, apellido, web) VALUES ('$cod', '$nom', '$ape', '$web')";
mysql_query($sql,$con) or die('Error. '.mysql_error());
include('consulta.php');
?>

consulta.php
PHP:
<?php
//Configuracion de la conexion a base de datos
  $bd_host = "localhost";
  $bd_usuario = "user";
  $bd_password = "pass";
  $bd_base = "empleados";
    $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
    mysql_select_db($bd_base, $con);
//consulta todos los comentarios

$sql=mysql_query("SELECT * FROM comentarios",$con);
?>
<br>
<table style="color:#000099;width:400px;">
    <tr style="background:#9BB;">
        <td>Codigo</td>
        <td>Nombre</td>
        <td>Apellido</td>
        <td>Web</td>
    </tr>
<?php
  while($row = mysql_fetch_array($sql)){
    echo "<tr>";
    echo "<td>".$row['codigo']."</td>";
    echo "<td>".$row['nombre']."</td>";
    echo "<td>".$row['apellido']."</td>";
    echo "<td>".$row['web']."</td>";
    echo "</tr>";
  }
?>
</table>

Todo funciona bien, pero quiero que funcione como un sistema de noticias de la forma noticia.php?id=1 y me muestre los resultados dependiendo del código o id que captura en el formulario inicial:

<input type="hidden" name="codigo" value="<? echo $row['id_codigo'] ?>">

En este momento me muestra todos los resultados guardados en la bd.

PD: no le paren bolas a los table, td o tr que vean por allí... cuando me funcione bien le meto los div y las css ;)
 
Como está el código de consulta.php está obteniendo todos los registros en BD, podría utilizar
PHP:
$codigo=$_REQUEST['codigo'];
Y al formar la consulta hacer
PHP:
$sql=mysql_query("SELECT * FROM comentarios WHERE codigo='".$codigo."'",$con);
Así le funcionaría cuando el parámetro llega por POST y también cuando entre por URL de la forma consulta.php?codigo=1
 
Como está el código de consulta.php está obteniendo todos los registros en BD, podría utilizar
PHP:
$codigo=$_REQUEST['codigo'];
Y al formar la consulta hacer
PHP:
$sql=mysql_query("SELECT * FROM comentarios WHERE codigo='".$codigo."'",$con);
Así le funcionaría cuando el parámetro llega por POST y también cuando entre por URL de la forma consulta.php?codigo=1

Si se van a ir por este lado, de una métale Stored Procedures por seguridad...
 
pero si llega por post utilice: $_POST y no $_REQUEST,

sobre lo de seguridad, serian prepared statements o mejor utilizar PDO(PHP Data Object) para utilizar todo el tema de bind variables
 
Stored procedures o prepared statements??
Se pueden utilizar en conjunto... no sabía a que se refería con prepared statements,
pero ya los ubiqué...

De hecho la solución que elija Kal-el es dependiente de si se siente más a gusto con
el manejo desde la DB o la aplicación en PHP...

Como dice Yeison, es más sencillo utilizar $_POST, $_REQUEST contiene toda la
información de $_POST y creo que alguna más ($_GET ?)...
 
Como está el código de consulta.php está obteniendo todos los registros en BD, podría utilizar
PHP:
$codigo=$_REQUEST['codigo'];
Y al formar la consulta hacer
PHP:
$sql=mysql_query("SELECT * FROM comentarios WHERE codigo='".$codigo."'",$con);
Así le funcionaría cuando el parámetro llega por POST y también cuando entre por URL de la forma consulta.php?codigo=1

Muchas gracias por la ayuda, lo resolví con el $_REQUEST porque con el $_POST no se por qué no me funcionó.

Pero tengo otro problema: Cuando entro al archivo donde meto los datos en el formulario, en la parte inferior del formulario me muestra la información de acuerdo al id, pero cuando le doy clic en el botón Enviar me guarda los datos en la BD pero me los borra de la pantalla. Si utilizo de nuevo el formulario y envío nuevos datos, me los guarda pero con el codigo "0" (cero) o sea el input donde se encuentra value="<? echo $row['id_codigo'] ?> queda como cero.

Muchas gracias en lo que me puedan colaborar.
 
Muchas gracias por la ayuda, lo resolví con el $_REQUEST porque con el $_POST no se por qué no me funcionó.

Pero tengo otro problema: Cuando entro al archivo donde meto los datos en el formulario, en la parte inferior del formulario me muestra la información de acuerdo al id, pero cuando le doy clic en el botón Enviar me guarda los datos en la BD pero me los borra de la pantalla. Si utilizo de nuevo el formulario y envío nuevos datos, me los guarda pero con el codigo "0" (cero) o sea el input donde se encuentra value="<? echo $row['id_codigo'] ?> queda como cero.

Muchas gracias en lo que me puedan colaborar.

Estimado una acotación:

$_REQUEST es un array que guarda los contenido de $_GET, $_POST, $_COOKIE, por lo cual si no funciona con $_POST es porque esta utilizando como metodo de envio $_GET.

http://php.net/manual/es/reserved.variables.request.php
 
  • Me gusta
Reacciones: Kal-El
Muchas gracias por la ayuda, lo resolví con el $_REQUEST porque con el $_POST no se por qué no me funcionó.

Pero tengo otro problema: Cuando entro al archivo donde meto los datos en el formulario, en la parte inferior del formulario me muestra la información de acuerdo al id, pero cuando le doy clic en el botón Enviar me guarda los datos en la BD pero me los borra de la pantalla. Si utilizo de nuevo el formulario y envío nuevos datos, me los guarda pero con el codigo "0" (cero) o sea el input donde se encuentra value="<? echo $row['id_codigo'] ?> queda como cero.

Muchas gracias en lo que me puedan colaborar.


En el trabajo, hacíamos otra página para mostrar que se guardó todo bien y
desplegabamos los datos guardados, esta solución puede servirle pues
de paso evita meter mucho código en una sóla página...

Lo que dice @xalupeao es correcto, está utilizando $_GET, esto se observa
por el query string al final de su página, también porque en su formulario no
especifica que es tipo post...

Saludos!
 
  • Me gusta
Reacciones: Kal-El
Para clarificar más, en el ejemplo de KalEl una parte se podría hacer por POST (si el form tuviera este método) y la otra por GET (el acceso que se hace por URL) por eso para ir a la fija recomendé el $_REQUEST
 
  • Me gusta
Reacciones: Kal-El
Gracias por todos los comentarios, hace mucho que no trabajaba con código y se me ha estado olvidando. El ejemplo que mostré lo adapté a una página web de un negocio propio que estoy montando y tengo algunas dudas de cositas que no me funcionan correctamente. Si alguien tiene tiempo y desea colaborarme con comentarios y sugerencias, puedo mandarle por MP el link de lo que llevo hecho.
 
  • Me gusta
Reacciones: el_guazu
Si necesita ayuda profesional, estoy trabajando de Freelance y tengo buena experiencia en PHP. De todas formas si quiere me manda el link que cuando tenga un ladito lo reviso y le cuento
 
Muchas gracias por la ayuda, lo resolví con el $_REQUEST porque con el $_POST no se por qué no me funcionó.

Pero tengo otro problema: Cuando entro al archivo donde meto los datos en el formulario, en la parte inferior del formulario me muestra la información de acuerdo al id, pero cuando le doy clic en el botón Enviar me guarda los datos en la BD pero me los borra de la pantalla. Si utilizo de nuevo el formulario y envío nuevos datos, me los guarda pero con el codigo "0" (cero) o sea el input donde se encuentra value="<? echo $row['id_codigo'] ?> queda como cero.

Muchas gracias en lo que me puedan colaborar.

Otra acotacion por aqui: Si no estoy mal $_REQUEST ya paso a mejor vida en las versiones mas nuevas de PHP debido a los riesgos de seguridad que creaba su uso asi que es mejor que aprenda a usar bien los $_POST y $_GET, sobretodo el $_POST
 

Los últimos temas