Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: iMarcSpS en 15 Abril 2012, 12:42 pm



Título: Problemas con PHP
Publicado por: iMarcSpS en 15 Abril 2012, 12:42 pm
Me llamo Marc tengo 16 años y me interesa mucho la informática y todo el diseño en si, por eso decidí comprar un libro "Desarrollo Web con PHP y MySQL", es un libro verdaderamente interesante, sin envargo pase por alto la fecha de edición, 2003, puesto que han pasado casi 10 años, me e tenido que entretener a aplicar los programas a mi sistema operativo (Windows 7) como el Apache, PHP, phpMyAdmin, etc... Por eso no hay problema, ahora viene lo malo, tengo verdaderos problemas no con el lenguaje PHP, sino que cuando intento acceder a ellos mediante http://localhost/"nombre".php me da error en la variable, le voy a poner un ejemplo:

Éste es el error de la variable que me sale.

Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\buscador.php on line 21

El problema es que repaso toda la estructura del documento PHP de arriba a abajo y no le encuentro el error, alomejor las variables cambiaron de estructura al paso de los años pero no creo que sea eso.

Le voy a pasar el documento PHP el cual me da el error y esta exactamente copiado de un libro (Cuya edición es de 2003):

<!- buscador.php ->
<html>
<head>
<title> Buscador de antiguos alumnos </title>
</head>
<body>
<?php
$dbcnx = @mysql_connect("localhost", "root", "tubititu");
if (!$dbcnx) {
echo ( "<p>No es posible establecer conexión. " . "con el servidor. Inténtelo más tarde.</p>" );
exit();
}
if (! @mysql_select_db("alumnos") ) {
echo ( "<p>No es posible conectar con la base de datos.</p>" );
exit();
}
?>
<p> Introduce el apellido del antiguo alumno que estás buscando:</p>
<blockquote>
<?php
$result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE "$busca"");
if (!$result) {
echo ("<p>Error performing query: " . mysql_error() . "</p>");
exit();
}
while ( $row = mysql_fetch_array($result) ) {
echo("<p>" . $row["nombre"] ." " . $row["apellido"] . " ".$row["email"] . " ". $row["nacimiento"] . "</p>");
}
$busca=0
?>
<form action="<?=$PHP_SELF?>" method="post">
<p><br />
Apellido: <input type="text" name="busca" size="20" maxlength="255" /><br />
<input type="submit" name="submit" value="BUSCA" />
</p>
</form>
</body>
</html>


Gracias

Marc


Título: Re: Problemas con PHP
Publicado por: javirk en 15 Abril 2012, 14:01 pm
Código
  1. <!- buscador.php ->
  2. <html>
  3. <head>
  4. <title> Buscador de antiguos alumnos </title>
  5. </head>
  6. <body>
  7. <?php
  8. $dbcnx = @mysql_connect("localhost", "root", "tubititu");
  9. if (!$dbcnx) {
  10. echo ( "<p>No es posible establecer conexión. " . "con el servidor. Inténtelo más tarde.</p>" );
  11. exit();
  12. }
  13. if (! @mysql_select_db("alumnos") ) {
  14. echo ( "<p>No es posible conectar con la base de datos.</p>" );
  15. exit();
  16. }
  17. ?>
  18. <p> Introduce el apellido del antiguo alumno que estás buscando:</p>
  19. <blockquote>
  20. <?php
  21. $result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE "$busca"");
  22. if (!$result) {
  23. echo ("<p>Error performing query: " . mysql_error() . "</p>");
  24. exit();
  25. }
  26. while ( $row = mysql_fetch_array($result) ) {
  27. echo("<p>" . $row["nombre"] ." " . $row["apellido"] . " ".$row["email"] . " ". $row["nacimiento"] . "</p>");
  28. }
  29. $busca=0
  30. ?>
  31. <form action="<?=$PHP_SELF?>" method="post">
  32. <p><br />
  33. Apellido: <input type="text" name="busca" size="20" maxlength="255" /><br />
  34. <input type="submit" name="submit" value="BUSCA" />
  35. </p>
  36. </form>
  37. </body>
  38. </html>

Hola, primero he copiado el código para que sea más legible.

Tu error está en la línea 21, que has usado mal las comillas antes de $busca, si te fijas has abierto el SELECT con ", y al llegar ahí lo has cerrado poniendo otra vez ", prueba a poner:
Código
  1. $result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE '$busca'");


Título: Re: Problemas con PHP
Publicado por: Runex en 15 Abril 2012, 14:55 pm
Código
  1. <!- buscador.php ->
  2. <html>
  3. <head>
  4. <title> Buscador de antiguos alumnos </title>
  5. </head>
  6. <body>
  7. <?php
  8. $dbcnx = @mysql_connect("localhost", "root", "tubititu");
  9. if (!$dbcnx) {
  10. echo ( "<p>No es posible establecer conexión. " . "con el servidor. Inténtelo más tarde.</p>" );
  11. exit();
  12. }
  13. if (! @mysql_select_db("alumnos") ) {
  14. echo ( "<p>No es posible conectar con la base de datos.</p>" );
  15. exit();
  16. }
  17. ?>
  18. <p> Introduce el apellido del antiguo alumno que estás buscando:</p>
  19. <blockquote>
  20. <?php
  21. $result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE "$busca"");
  22. if (!$result) {
  23. echo ("<p>Error performing query: " . mysql_error() . "</p>");
  24. exit();
  25. }
  26. while ( $row = mysql_fetch_array($result) ) {
  27. echo("<p>" . $row["nombre"] ." " . $row["apellido"] . " ".$row["email"] . " ". $row["nacimiento"] . "</p>");
  28. }
  29. $busca=0
  30. ?>
  31. <form action="<?=$PHP_SELF?>" method="post">
  32. <p><br />
  33. Apellido: <input type="text" name="busca" size="20" maxlength="255" /><br />
  34. <input type="submit" name="submit" value="BUSCA" />
  35. </p>
  36. </form>
  37. </body>
  38. </html>

Hola, primero he copiado el código para que sea más legible.

Tu error está en la línea 21, que has usado mal las comillas antes de $busca, si te fijas has abierto el SELECT con ", y al llegar ahí lo has cerrado poniendo otra vez ", prueba a poner:
Código
  1. $result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE '$busca'");

Así tampoco le funcionará, si no me equivoco, quítale directamente las comillas, ya que en PHP aunque las variables estén insertadas dentro de comillas siguen devolviendo el valor que se le asigna, siempre que sean comillas dobles claro está, con comillas simples en vez de devolver el valor, devuelve el nombre de la variable $busca, cosa que tu no quieres.

Haz la consulta sin añadir ninguna comilla dentro de ella, es decir, así:

Código
  1. $result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE $busca");

Abriendo y cerrando las comillas solo al principio y final de la consulta.

Espero que te haya servido, un saludo :)


Título: Re: Problemas con PHP
Publicado por: Stakewinner00 en 15 Abril 2012, 15:38 pm

<!- buscador.php ->
<html>
<head>
<title> Buscador de antiguos alumnos </title>
</head>
<body>
<?php
$dbcnx = @mysql_connect("localhost", "root", "tubititu");
if (!$dbcnx) {
echo ( "<p>No es posible establecer conexión. " . "con el servidor. Inténtelo más tarde.</p>" );
exit();
}
if (! @mysql_select_db("alumnos") ) {
echo ( "<p>No es posible conectar con la base de datos.</p>" );
exit();
}
?>
<p> Introduce el apellido del antiguo alumno que estás buscando:</p>
<blockquote>
<?php
$result = @mysql_query("SELECT ID, nombre, apellido, nacimiento, email FROM alumnos WHERE apellido LIKE "$busca"");
if (!$result) {
echo ("<p>Error performing query: " . mysql_error() . "</p>");
exit();
}
while ( $row = mysql_fetch_array($result) ) {
echo("<p>" . $row["nombre"] ." " . $row["apellido"] . " ".$row["email"] . " ". $row["nacimiento"] . "</p>");
}
$busca=0
?>
<form action="<?=$PHP_SELF?>" method="post">
<p><br />
Apellido: <input type="text" name="busca" size="20" maxlength="255" /><br />
<input type="submit" name="submit" value="BUSCA" />
</p>
</form>
</body>
</html>


No se mucho de php pero el error no puede ser que no hay ningun valor a la variable $busca


Título: Re: Problemas con PHP
Publicado por: iMarcSpS en 15 Abril 2012, 15:48 pm
Runex y Javi

Los dos codigos que me haveis puesto sirven muchas gracias!  ;D

Tengo otra duda que me incapacita para seguir adelante:

http://foro.elhacker.net/php/problema_con_variables_php-t359206.0.html (http://foro.elhacker.net/php/problema_con_variables_php-t359206.0.html)

Muchas Gracias :D