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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Envío de valores a variable PHP en Wordpress
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Envío de valores a variable PHP en Wordpress  (Leído 2,125 veces)
reenurya

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Envío de valores a variable PHP en Wordpress
« en: 21 Febrero 2017, 13:56 pm »

Cordial saludo. Soy nuevo en esto de programación y estoy haciendo una página en wordpress que realiza una consulta en SQL Server y envía los datos a una tabla.

Al hacer clic en el botón de "Consultar", la página se redirecciona a un 404 porque no procesa ni envía el valor de variable. Igualmente en la consulta SQL devuelve un Warning porque le es desconocido el valor de la variable name

Este es el código que estoy utilizando.
Supongo que debo validar primero para que la primera vez que cargue la página haga la consulta, pero aunque coloque la validación al principio, me genera un warning:

Warning: mssql_query(): message: Incorrect syntax near the keyword ‘order’. (severity 15) in /var/www/html/intraser/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 89

Y al hacer clic en consultar sigue redireccionando a un 404. Efectivamente necesito que el resultado de la consulta la cargue en la misma página en una tabla HTML para poder exportar a un XLS luego.

Envío nuevamente el código en espera de alguna otra idea sobre qué es lo que pasa. Gracias nuevamente por colaborar.


Código
  1. <?php if(isset($_POST['name'])){ $name = $_POST['name']; } ?>
  2. <div>
  3.  
  4.    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']) ?>">
  5.       <div>
  6.            Seleccione periodo:
  7.            <select name="name">
  8.                <option value="0" selected>Haga clic aquí</option>
  9.                <option value="1" <?php if($_POST['name']=='1') echo 'selected="selected" ';?>> ENERO</option>
  10.                <option value="2"  <?php if($_POST['name']=='2') echo 'selected="selected" ';?>>FEBRERO</option>
  11.                <option value="3"  <?php if($_POST['name']=='3') echo 'selected="selected" ';?>>MARZO</option>
  12.                <option value="4"  <?php if($_POST['name']=='4') echo 'selected="selected" ';?>>ABRIL</option>
  13.                <option value="5"  <?php if($_POST['name']=='5') echo 'selected="selected" ';?>>MAYO</option>
  14.                <option value="6"  <?php if($_POST['name']=='6') echo 'selected="selected" ';?>>JUNIO</option>
  15.                <option value="7"  <?php if($_POST['name']=='7') echo 'selected="selected" ';?>>JULIO</option>
  16.                <option value="8"  <?php if($_POST['name']=='8') echo 'selected="selected" ';?>>AGOSTO</option>
  17.                <option value="9"  <?php if($_POST['name']=='9') echo 'selected="selected" ';?>>SEPTIEMBRE</option>
  18.                <option value="10"  <?php if($_POST['name']=='10') echo 'selected="selected" ';?>>OCTUBRE</option>
  19.                <option value="11"  <?php if($_POST['name']=='11') echo 'selected="selected" ';?>>NOVIEMBRE</option>
  20.                <option value="12"  <?php if($_POST['name']=='12') echo 'selected="selected" ';?>>DICIEMBRE</option>
  21.            </select>
  22.            <input type="submit" name="submit" value="Consultar">
  23.            <input type="button" onclick=" generateexcel('testTable') " value="Exportar a Excel">
  24.        </div>
  25.     </form>
  26. </div>
  27.  
  28.  
  29.  
  30. <?php
  31.  
  32.  
  33.  
  34. echo "<table class='peq' id='testTable'>";
  35.  
  36. echo "<tr>";
  37.  
  38. echo "<th class='peq'>Codigo</th>";
  39.  
  40. echo "<th class='peq'>Apellidos</th>";
  41.  
  42. echo "<th class='peq'>Nombres</th>";
  43.  
  44. echo "<th class='peq'>Fecha_nacimiento</th>";
  45.  
  46. echo "<th class='peq'>Direccion_domicilio</th>";
  47.  
  48. echo "<th class='peq'>Ciudad</th>";
  49.  
  50. echo "</tr>";
  51.  
  52. $name = $_POST['name'];
  53.  
  54.  
  55. ini_set('mssql.charset', 'UTF-8');
  56.  
  57.  
  58.  
  59. $msconnect=mssql_connect("ECOSOL","logfuncionario","F3s3r2017_");
  60.  
  61. $msdb=mssql_select_db("solido",$msconnect);
  62.  
  63. $msquery = "Select
  64.    asociados.codigo,
  65.    asociados.nombre,
  66.    asociados.apellido,
  67.    (CONVERT (char(10),asociados.fecha_nacimiento, 103)) as fecha_nacimiento,
  68.    asociados.direccion,
  69.    asociados.ciudad
  70.    from (
  71.            SELECT
  72.              CAST(CAST(sys_maenit.CODIGOTER AS float(53)) AS decimal(10, 0))as codigo,
  73.              sys_maenit.APELLIDO AS apellido,
  74.              sys_maenit.NOMBRE AS nombre,
  75.              sys_maenit.DIRECCION AS direccion,
  76.              sys_ciudad57.NOMBRE_CIUDAD AS ciudad,
  77.              sys_maenit.FECNACEM as fecha_nacimiento,
  78.              sys_maenit.empresa as empresa
  79.           FROM (solido.dbo.sys_maenit
  80.              CROSS JOIN solido.dbo.sys_ciudad57)
  81.           WHERE (
  82.              (sys_maenit.ESTADO = 'A') AND
  83.              (sys_maenit.CLASE = '5') AND
  84.              (sys_maenit.DPTO_CIUDAD = sys_ciudad57.CIUDAD))
  85.            ) as asociados
  86.    where asociados.empresa != '0099'
  87.    and month(asociados.fecha_nacimiento)=".$name." order by day(asociados.fecha_nacimiento);";
  88.  
  89. $msresults= mssql_query($msquery);
  90. while ($row = mssql_fetch_array($msresults)){
  91.  
  92. echo "<tr>";
  93. echo "<td class='peq'>$row[0]</td>";
  94. echo "<td class='peq'>$row[1]</td>";
  95. echo "<td class='peq'>$row[2]</td>";
  96. echo "<td class='peq'>$row[3]</td>";
  97. echo "<td class='peq'>$row[4]</td>";
  98. echo "<td class='peq'>$row[5]</td>";
  99.  
  100.  
  101.  
  102. echo "</tr>";
  103.  
  104. }
  105. echo "</table>";
  106. ?>




Hola y gracias por las respuestas.

Supongo que debo validar primero para que la primera vez que cargue la página haga la consulta, pero aunque coloque la validación al principio, me genera un warning:

Warning: mssql_query(): message: Incorrect syntax near the keyword ‘order’. (severity 15) in /var/www/html/intraser/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 89

Y al hacer clic en consultar sigue redireccionando a un 404. Efectivamente necesito que el resultado de la consulta la cargue en la misma página en una tabla HTML para poder exportar a un XLS luego.

Gracias nuevamente por colaborar.

Mod: No hacer doble post.


« Última modificación: 21 Febrero 2017, 18:35 pm por #!drvy » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Envío de valores a variable PHP en Wordpress
« Respuesta #1 en: 21 Febrero 2017, 18:45 pm »

Hola,

En un principio, no has validado nada en la linea 1 de tu código dado que en las siguientes sigues utilizando el $_POST que no sabemos si esta vació o no. Una forma fácil de validarlo seria comprobar si existe, y si no existe darle valor 0.

Código
  1. <?php
  2.  
  3. // Comprobar si name esta enviado y si lo esta, ponerlo. Si no, 0 por defecto.
  4. $name = (isset($_POST['name']) ? $_POST['name'] : '0');
  5.  
  6. ?>

En el html (en los option) le das selected constante al valor 0 y eso debería ir como los demás (con un if). Además, si quieres que el formulario se ejecute en la misma pagina, te basta con dejar el action= vació.

Código
  1. <div>
  2.    <form method="post" action="">
  3.       <div>
  4.            Seleccione periodo:
  5.            <select name="name">
  6.                <option value="0" <?php if($name=='0') echo 'selected'; ?> >Haga clic aquí</option>
  7.                <option value="1" <?php if($name=='1') echo 'selected'; ?> >ENERO</option>
  8.                <option value="2" <?php if($name=='2') echo 'selected'; ?> >FEBRERO</option>
  9.                <option value="3" <?php if($name=='3') echo 'selected'; ?> >MARZO</option>
  10.                <option value="4" <?php if($name=='4') echo 'selected'; ?> >ABRIL</option>
  11.                <option value="5" <?php if($name=='5') echo 'selected'; ?> >MAYO</option>
  12.                <option value="6" <?php if($name=='6') echo 'selected'; ?> >JUNIO</option>
  13.                <option value="7" <?php if($name=='7') echo 'selected'; ?> >JULIO</option>
  14.                <option value="8" <?php if($name=='8') echo 'selected'; ?> >AGOSTO</option>
  15.                <option value="9" <?php if($name=='9') echo 'selected'; ?> >SEPTIEMBRE</option>
  16.                <option value="10" <?php if($name=='10') echo 'selected'; ?> >OCTUBRE</option>
  17.                <option value="11" <?php if($name=='11') echo 'selected'; ?> >NOVIEMBRE</option>
  18.                <option value="12" <?php if($name=='12') echo 'selected'; ?> >DICIEMBRE</option>
  19.            </select>
  20.            <input type="submit" name="submit" value="Consultar">
  21.            <input type="button" onclick=" generateexcel('testTable') " value="Exportar a Excel">
  22.        </div>
  23.     </form>
  24. </div>

Lo mismo para el resto del codigo. Deberias realmente validar que $name NO esta vacio antes de ejecutar la query.

Código
  1. <?php
  2.  
  3. echo "<table class='peq' id='testTable'>",
  4.  "<tr>",
  5.  "<th class='peq'>Codigo</th>",
  6.  "<th class='peq'>Apellidos</th>",
  7.  "<th class='peq'>Nombres</th>",
  8.  "<th class='peq'>Fecha_nacimiento</th>",
  9.  "<th class='peq'>Direccion_domicilio</th>",
  10.  "<th class='peq'>Ciudad</th>",
  11.  "</tr>";
  12.  
  13. // Comprobar si el nombre ha sido enviado // Vacio o 0.
  14. if(!empty($name)) {
  15.  
  16.  // con (int) nos aseguramos de coger solo integros.
  17.  $name = (int) $name;
  18.  
  19.  ini_set('mssql.charset', 'UTF-8');
  20.  $msconnect=mssql_connect("ECOSOL","logfuncionario","F3s3r2017_");
  21.  $msdb=mssql_select_db("solido",$msconnect);
  22.  
  23.  $msquery = "Select
  24.    asociados.codigo,
  25.    asociados.nombre,
  26.    asociados.apellido,
  27.    (CONVERT (char(10),asociados.fecha_nacimiento, 103)) as fecha_nacimiento,
  28.    asociados.direccion,
  29.    asociados.ciudad
  30.    from (
  31.            SELECT
  32.              CAST(CAST(sys_maenit.CODIGOTER AS float(53)) AS decimal(10, 0))as codigo,
  33.              sys_maenit.APELLIDO AS apellido,
  34.              sys_maenit.NOMBRE AS nombre,
  35.              sys_maenit.DIRECCION AS direccion,
  36.              sys_ciudad57.NOMBRE_CIUDAD AS ciudad,
  37.              sys_maenit.FECNACEM as fecha_nacimiento,
  38.              sys_maenit.empresa as empresa
  39.           FROM (solido.dbo.sys_maenit
  40.              CROSS JOIN solido.dbo.sys_ciudad57)
  41.           WHERE (
  42.              (sys_maenit.ESTADO = 'A') AND
  43.              (sys_maenit.CLASE = '5') AND
  44.              (sys_maenit.DPTO_CIUDAD = sys_ciudad57.CIUDAD))
  45.            ) as asociados
  46.    where asociados.empresa != '0099'
  47.    and month(asociados.fecha_nacimiento)=".$name." order by day(asociados.fecha_nacimiento);";
  48.  
  49.  $msresults= mssql_query($msquery);
  50.  while ($row = mssql_fetch_array($msresults)){
  51.  
  52.    echo "<tr>",
  53.      "<td class='peq'>$row[0]</td>",
  54.      "<td class='peq'>$row[1]</td>",
  55.      "<td class='peq'>$row[2]</td>",
  56.      "<td class='peq'>$row[3]</td>",
  57.      "<td class='peq'>$row[4]</td>",
  58.      "<td class='peq'>$row[5]</td>",
  59.      "</tr>";
  60.  }
  61.  
  62. } else {
  63.  echo '<tr><td>No has selecionado ningun mes!</td></tr>';
  64. }
  65.  
  66. echo "</table>";
  67. ?>



El error que te tira el mssql es porque tienes un error de sintaxis cerca del order by. Yo la verdad no tengo ni idea de mssql así que a ver si viene algún compañero y te ayuda.

Citar
Hola y gracias por las respuestas.

No esperes muchas respuestas en apenas 2 horas. Esto es un foro, no un chat y la gente no se conecta 24/7. También mencionarte que existe el botón modificar, que el doble post esta prohibido a no ser que el tema haya pasado a segunda pagina y que los temas sobre PHP van al subforo de PHP.

Estas normas que acabo de comentar las tienes explicadas en el post con chincheta en este mismo subforo.

[Obligatorio] Normas del subforo de Desarrollo Web.
https://foro.elhacker.net/desarrollo_web/obligatorio_normas_del_subforo_de_desarrollo_web_13102015-t407889.0.html

Saludos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
VB y HTML envio de valores
Programación Visual Basic
olve 2 1,772 Último mensaje 13 Agosto 2010, 01:36 am
por olve
[batch] comparar una variable con varios valores « 1 2 »
Scripting
moikano→@ 13 17,244 Último mensaje 22 Diciembre 2010, 19:25 pm
por moikano→@
Adicionar valores a una variable con ollyscript
Ingeniería Inversa
.:UND3R:. 4 3,247 Último mensaje 21 Octubre 2011, 04:58 am
por Иōҳ
copiar ciertos valores de una variable en otra variable en lenguaje C.
Programación C/C++
fafafa01 9 7,249 Último mensaje 19 Abril 2016, 18:32 pm
por geeke
¿Imitar péndulo en valores de una variable?
Programación General
Tachikomaia 8 4,455 Último mensaje 21 Abril 2020, 17:39 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines