Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (javascript) [Seleccionar]

    function accionpab(){
    $.ajax({
      url: 'control/config/setting.php',
      type: 'POST',
      dataType: 'html',
      data: { ipa: "1"},
      success:function(rst){
           alert(rst);
      }
  })
}

Código (php) [Seleccionar]

if(isset($_REQUEST["ipa"])){
  if($_REQUEST["ipa"] == 1 ){
     echo ipact();
     exit();
  }else{
     echo "ERROR";
     
     exit();
  }
}
Título: Re: ¿Como llamar una funcion de php con ajax?
Publicado por: engel lex en 2 Septiembre 2017, 01:36 AM
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 (php) [Seleccionar]

function ipact(){
     if($_SESSION['ip_alter'] == 1){
         $sql1 = "UPDATE usuarios SET ip_alter='0' WHERE usuario='$USER'";
        $link->query($sql1);
        $_SESSION['ip_alter'] == 0;
        echo "<script>location.href ='http://www..com/.php';</script>";
     }else{
         $sql2 = "UPDATE usuarios SET ip_alter='1' WHERE usuario='$USER'";
        $link->query($sql2);
            $_SESSION['ip_alter'] == 1;
                echo "<script>location.href ='http://www..com/.php';</script>";
     }
     
    }
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....

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 (php) [Seleccionar]

<?php
require("conex.php");
session_start();
if(
$_SESSION['id']){
    
$USER $_SESSION['usuario'];
    
    
    if(isset(
$_REQUEST["ipa"])){
  if(
$_REQUEST["ipa"] == ){
       function 
ipact(){ 
     if(
$_SESSION['ip_alter'] == 1){
         
$sql1 "UPDATE usuarios SET ip_alter='0' WHERE usuario='$USER'";
       
 $link->query($sql1);
       
 $_SESSION['ip_alter'] == 0;
       
 echo "<script>location.href ='http://www..com/.php';</script>";
     }else{
         
$sql2 "UPDATE usuarios SET ip_alter='1' WHERE usuario='$USER'";
       
 $link->query($sql2);
       
      $_SESSION['ip_alter'] == 1;
       
          echo "<script>location.href ='http://www..com/.php';</script>";
     }
     return;
    }
     exit();
  }else{
     echo 
"Otro campo de IPA";
     
     exit();
  }
 }
   
    
    
}


?>

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

$_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

$_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.

Cita de: 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

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 (php) [Seleccionar]
<?php
require("conex.php");
session_start();

function 
ipact($user$link){

    
// Si SESSION.. es igual a 1, entonces ip_alter = 0 y viceversa.
    
$ip_alter = ($_SESSION['ip_alter'] == 1) ? 1;
    
$query "UPDATE usuarios SET ip_alter='$ip_alter' WHERE usuario='$user'";
    
$link->query($query);
    
$_SESSION['ip_alter'] = $ip_alter;

    return 
$ip_alter;
}


if(
$_SESSION['id']){
    
$USER $_SESSION['usuario'];

    if(isset(
$_REQUEST["ipa"])){
        if(
$_REQUEST["ipa"] == ){
            
ipact($USER$link);
            echo 
"<script>location.href ='http://www..com/.php';</script>";
            exit;
        } else {
            echo 
"Otro campo de IPA";
            exit;
        }
    }
}


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.  ;-)