Foros del Web » Programando para Internet » PHP »

error Function name must be a string

Estas en el tema de error Function name must be a string en el foro de PHP en Foros del Web. Me crea error en la linea de anteriror del echo if ($x == $Abec2($y)) gracias de antemano. Código PHP: <?     $pass  =  "pepu" ;         ...
  #1 (permalink)  
Antiguo 18/01/2008, 01:54
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 18 años, 9 meses
Puntos: 0
error Function name must be a string

Me crea error en la linea de anteriror del echo if ($x == $Abec2($y)) gracias de antemano.

Código PHP:
<?    
$pass 
= "pepu";
       
$Abec2 = array('a' , 'A' , 'B' , 'b' , 'C' , 'c' , 'D' , 'd' , 'E' , 'e' , 'F' , 'f' , 'G' , 'g' , 'H' , 'h' , 'i' , 'I' , 'J' , 'j' , 'K' , 'k', 'L' , 'l' , 'M' , 'm' , 'n' , 'N' , 'o' , 'O' , 'P' , 'p', 'q' , 'Q' , 'R' , 'r' , 's' , 'S' , 'T', 't' , 'U', 'u' , 'V' , 'v' , 'W' , 'w' , 'x' , 'X' , 'Y', 'y' , 'Z' , 'z' , '0' , '1', '2', '3', '4', '5', '6', '7', '8', '9', '-' ); 
         
//67 caracteres
         
$x;
         
$y;
         
$pos;
         
$sw;
         
$resultado;
         
$passdencri;
         
$longitud = strlen($pass);
        
        for(
$x=0; $x<=$longitud; $x++){

            
$y = 0;
            
$sw = 0;
            echo 
"$y";
            echo 
"$sw";
            while (
$y <=67 || $sw = 0)
            {
//sw=0 = FALSE
            
echo "while";
               if (
$x == $Abec2($y))
               {
                    
$sw = 1; }
                else{
                    
$y = $y + 1;
                    }
            }
// End While
            
            
if ( $sw == 1 )
            {        
            echo 
"if %sw";
            
                
$pos = ($y - 3) % 67;
                
$resultado = $Abec2($pos);
                
$passdencri = $passdencri + $resultado;
                echo 
"pos $pos";
                echo 
" resulta &resultado";
                echo 
"passdencri $passdencri";
                
            }
//End If
        
}//fin for        
     // echo " pass desen: $passdencri";    
    
?>
  #2 (permalink)  
Antiguo 18/01/2008, 02:01
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 22 años
Puntos: 48
Re: error Function name must be a string

$Abec es un array, para indicar el indice es con [], no con ().
  #3 (permalink)  
Antiguo 18/01/2008, 03:40
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: error Function name must be a string

aun poniendolo asi no me lee nada en la variable Abec2
  #4 (permalink)  
Antiguo 18/01/2008, 04:24
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 22 años
Puntos: 48
Re: error Function name must be a string

Pero eso ya es otro problema que no tiene nada que ver con el error de sintaxis.

Pero estas de suerte, lo he visto sin querer:
Código PHP:
while ($y <=67 || $sw = 0) 
Se te olvido un = en la comparacion de $sw, con lo que en vez de una comparacion estas haciendo una asignacion. Para evitar este error yo lo que hago es poner la constante primero en la comparacion:
Código PHP:
while ($y <=67 || 0 == $sw) 
En caso de olvidarseme un = el propio PHP me mostraria un error de "no se puede asignar un valor a una constante".

Otro fallo, pero este es de la logica de la solucion, es que en ese
Código PHP:
if ($x == $Abec2[$y]) 
estas comparando $x que es un numero entre 0 y $longitud con los elementos del array $Abec2, que son caracteres. Quizas no hace lo que tu esperas que haga http://es2.php.net/manual/es/languag...ing.conversion
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 19:56.