elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con PHP y $_GET y _$REQUEST
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con PHP y $_GET y _$REQUEST  (Leído 2,163 veces)
venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Problema con PHP y $_GET y _$REQUEST
« en: 11 Abril 2015, 11:25 am »

Bueno, siendo mi primer post en este foro de PHP (Empece a aprender programacion PHP antes de ayer o ayer), me cogi un servidor local de PHP (XAMPP porque tiene debug incluido).
Al tener mi primer script que me serviria para hacer algunas cosas (Además estaba probando el hash) me encuentro con este error:

Undefined index: sv in C:\Server\xampp\htdocs\index.php on line 14

Sé que index es una tabla. Pero como la defino como tal? o almenos, que no de ese error y pase los argumentos totales, es decir, luego de darle "Enviar", me muestra en el $_GET ell enlace sin cifrado, es un problema gordito, ademas de que, al parecer, no hace el hash en un "if";
No se colocar el codigo con la sintaxis de PHP; Averiguado.
Código
  1. <?php
  2. echo '<html> <head> <title>TrosNos Bug Discover System</title></head> <body>';
  3. echo '<style> * {font-family: arial,sans-serif; font-weight: bold; font-size: 16px; color: #000000;}</style>';
  4. echo "<br><ul><form name='servers' method='get' action='index.php'>
  5. <p>Escoge tu servidor para ver los actuales bugs</p>
  6. <br>
  7. <p> Escoge tu servidor </p>
  8. <SELECT NAME='sv' SIZE=1 WIDTH=100px>
  9. <OPTION VALUE='TWD'>TWD (Rick y Supra)</OPTION>
  10. </select><br>
  11. <input type='submit'>
  12. </form></ul>
  13. ";
  14. if (htmlspecialchars($_REQUEST['sv'])) {
  15. $getto=htmlspecialchars($_REQUEST['sv']);
  16. $gett=hash('md5',$getto);
  17. echo "$gett";
  18. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  19. if ($gett == hash('md5', 'TWD')) {
  20. $server = "TWD (Rick y Ruben)";
  21. echo "<ul><h2>Server reportado: $server</h2></ul>";
  22. /*
  23. $bugID = "";
  24. $bug_titulo = "";
  25. $descripcion = "";
  26. $reproduccion = "";
  27.  
  28. echo "<center><table border=1 bordercolor=#000000 bgcolor=#DDDDDD cellspacing=0 cellpadding=5 width=95%>
  29. <td width=15%>ID de bug</td><td># $bugID</td><tr>
  30. <td>Título</td><td>$bug_titulo</td><tr>
  31. <td>Descripción</td><td>$descripcion</td><tr>
  32. <td>Reproducción</td><td>$reproduccion</td>
  33.  
  34. </table></center><br>";
  35. */
  36. //Bug Slot #1
  37. $bugID = "1";
  38. $bug_titulo = "Spam al cambiar de nombre";
  39. $descripcion = "Binds: <br>bind 1 nick venad<br>bind 1 nick venad2<br><hr/>Y presionar muchas veces el bind 1";
  40. $reproduccion = "Siempre";
  41.  
  42. echo "<center><table border=1 bordercolor=#000000 bgcolor=#DDDDDD cellspacing=0 cellpadding=5 width=95%>
  43. <td width=15%>ID de bug</td><td># $bugID</td><tr>
  44. <td>Título</td><td>$bug_titulo</td><tr>
  45. <td>Descripción</td><td>$descripcion</td><tr>
  46. <td>Reproducción</td><td>$reproduccion</td>
  47.  
  48. </table></center><br>";
  49. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  50. } elseif($gett == '') {} else {
  51. echo 'weon yo que te dije de experimentar con los enlaces ._.';
  52. }
  53. }

Cual es el error exactamente? :/


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Problema con PHP y $_GET y _$REQUEST
« Respuesta #1 en: 11 Abril 2015, 11:57 am »

El error es que intentas darle un valor a htmlspecialchars y a $getto sin saber realmente si ese valor (REQUEST sv) esta definido. Ademas, htmlspecialchars no deberías usarlo como comprobador.

Código
  1. if(isset($_REQUEST['sv'])){
  2.  
  3.     // resto de logica.
  4. }

Por otro lado si vas a usar hash() no hace falta limpiar los caracteres.

Saludos



En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: Problema con PHP y $_GET y _$REQUEST
« Respuesta #2 en: 11 Abril 2015, 12:11 pm »

Hmm, para usar los hash, tendria que definirlo desde un principio en el metodo get por lo que veo.

Vengo del lenguaje de programacion LUA donde
if variable then

Si no daba false o nil, no daba error, Por eso apliqué la misma formula en PHP, tengo bases de conocimiento de programacion, pero no de PHP xD

Por lo tanto:
Código
  1. <?php
  2. $server1_string = hash('sha512', 'TWD');
  3. echo '<html> <head> <title>TrosNos Bug Discover System</title></head> <body>';
  4. echo '<style> * {font-family: arial,sans-serif; font-weight: bold; font-size: 16px; color: #000000;}</style>';
  5. echo "<br><ul><form name='servers' method='get' action='index.php'>
  6. <p>Escoge tu servidor para ver los actuales bugs</p>
  7. <br>
  8. <p> Escoge tu servidor </p>
  9. <SELECT NAME='sv' SIZE=1 WIDTH=100px>
  10. <OPTION VALUE='$server1_string'>TWD (Rick y Supra)</OPTION>
  11. </select><br>
  12. <input type='submit'>
  13. </form></ul>
  14. ";
  15. if (isset($_REQUEST['sv'])) {
  16. $gett=htmlspecialchars($_REQUEST['sv']);
  17. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  18. if ($gett == hash('sha512', 'TWD')) {



El acto inverso a isset, cual es?

isset (Comprueba si ESTÁ definida)
Y si.. quiero..

*** (Comprueba si NO ESTÁ definida)

Basicamente, para hacer desaparecer el formulario al entrar en una opcion

He intentado hacer esto, pero da error en la linea uno:

Undefined index: sv in C:\Server\xampp\htdocs\index.php on line 5

Código
  1. if (is_null ($_REQUEST['sv'])) {

Encontré una manera, pero me gustaria saber si hay alguna forma mas corta de hacerlo
Código
  1. $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
  2. $web_url = 'bugs.trosnos.tk';
  3. $lang = array (
  4. 1 => array(1=>hash('sha512','TWD'), 2=>'TWD (Rick y Supra server)')
  5. );
  6. $server1_string = hash('sha512', 'TWD');
  7. echo '<html> <head> <title>TrosNos bug registry</title></head> <body>';
  8. echo '<style> * {font-family: arial,sans-serif; font-weight: bold; font-size: 16px; color: #000000;}</style>';
  9. if ($actual_link == "http://$web_url/" or $actual_link == "http://web_url/index.php") {

Mod: No hacer doble post.
« Última modificación: 11 Abril 2015, 13:50 pm por #!drvy » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Problema con PHP y $_GET y _$REQUEST
« Respuesta #3 en: 11 Abril 2015, 13:48 pm »

Citar
Hmm, para usar los hash, tendria que definirlo desde un principio en el metodo get por lo que veo.

eing?

Citar
tengo bases de conocimiento de programacion, pero no de PHP xD

Las variables _REQUEST, _GET, _POST etc no son fijas ni se declaran/definen si no se indica. Por eso es normal que te diga que no existe.. porque nunca fue declarada. Por tanto ni es boolean ni es nada.

Citar
El acto inverso a isset, cual es?

El acto inverso de isset es !isset con un ! delante como en la mayoría de lenguajes basados en C/C++ :P

Citar
Undefined index: sv in C:\Server\xampp\htdocs\index.php on line 5

Repito, tienes que saber si la variable ha sido declarada para poder usarla. Mira que es sencillo y te lo puse antes.

Código
  1. <?php
  2.  
  3. if(isset($_REQUEST['sv'])){
  4.  
  5.   $gett = htmlspecialchars($_REQUEST['sv']);
  6.   $gett = hash('sha512', $gett);
  7.  
  8.   if($gett === hash('sha512','TWD')) { echo 'Coincide'; } else { echo 'No coincide.'; }
  9.  
  10. }

PD: No hagas doble post. El usa el botón modificar.

Saludos
En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: Problema con PHP y $_GET y _$REQUEST
« Respuesta #4 en: 11 Abril 2015, 14:00 pm »

El ultimo error me lo habia dado al intentar hacer la inverda de isset (con is_null) pero claro, es lo que tu me estás diciendo, el PHP hay que definir todo, porque no es nada (Al contrario de LUA que devuelve nil) enfin. Ya he solucionado el error con tus consegos en el codigo :D lo dejo aqui por si alguien le saca mejor partido :P

Aunque aun me quedan darle unos toques magicos con esos CSS y tablas.

PD: "El efecto inverso" o como quiera llamarse, funciona para variables?, perdon por ser tan noob, pero solo llevo un dia en PHP :P
Código
  1. $mivariable = "Holap";
  2. if (!$mivariable == "Hola")  { echo 'Correcto'; }
  3.  
Código
  1. <?php
  2. //Creditos a #!drvy de foro.elhacker.net por la resolucion de errores en el codigo :D
  3. $lang = array (
  4. 1 => array(1=>hash('sha512','TWD'), 2=>'TWD (Rick y Supra server)')
  5. );
  6. echo '<html> <head> <title>TrosNos bug registry</title></head> <body>';
  7. echo '<style> * {font-family: arial,sans-serif; font-weight: bold; font-size: 16px; color: #000000;}</style>';
  8. if (!isset($_REQUEST['sv'])) {
  9. echo "<br><ul><form name='servers' method='get' action='index.php'>
  10. <p>Escoge tu servidor para ver los actuales bugs</p>
  11. <SELECT NAME='sv' SIZE=1 WIDTH=100px>
  12. <OPTION VALUE='{$lang[1][1]}'>{$lang[1][2]}</OPTION>
  13. </select><br>
  14. <input type='submit'>
  15. </form></ul>
  16. ";
  17. }
  18. if (isset($_REQUEST['sv'])) {
  19. $gett=htmlspecialchars($_REQUEST['sv']);
  20. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  21. if ($gett == hash('sha512', 'TWD')) {
  22. echo "<br><ul><a href='./'><button style='width=95%'>Volver atras</button></a></ul>";
  23. echo "<ul><h2>Server reportado: {$lang[1][2]}</h2></ul>";
  24. /* //PLANTILLA
  25. $bugID = "";
  26. $bug_titulo = "";
  27. $descripcion = "";
  28. $reproduccion = "";
  29.  
  30. echo "<center><table border=1 bordercolor=#000000 bgcolor=#DDDDDD cellspacing=0 cellpadding=5 width=95%>
  31. <td width=15%>ID de bug</td><td># $bugID</td><tr>
  32. <td>Título</td><td>$bug_titulo</td><tr>
  33. <td>Descripción</td><td>$descripcion</td><tr>
  34. <td>Reproducción</td><td>$reproduccion</td>
  35.  
  36. </table></center><br>";
  37. */
  38. //Bug Slot #1
  39. $bugID = "1";
  40. $bug_titulo = "Spam al cambiar de nombre";
  41. $descripcion = "Binds: <br>bind 1 nick venad<br>bind 1 nick venad2<br><hr/>Y presionar muchas veces el bind 1";
  42. $reproduccion = "Siempre";
  43.  
  44. echo "<center><table border=1 bordercolor=#000000 bgcolor=#DDDDDD cellspacing=0 cellpadding=5 width=95%>
  45. <td width=15%>ID de bug</td><td># $bugID</td><tr>
  46. <td>Título</td><td>$bug_titulo</td><tr>
  47. <td>Descripción</td><td>$descripcion</td><tr>
  48. <td>Reproducción</td><td>$reproduccion</td>
  49.  
  50. </table></center><br>
  51. ";
  52. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  53. } elseif($gett == '') {} else {
  54. echo 'weon yo que te dije de experimentar con los enlaces ._.';
  55. }
  56. }

Cuando dije:
Cita de: venadHD
Hmm, para usar los hash, tendria que definirlo desde un principio en el metodo get por lo que veo.
me referia a esta parte del codigo: A que tendria que definir la string ("hasheada") ya en la form,sino no me lo reconoceria correctamente
Código
  1. $lang = array (
  2. 1 => array(1=>hash('sha512','TWD'), 2=>'TWD (Rick y Supra server)')
  3. );
  4. echo '<html> <head> <title>TrosNos bug registry</title></head> <body>';
  5. echo '<style> * {font-family: arial,sans-serif; font-weight: bold; font-size: 16px; color: #000000;}</style>';
  6. if (!isset($_REQUEST['sv'])) {
  7. echo "<br><ul><form name='servers' method='get' action='index.php'>
  8. <p>Escoge tu servidor para ver los actuales bugs</p>
  9. <SELECT NAME='sv' SIZE=1 WIDTH=100px>
  10. <OPTION VALUE='{$lang[1][1]}'>{$lang[1][2]}</OPTION>
  11. </select><br>
  12. <input type='submit'>
  13. </form></ul>
  14. ";
  15. }
« Última modificación: 11 Abril 2015, 14:08 pm por venadHD » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Problema con PHP y $_GET y _$REQUEST
« Respuesta #5 en: 11 Abril 2015, 14:20 pm »

Citar
PD: "El efecto inverso" o como quiera llamarse, funciona para variables?, perdon por ser tan noob, pero solo llevo un dia en PHP :P

Funcionar funciona pero en ese caso que muestras estas comparando strings. Por tanto debes usarlo en el comparador.

Código
  1. $mivariable = "Holap";
  2. if ($mivariable != "Hola")  { echo 'Correcto'; }

Para variables se usa cuando quieres que comparar bools con el contrario. Ejemplo:

Código
  1. $mivariable = true;
  2. if(!$mivariable == false){ echo 'Falso'; } else { echo 'No falso'; }

En ese caso debería dar 'Falso' porque estas comparando el valor contrario de $mivariable.

Saludos
En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: Problema con PHP y $_GET y _$REQUEST
« Respuesta #6 en: 11 Abril 2015, 14:27 pm »

Uh, perfecto, entonces entiendo. El ! es para indicar algo como "Si no es x" en las strings.
Y el ! en bools es el contrario. Algo parecido a lo que pasa en lua

Gracias por la ayuda!! Ya está solucionado este problema! :P
Deberian dar un premio al foro por las enseñanzas :O

PD: un fantasma abriendo la boca seria bueno xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Seguridad en $_POST y $_GET
PHP
Xephiro 3 3,254 Último mensaje 8 Septiembre 2008, 05:51 am
por Ertai
problema $_GET['id'];
PHP
viher 1 3,647 Último mensaje 19 Agosto 2010, 19:56 pm
por Shell Root
problemilla con $_GET [solucionado] « 1 2 »
PHP
soru13 10 4,511 Último mensaje 4 Marzo 2011, 01:33 am
por .mokk.
{SOLUCIONADO} no consigo obtener dato con _GET
PHP
|Miguel| 4 2,533 Último mensaje 9 Abril 2012, 10:58 am
por |Miguel|
Your request timed out. Please retry the request.
Sugerencias y dudas sobre el Foro
z3nth10n 8 4,263 Último mensaje 4 Agosto 2013, 21:43 pm
por z3nth10n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines