Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: soru13 en 3 Marzo 2011, 20:37 pm



Título: problemilla con $_GET [solucionado]
Publicado por: soru13 en 3 Marzo 2011, 20:37 pm
hola,tengo el siguiente código ya que estoy intentando editar los registros de mi base de datos pero no lo consigo:

editar_pelicula.php
Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Documento sin título</title>
  6. <style type="text/css">
  7. <!--
  8. body {
  9. background-color: #9FE0FF;
  10. }
  11. -->
  12. </style></head>
  13.  
  14. <body><?
  15.   include("config.php");
  16. $id=$_GET['id'];
  17.  $link=Conectarse();
  18.   $result=mysql_query("select * from pelis WHERE id=$id",$link);
  19.   while($row = mysql_fetch_array($result)) {
  20.   $id2 = $row["id"];
  21.   $nombre = $row["nombre"];
  22.   $embed = $row["embed"];
  23.   $imagen = $row["imagen"];
  24.   $duracion = $row["duracion"];
  25.   $descripcion = $row["descripcion"];
  26.   $descarga = $row["descarga"];
  27.   }
  28.   mysql_free_result($result);
  29.   mysql_close($link);
  30. ?>
  31. <table width="40%" border="0" align="center">
  32.  <tr>
  33.    <td align="center"><p><b>Editar película</b><br></td>
  34.  </tr>
  35.  <tr>
  36.    <td align="center"><form id="form1" name="form1" method="request" action="1.php?id=<? echo $id2; ?>">
  37.      <p>
  38.        <label>
  39.          Nombre:
  40.          <input name="nombre" type="text" id="textfield" value="<? echo $nombre; ?>" size="50" />
  41.        </label>
  42.      </p>
  43.      <p>Embed: <br>
  44.        <textarea name="embed" cols="40" rows="8" id="textfield2"><? echo $embed; ?></textarea>
  45.      </p>
  46.      <p>Imagen:
  47.        <input name="imagen" type="text" id="textfield3" size="50" value="<? echo $imagen; ?>" />
  48.      </p>
  49.      <p>Duración:
  50.        <input name="duracion" type="text" id="textfield4" size="50" value="<? echo $duracion; ?>" />
  51.      </p>
  52.      <p>Descripción:<br>
  53.        <textarea name="descripcion" cols="40" rows="8" id="textfield5"><? echo $descripcion; ?></textarea>
  54.      </p>
  55.      <p>Descarga:<br>
  56.        <label>
  57.          <textarea name="descarga" cols="40" rows="8" id="textfield6"><? echo $descarga; ?></textarea>
  58.        </label>
  59.      </p>
  60.      <p>
  61.        <label>
  62.          <input type="submit" name="button" id="button" value="Editar" />
  63.        </label>
  64.      </p>
  65.      <p>&nbsp;</p>
  66.    </form></td>
  67.  </tr>
  68. </table>
  69. </body>
  70. </html>

1.php
Código
  1. <?php
  2. $id = $_GET["id"];
  3. $nombre = $_REQUEST["nombre"];
  4. $embed = $_REQUEST["embed"];
  5. $imagen = $_REQUEST["imagen"];
  6. $duracion = $_REQUEST["duracion"];
  7. $descripcion = $_REQUEST["descripcion"];
  8. $descarga = $_REQUEST["descarga"];
  9.  
  10. $con = mysql_connect("localhost","root","");
  11. if (!$con)
  12.  {
  13.  die('Could not connect: ' . mysql_error());
  14.  }
  15. mysql_select_db("pruebas", $con);
  16. mysql_query("UPDATE pelis SET nombre = '$nombre', embed = '$embed', imagen = '$imagen', duracion = '$duracion', descripcion = '$descripcion', descarga = '$descarga' WHERE id = '$id'");
  17. ?>

el caso es que me da error cuando me lleva a 1.php

Código
  1. Notice: Undefined index: id in C:\xampp\htdocs\editar_spraycine\1.php on line 2

como bien dice la direccion me devuelve todos los parametros menos el id y sin esta no sabe que registro editar

Código
  1. http://localhost/editar/1.php?nombre=10+Minutes+aaaa&embed=embed&imagen=http%3A%2F%2Fwww.web.com%2Fimages%2F10min.jpg&duracion=68+minutos&descripcion=desc&button=Editar

el caso es que he revisado el código y no se porque no aparece,aver si me podeis ayudar, gracias de antemano.

Un saludo!


Título: Re: problemilla con $_GET
Publicado por: .mokk. en 3 Marzo 2011, 21:32 pm
Donde esta lo de form, mira esto
method="request" , no deberia ser method="POST" ?
y ya en el 1.php en el id seria
POST y no GET


Título: Re: problemilla con $_GET
Publicado por: soru13 en 3 Marzo 2011, 22:49 pm
si hago lo que me dices no devuelve las variables atraves de la url,queda esto:
Código
  1. http://localhost/editar/1.php?id=2

y el mismo error:

Código
  1. Notice: Undefined index: id in C:\xampp\htdocs\editar\1.php on line 2


Título: Re: problemilla con $_GET
Publicado por: Shell Root en 3 Marzo 2011, 23:13 pm
Entonces cambiale el $_REQUEST por el $_GET


Título: Re: problemilla con $_GET
Publicado por: soru13 en 3 Marzo 2011, 23:23 pm
le puse GET al formulario y estamos en las mismas que en el primer mensaje:

Código
  1. Notice: Undefined index: id in C:\xampp\htdocs\editar\1.php on line 2

y falta el ?id= en la url que me devuelve

Código
  1. http://localhost/editar/1.php?nombre=10+Minutes+aaaa&embed=embed&imagen=http%3A%2F%2F...


Título: Re: problemilla con $_GET
Publicado por: Feedeex en 3 Marzo 2011, 23:54 pm
Proba asi:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body {
background-color: #9FE0FF;
}
-->
</style></head>
 
<body><?
   include("config.php");
 $id=$_GET['id'];
  $link=Conectarse();
   $result=mysql_query("select * from pelis WHERE id=$id",$link);
   while($row = mysql_fetch_array($result)) {
  $id2 = $row["id"];
  $nombre = $row["nombre"];
  $embed = $row["embed"];
  $imagen = $row["imagen"];
  $duracion = $row["duracion"];
  $descripcion = $row["descripcion"];
  $descarga = $row["descarga"];
   }
   mysql_free_result($result);
   mysql_close($link);
?>
<table width="40%" border="0" align="center">
  <tr>
    <td align="center"><p><b>Editar película</b><br></td>
  </tr>
  <tr>
    <td align="center"><form id="form1" name="form1" method="POST" action="1.php?id=<? echo $id2; ?>">
      <p>
        <label>
          Nombre:
          <input name="nombre" type="text" id="textfield" value="<? echo $nombre; ?>" size="50" />
        </label>
      </p>
      <p>Embed: <br>
        <textarea name="embed" cols="40" rows="8" id="textfield2"><? echo $embed; ?></textarea>
      </p>
      <p>Imagen:
        <input name="imagen" type="text" id="textfield3" size="50" value="<? echo $imagen; ?>" />
      </p>
      <p>Duración:
        <input name="duracion" type="text" id="textfield4" size="50" value="<? echo $duracion; ?>" />
      </p>
      <p>Descripción:<br>
        <textarea name="descripcion" cols="40" rows="8" id="textfield5"><? echo $descripcion; ?></textarea>
      </p>
      <p>Descarga:<br>
        <label>
          <textarea name="descarga" cols="40" rows="8" id="textfield6"><? echo $descarga; ?></textarea>
        </label>
      </p>
      <p>
        <label>
          <input type="submit" name="button" id="button" value="Editar" />
        </label>
      </p>
      <p>&nbsp;</p>
    </form></td>
  </tr>
</table>
</body>
</html>

Código:
<?php
$id = $_GET['id'];
$nombre = $_POST["nombre"];
$embed = $_POST["embed"];
$imagen = $_POST["imagen"];
$duracion = $_POST["duracion"];
$descripcion = $_POST["descripcion"];
$descarga = $_POST["descarga"];
 
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("pruebas", $con);
mysql_query("UPDATE pelis SET nombre = '$nombre', embed = '$embed', imagen = '$imagen', duracion = '$duracion', descripcion = '$descripcion', descarga = '$descarga' WHERE id = '$id'");
mysql_close($con);
?>


Por cierto, ingresa a la primer página como http://url.com/editar_pelicula.php?id=ALGUN_NUMERO


Título: Re: problemilla con $_GET
Publicado por: Shell Root en 3 Marzo 2011, 23:57 pm
@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.


Título: Re: problemilla con $_GET
Publicado por: Feedeex en 4 Marzo 2011, 00:00 am
@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.

No entendí, pero hasta donde yo se el código que le di funciona porque el único que usa para $_GET es obtener una id, pero el formulario está en $_POST. Yo lo uso así y me funciona, solo paso el id por $_GET.


Título: Re: problemilla con $_GET
Publicado por: soru13 en 4 Marzo 2011, 00:05 am
ok,ya funciona, gracias por la ayuda!


Título: Re: problemilla con $_GET
Publicado por: Feedeex en 4 Marzo 2011, 00:11 am
Me alegro que te haya servido ;-)


Título: Re: problemilla con $_GET
Publicado por: .mokk. en 4 Marzo 2011, 01:33 am
@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.

No si esta bien porque si revisas el id es lo unico que envia y los demas los haria del tipo POST y ya solamente enviaria 1.php?id=<?=$id?>, mientras que los demas los colocaria en tipo POST, asi que si efectivamente funcionaria de tal forma.