Foros del Web » Programando para Internet » PHP »

Ver codigo

Estas en el tema de Ver codigo en el foro de PHP en Foros del Web. Hola!! hoy les traigo un problema ! que no encuentro donde esta ese problema!! Ave si ustedes me pueden ayudar!! Este es el codigo con ...
  #1 (permalink)  
Antiguo 26/01/2015, 22:18
 
Fecha de Ingreso: enero-2015
Mensajes: 32
Antigüedad: 9 años, 10 meses
Puntos: 0
Ver codigo

Hola!! hoy les traigo un problema ! que no encuentro donde esta ese problema!!
Ave si ustedes me pueden ayudar!!
Este es el codigo con el Problema:
Código PHP:
<?
$connect 
"connect.php";
include(
$connect);
$id $_POST['id'];
$puja $_POST['puja'];
$nombre $_POST['usuario'];

$aa mysql_query("UPDATE pujas SET puja='$puja' , usuario='$nombre' WHERE id=$id");
header("Location: subasta.php");
?>
Y todo ese dato viene de aca!

Código PHP:
<?php
$connect 
"connect.php";
include(
$connect);
$sql25="select * from pujas ORDER BY id DESC";
$datos=mysql_query($sql25);
echo 
"<table border='1'>";
echo 
"<th>Subastas</th><th>Puja Base</th><th>Puja Actual</th><th>Ultima persona que Pujo</th><br>";
while(
$re=mysql_fetch_array($datos))
{
    echo 
"<tr>";
    echo 
"<td>" ."<a href='subastas.php?id=" .$re['id']. "'>Mirar la Subasta</a>" "</td>";
    echo 
"<td>" .$re['base']. "</td>";
    echo 
"<td>" .$re['actual']. "</td>";
    echo 
"<td>" .$re['usuario']. "</td>";
    echo 
"</tr>";
}
echo 
"</table>";
?>
Desde ya muchas Gracias!!
  #2 (permalink)  
Antiguo 26/01/2015, 22:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ver codigo

Y el "problema" vendría a ser... ¿cual?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/01/2015, 09:30
 
Fecha de Ingreso: enero-2015
Mensajes: 32
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Ver codigo

que el update no actualiza la tabla ! Y nose porque no lo hace!
  #4 (permalink)  
Antiguo 27/01/2015, 09:42
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Ver codigo

¿Tenemos que deducir que el "codigo con Problemas" es subastas.php?

Pq si es así, me queda la pregunta de pq pasas parametros por get, y los intentas recuperar por post... ;)

PD: Prueba a imprimir por pantalla esas variables que "no te actualiza", a ver que tienen dentro ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 27/01/2015, 10:57
 
Fecha de Ingreso: enero-2015
Mensajes: 32
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Ver codigo

El archivo de subastas.php contiene esto:

Código PHP:
Ver original
  1. <?
  2. $connect2 = 'connect.php';
  3. include($connect2);
  4. $idd = $_GET['id'];
  5. $query = mysql_query("SELECT * FROM pujas where id=$idd") or die(mysql_error());
  6. $data = mysql_fetch_array($query);
  7. $foto = $data['foto'];
  8. $descripcion = $data['descripcion'];
  9. $base = $data['base'];
  10. $actual = $data['actual'];
  11. $puja = $data['puja'];
  12. $nombre = $data['usuario'];
  13. ?>
  14. <div align="center"><? echo "<img src='/usuarios/$foto'>"; ?>
  15.   <p align="left"><strong>Descripcion:</strong> <? echo $descripcion ?><br>
  16.       <strong>Precio Base:</strong> <strong>AR$</strong> <? echo $base ?><br>
  17.       <strong>Ultima persona que Pujo:</strong> <? echo $nombre ?> <br>
  18.   <strong>Precio Actual: AR$</strong> <? echo $actual ?></p>
  19.   <p align="left"><strong>Has una nueva Puja</strong>
  20.     <label>
  21.   </p>
  22.   <form method="POST" action="altapuja.php">
  23.   <input type="hidden" name="id" value="<?php echo $data->id; ?>" />
  24. <div align="left">
  25.         <p>
  26.           <input name="puja" type="text" id="puja">
  27.           <br />
  28.           <input type="hidden" name="usuario" value="<?php echo $usuario; ?>" />
  29.           <br>
  30.           <input type="submit" name="Submit" value="Pujar">
  31.           </label>
  32.   </p>
  33.     </div>
  34.     </form>
  35. </div>
  #6 (permalink)  
Antiguo 27/01/2015, 11:17
 
Fecha de Ingreso: enero-2015
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: Ver codigo

Una forma muy simple de depurar el código es mediante este comando:
file_put_contents( "DEBUG.TXT", $str, FILE_APPEND ); entonces podrías armarlo en una funcion o un metodo de tu clase y lo utilizas para volcar cualquier valor del cual dudes.

Obviamente hay que quitar el codigo una vez que el sistema entra en producción, pero para el desarrollo es bueno y simple!!, utilizo ECLIPSE HELIOS y nunca me tome el tiempo de entender como se depura el codigo PHP.

//////////////////////////////////////////
function debug( $str="???" ) {
//////////////////////////////////////////
/**
* TODO: Depuración
*/
$str.="\r\n";
file_put_contents( "DEBUG.TXT", $str, FILE_APPEND );
return;
}


y lo colocas en tu código asi:
<?
$connect = "connect.php";
include($connect);
$id = $_POST['id'];
$puja = $_POST['puja'];
$nombre = $_POST['usuario'];

$str="UPDATE pujas SET puja='$puja' , usuario='$nombre' WHERE id=$id";
debug( $str ); //te vuelca el valor de $str en un archivo de TXT en tu carpeta de proyecto

$aa = mysql_query( $str );
header("Location: subasta.php");
?>


Obs: debes tomar en cuenta las validaciones de tus variables $_POST y $_GET que pasa si algun usuario te escribe esto en tu campo $_POST['id'] -> "1;drop database dbase;" y tu base de datos se llame dbase?, hay que tener cuidado!!

Saludos
  #7 (permalink)  
Antiguo 28/01/2015, 09:54
 
Fecha de Ingreso: enero-2015
Mensajes: 32
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Ver codigo

Yo lo que ando necesitando es que no me cree una carpeta si no que modifique 2 tablas de la base de datos! pero no lo hace!
Nose si esa seria la solución
  #8 (permalink)  
Antiguo 29/01/2015, 08:34
 
Fecha de Ingreso: enero-2015
Mensajes: 35
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: Ver codigo

Si te fijas bien te vas a dar cuenta que tu problema esta en tu consulta (sentencia sql) o las variables que la componen, y ... para poder ver como envia tu consulta PHP es ese codigo!!!, no se de que carpeta hablas esto te crea un archivo txt en la que está tu sentencia, pero bueno...
  #9 (permalink)  
Antiguo 29/01/2015, 11:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ver codigo

Partamos de un par de cosas:
1) No estás capturando ningún error posible que pueda devolver MySQL. Tu asumes que la query funciona bien, pero no lo verificas, y eso es lo primero que debes hacer.
Código PHP:
Ver original
  1. $aa = mysql_query("UPDATE pujas SET puja='$puja' , usuario='$nombre' WHERE id=$id") or die("Error al ejecuta la query: ".mysql_error());


2) Antes de usar cualquier valor que llegue por POST o GET, como minimo tienes que verificar que haya datos útiles... cosa que parece que tampoco haces:
Código PHP:
Ver original
  1. if (isset($_POST['id']) and isset($_POST['puja']) and isset($_POST['usuario'])
  2. {
  3. $aa = mysql_query("UPDATE pujas SET puja='$puja' , usuario='$nombre' WHERE id=$id") or die("Error al ejecuta la query: ".mysql_error());
  4. }
  5. else
  6. {echo "Faltan datos a ingresar.";}
Validar las cosas es lo más engorroso que hay, y bbastante molesto, pero es necesario.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 29/01/2015, 14:29
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 1 mes
Puntos: 38
Respuesta: Ver codigo

Usa el ordie o comenta el location mete la query del update en una var , haz un echo y prueba la consulta en el phpmyadmin o donde quieras y así vas descartando, pero antes de nada... en un sistema de pujas o de lo que sea... si no quieres joder al cliente como mínimo :
1 usa la extensión de mysqli o pdo
2 filtra por favor todos los datos que lleguen del usuario como ya te han sugerido.
Suerte!

Etiquetas: mysql, select, sql
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 12:16.