Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: pedraxito en 25 Junio 2012, 19:48 pm



Título: Error al conectar mssql 2008 con php en server debian.
Publicado por: pedraxito en 25 Junio 2012, 19:48 pm
Hola, que tal!

Estoy haciendo una aplicación web en php 5 la cual se conecta a una DB de mssql 2008, es una aplicación sencilla que solo la uso para hacer consultas a dicha DB. Esta aplicación la estoy desarrollando en mi laptop con el XAMPP instalado, y en el servidor de producción tengo: debian 6, freetds para conectarme a sql, apache 2 y php 5.

Mi problema es el siguiente: Localmente (en donde estoy desarrollando el app) todo me funciona, pero cuando subo al servidor la aplicación solo un script me marca error (esta página funciona correctamente localmente).

La página que me marca error se llama calificaciones.php y usa una clase que se llama Alumno
el codigo que uso para llamar a esa clase es el siguiente (al inicio del script calificaciones.php creo el objeto para esta clase):
Código
  1. <div class="wrapper tabs1">
  2. <article class="grid_3 alpha">
  3. <?php
  4. $alumno->htmlObtenerUltimoPeriodo($_SESSION['PERIODO']);
  5. ?>
  6. </article>
  7. <article class="grid_9 pading">
  8. <div id="calif" class="inside1">
  9. <?php
  10. $alumno->htmlObtenerCalificaciones($_SESSION['NCONTROL'], $_SESSION['PERIODO']);
  11. ?>
  12. </div>
  13. </article>
  14. </div>
  15.  

El codigo que esta dentro de estos dos metodos de la clase es el siguiente:
Código
  1. // Metodo que devuelve código html con el ultimo periodo cursado.
  2. public function htmlObtenerUltimoPeriodo($periodo){
  3. $query  = mssql_query("EXEC spPeriodo '" . $periodo . "'");
  4. echo "EXEC spPeriodo '" . $periodo . "'";
  5. echo "<ul class='list2'>";
  6. while ($row = mssql_fetch_array($query)){
  7. echo "<li class='current1' onclick='CngClass(this)'>";
  8. echo "<a href='" . $row['PERIODO'] ."'> ". $row['DESCRIPCION'] . "</a>";
  9. echo "</li>";
  10. }
  11. echo "</ul>";
  12. }
  13.  
  14. // Metodo que devuelve código html con las calificaciones del ultimo periodo cursado
  15. public function htmlObtenerCalificaciones($ncontrol, $periodo){
  16. $query  = mssql_query("EXEC spPeriodo '" . $periodo . "'");
  17. while ($row = mssql_fetch_array($query)){
  18. echo "<div id='" . $row['PERIODO'] ."' class='tab-content1'>";
  19. if(trim($row['PERIODO']) == trim($_SESSION['PERIODO'])){
  20. $sp = "EXEC zKIOSCO 'CALIFICACIONES', '". $ncontrol . "', '". $periodo . "'";
  21. $result = mssql_query($sp);
  22. echo "<table>";
  23. echo "<tr><th>Materia</th><th>1er</th><th>2do</th><th>3er</th>";
  24. echo "<th>O</th><th>F</th><th>E</th><th>F2</th>";
  25. while ($rowCalif = mssql_fetch_array($result)){
  26. echo "<tr>";
  27. echo "<td>" . $rowCalif['MATERIA'] . "</td>";
  28. echo "<td>" . $rowCalif['1ER'] . "</td>";
  29. echo "<td>" . $rowCalif['2DO'] . "</td>";
  30. echo "<td>" . $rowCalif['3ER'] . "</td>";
  31. echo "<td>" . $rowCalif['ORDINARIO'] . "</td>";
  32. echo "<td>" . $rowCalif['FINAL'] . "</td>";
  33. echo "<td>" . $rowCalif['EXTRA'] . "</td>";
  34. echo "<td>" . $rowCalif['FINAL2'] . "</td>";
  35. echo "</tr>";
  36. }
  37. echo "</table>";
  38. }
  39. echo "</div>";
  40. }
  41. }
  42.  

Si al script de calificaciones.php comento la llamada de los metodos de la clase alumno, entonces no me marca error. (repito lo anterior, localmente esto si me funciona)

Espero haber sido claro con mi explicación, saludos! y de antemano gracias


Título: Re: Error al conectar mssql 2008 con php en server debian.
Publicado por: l337* en 26 Junio 2012, 18:01 pm
que error te sale ?????
cual es el output de : var_dump($alumno->htmlObtenerUltimoPeriodo($_SESSION['PERIODO'])) ; 


Título: Re: Error al conectar mssql 2008 con php en server debian.
Publicado por: pedraxito en 26 Junio 2012, 21:59 pm
Si hago un var_dump en el servidor me sigue marcando el mismo error, el error que me marca es "La conexión ha sido reiniciada", ni si quiera me carga la pagina.

Localmente al hacer el var_dump me devuelve NULL.


Título: Re: Error al conectar mssql 2008 con php en server debian.
Publicado por: pedraxito en 26 Junio 2012, 22:10 pm
hice algunos cambios en mis metodos, ya el var_dump me devuelve string(114) y string(925) pero al subirlo al server me marca el mismo error.

Código
  1.  
  2. // Metodo que devuelve código html con el ultimo periodo cursado.
  3. public function htmlObtenerUltimoPeriodo($periodo){
  4. $query  = mssql_query("EXEC spPeriodo '" . $periodo . "'");
  5. $html = "<ul class='list2'>";
  6. if(!mssql_num_rows($query)){
  7. $html = $html . "No se encontraron registros";
  8. }else{
  9. while ($row = mssql_fetch_array($query)){
  10. $html = $html . "<li class='current1' onclick='CngClass(this)'>";
  11. $html = $html . "<a href='" . $row['PERIODO'] ."'> ". $row['DESCRIPCION'] . "</a>";
  12. $html = $html . "</li>";
  13. }
  14. }
  15. $html = $html . "</ul>";
  16. return $html;
  17. }
  18.  
  19. // Metodo que devuelve código html con las calificaciones del ultimo periodo cursado
  20. public function htmlObtenerCalificaciones($NCONTROL, $PERIODO){
  21. $query  = mssql_query("EXEC spPeriodo '" . $PERIODO . "'");
  22. while ($row = mssql_fetch_array($query)){
  23. $html =  "<div id='" . $row['PERIODO'] ."' class='tab-content1'>";
  24. if(trim($row['PERIODO']) == trim($_SESSION['PERIODO'])){
  25. $sp = "EXEC zKIOSCO 'CALIFICACIONES', '". $NCONTROL . "', '". $PERIODO . "'";
  26. $result = mssql_query($sp);
  27. $html = $html . "<table>";
  28. $html = $html . "<tr><th>Materia</th><th>1er</th><th>2do</th><th>3er</th>";
  29. $html = $html . "<th>O</th><th>F</th><th>E</th><th>F2</th>";
  30. while ($rowCalif = mssql_fetch_array($result)){
  31. $html = $html . "<tr>";
  32. $html = $html . "<td>" . $rowCalif['MATERIA'] . "</td>";
  33. $html = $html . "<td>" . $rowCalif['1ER'] . "</td>";
  34. $html = $html . "<td>" . $rowCalif['2DO'] . "</td>";
  35. $html = $html . "<td>" . $rowCalif['3ER'] . "</td>";
  36. $html = $html . "<td>" . $rowCalif['ORDINARIO'] . "</td>";
  37. $html = $html . "<td>" . $rowCalif['FINAL'] . "</td>";
  38. $html = $html . "<td>" . $rowCalif['EXTRA'] . "</td>";
  39. $html = $html . "<td>" . $rowCalif['FINAL2'] . "</td>";
  40. $html = $html . "</tr>";
  41. }
  42. $html = $html . "</table>";
  43. }
  44. $html = $html . "</div>";
  45. }
  46. return $html;
  47. }
  48.