Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 2 Septiembre 2017, 00:02 am



Título: ¿Como llamar una funcion de php con ajax?
Publicado por: SrTrp en 2 Septiembre 2017, 00:02 am
Bueno cuando llamo la función todo pasa bien solo que no ejecuta mi función
me sale error: Fatal error: Call to undefined function ipact() in /custumber...

Código
  1.    function accionpab(){
  2.    $.ajax({
  3.      url: 'control/config/setting.php',
  4.      type: 'POST',
  5.      dataType: 'html',
  6.      data: { ipa: "1"},
  7.      success:function(rst){
  8.           alert(rst);
  9.      }
  10.  })
  11. }
  12.  
Código
  1. if(isset($_REQUEST["ipa"])){
  2.  if($_REQUEST["ipa"] == 1 ){
  3.     echo ipact();
  4.     exit();
  5.  }else{
  6.     echo "ERROR";
  7.  
  8.     exit();
  9.  }
  10. }
  11.  


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: engel lex en 2 Septiembre 2017, 01:36 am
Código:
Fatal error: Call to undefined function ipact()

Error fatal: Llamado a una funcion no definida

dicha funcion no exíste


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: SrTrp en 2 Septiembre 2017, 03:51 am
Ese es el problema.. dentro de ese mismo php si existe la función..
Código
  1. function ipact(){
  2.     if($_SESSION['ip_alter'] == 1){
  3.         $sql1 = "UPDATE usuarios SET ip_alter='0' WHERE usuario='$USER'";
  4.       $link->query($sql1);
  5.       $_SESSION['ip_alter'] == 0;
  6.       echo "<script>location.href ='http://www..com/.php';</script>";
  7.     }else{
  8.         $sql2 = "UPDATE usuarios SET ip_alter='1' WHERE usuario='$USER'";
  9.       $link->query($sql2);
  10.           $_SESSION['ip_alter'] == 1;
  11.             echo "<script>location.href ='http://www..com/.php';</script>";
  12.     }
  13.  
  14.    }
  15.  


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: engel lex en 2 Septiembre 2017, 04:34 am
donde está declarada la funcion? (cuelga el php completo, si es muy largo, usa pastebin)

por cierto....

Código:
echo ipact();

está mal porque impact no tiene return


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: SrTrp en 2 Septiembre 2017, 16:58 pm
Así lo eh dejado.. ya no me da el error pero no me da resultado ni parece que ejecuta  la función..
Código
  1. <?php
  2. require("conex.php");
  3. if($_SESSION['id']){
  4.    $USER = $_SESSION['usuario'];
  5.  
  6.  
  7.    if(isset($_REQUEST["ipa"])){
  8.  if($_REQUEST["ipa"] == 1 ){
  9.       function ipact(){
  10.     if($_SESSION['ip_alter'] == 1){
  11.         $sql1 = "UPDATE usuarios SET ip_alter='0' WHERE usuario='$USER'";
  12.       $link->query($sql1);
  13.       $_SESSION['ip_alter'] == 0;
  14.       echo "<script>location.href ='http://www..com/.php';</script>";
  15.     }else{
  16.         $sql2 = "UPDATE usuarios SET ip_alter='1' WHERE usuario='$USER'";
  17.       $link->query($sql2);
  18.           $_SESSION['ip_alter'] == 1;
  19.             echo "<script>location.href ='http://www..com/.php';</script>";
  20.     }
  21.     return;
  22.    }
  23.     exit();
  24.  }else{
  25.     echo "Otro campo de IPA";
  26.  
  27.     exit();
  28.  }
  29. }
  30.  
  31.  
  32.  
  33. }
  34.  
  35.  
  36. ?>
  37.  


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: AlbertoBSD en 2 Septiembre 2017, 17:12 pm
NOOO

Código:
 $_SESSION['ip_alter'] == 1;

Eso es una expresion boleana que te devuel true o false, pero asi sin estar dentro de un IF solo es una linea que no hace nada, tiene que ser

Código:
 $_SESSION['ip_alter'] = 1;

Y en el caso de 0 tambien un solo igual


Estas haciendo mucha cosas mal, El resultado que le devueles al Ajax deberia de estar formateado en JSON o algo similar, pero igual es el gusto de cada quien para programar si asi estas comodo procesando los resultados esta bien.

Saludos!


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: engel lex en 2 Septiembre 2017, 17:13 pm
lo que dice AlbertoBSD es cierto, linea 19


igual no veo el archivo de la funcion impact


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: SrTrp en 2 Septiembre 2017, 17:20 pm
Ya eh corregido lo que me ha dicho alberto, sigue igual.

lo que dice AlbertoBSD es cierto, linea 19


igual no veo el archivo de la funcion impact

Cual función impact? no te estarás referiendo a ipact?


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: AlbertoBSD en 2 Septiembre 2017, 17:23 pm
Tambien cambiastes la linea 14?

Saludos!


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: #!drvy en 2 Septiembre 2017, 17:25 pm
La función no tiene ningun sentido. Tampoco la invocas en ningun lado. Como te ha comentado AlbertoBSD, == es un comparador..

A la funcion, no la pasas la variable USER y tampoco el $link para el handler a la base de datos.. Además repites mucho codigo de forma innecesaria.

Código
  1. <?php
  2. require("conex.php");
  3.  
  4. function ipact($user, $link){
  5.  
  6.    // Si SESSION.. es igual a 1, entonces ip_alter = 0 y viceversa.
  7.    $ip_alter = ($_SESSION['ip_alter'] == 1) ? 0 : 1;
  8.    $query = "UPDATE usuarios SET ip_alter='$ip_alter' WHERE usuario='$user'";
  9.    $link->query($query);
  10.    $_SESSION['ip_alter'] = $ip_alter;
  11.  
  12.    return $ip_alter;
  13. }
  14.  
  15.  
  16. if($_SESSION['id']){
  17.    $USER = $_SESSION['usuario'];
  18.  
  19.    if(isset($_REQUEST["ipa"])){
  20.        if($_REQUEST["ipa"] == 1 ){
  21.            ipact($USER, $link);
  22.            echo "<script>location.href ='http://www..com/.php';</script>";
  23.            exit;
  24.        } else {
  25.            echo "Otro campo de IPA";
  26.            exit;
  27.        }
  28.    }
  29. }

Saludos


Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: SrTrp en 2 Septiembre 2017, 17:57 pm
Gracias #!drvy  ;-)  por tu observación tratare de simplificar lo mas que pueda en cuanto programe.  ;-)