Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Traducción de web de ASP3.0 a PHP

Estas en el tema de Traducción de web de ASP3.0 a PHP en el foro de PHP en Foros del Web. Hola!! Estoy traduciendo una Web de asp clásico a PHP y me encuentro con este problema al llamar funciones. Tengo esta función: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 23/11/2015, 03:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Traducción de web de ASP3.0 a PHP

Hola!!

Estoy traduciendo una Web de asp clásico a PHP y me encuentro con este problema al llamar funciones.

Tengo esta función:

Código PHP:
Ver original
  1. <?php
  2. //Devuelve el valor del campo solicitado. Falso si no encuentra ningún registro.
  3. //
  4. Function ComprobarLogico($nombre_tabla, $nombre_campo, $clausula_where)
  5. {  
  6.  
  7.     Global $conn;
  8.    
  9.     //Generamos la instrucción sql
  10.     $sql = "Select " . $nombre_campo . " From " . $nombre_tabla;
  11.    
  12.     //Concatenamos el Where si procede
  13.     If ($clausula_where <> ""):
  14.    
  15.         $sql .= " Where " . $clausula_where;
  16.        
  17.     EndIf;
  18.  
  19.     //Si devuelve datos lo devolvemos
  20.     If ($rs = $conn->query($sql))
  21.     {
  22.        
  23.         $fila = $rs->fetch_array(MYSQLI_NUM);
  24.         $respuesta = $fila[0];
  25.    
  26.     }
  27.     //Si no devolvermos false
  28.     Else
  29.     {
  30.    
  31.         $respuesta = false;
  32.        
  33.     }
  34.  
  35.     $rs->free();
  36.  
  37. //Devolvemos respuesta.
  38. Return $respuesta;
  39. }
  40. ?>


Devuelve el valor de un campo de la DB

y tengo esta otra:

Código PHP:
Ver original
  1. <?php
  2. //Devuelve un icono que accede a una url del CMS
  3. Function AccesoCMS($url)
  4. {
  5.  
  6.     $acceso = ComprobarLogico("Sistema", "AccesoCMS", "IdReg=1");
  7.        
  8.     If (($_SESSION["grupo"] == 1 Or $_SESSION["grupo"] == 2) And $acceso = 1)
  9.     {
  10.        
  11.         $respuesta = "<div class='accesocms'><a href='" . $url . "'><i title='Editar' class='fa fa-cog fa-2x fa-spin' ></i></a></div>";
  12.     }
  13.  
  14. //Devolvemos respuesta.
  15. Return $respuesta;
  16. }
  17. ?>

Así como la veis funciona, pero porqué no funciona así:

Código PHP:
Ver original
  1. <?php
  2. //Devuelve un icono que accede a una url del CMS
  3. Function AccesoCMS($url)
  4. {
  5.    
  6.     If (($_SESSION["grupo"] == 1 Or $_SESSION["grupo"] == 2) And ComprobarLogico("Sistema", "AccesoCMS", "IdReg=1") = 1)
  7.     {
  8.        
  9.         $respuesta = "<div class='accesocms'><a href='" . $url . "'><i title='Editar' class='fa fa-cog fa-2x fa-spin' ></i></a></div>";
  10.     }
  11.  
  12. //Devolvemos respuesta.
  13. Return $respuesta;
  14. }
  15. ?>

¿por qué no puedo comparar directamente con la función?
Este es el error que tira:

Fatal error: Can't use function return value in write context

  #2 (permalink)  
Antiguo 23/11/2015, 07:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Traducción de web de ASP3.0 a PHP

Estás confundiendo asignación con comparación, ese es tu error.

Y de hecho en ambos código está mal aunque "funciona" porque una asignación devuelve el valor asignado como valor de retorno:

Código PHP:
Ver original
  1. // MAL
  2. if ($acceso = 1)
  3. if (foo() = 1)
  4.  
  5. // BIEN
  6. if ($accesso == 1)
  7. if (bar() == 1)

En ambos lugares donde intentas comparar "= 1" es donde cometes la falla, PHP no permite comparar con un sólo "=" como en ASP (me imagino).
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/11/2015, 02:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Respuesta: Traducción de web de ASP3.0 a PHP

ostras!! que fallo más idiota, si lo puse bien en las dos primeras!!!

me queda tarea!! muchas gracias!!!

Etiquetas: asp, clásico
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:31.