Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Razzari

#1
Cita de: #!drvy en 28 Agosto 2017, 03:44 AM
La clase Exception acepta un código de error que no tiene nada que ver con el STATUS HTTP. Es decir, el hecho de que pongas 401 como segundo parámetro, no quiere decir que PHP tiene que tirar un header 401. De hecho, las excepciones no fueron pensadas para eso ni mucho menos. Fueron pensadas para que se pudiesen capturar y analizar, no que redirigan porque si.

Entonces lo que tendrias que hacer, es tirar una excepción con ese codigo (o cualquier otro..), y luego usar try/catch a la hora de ejecutar el método.

Código (php,20,21,22,23,24,25,26,27,28,29,30,31) [Seleccionar]
class SeguridadAuth {

   public function login($credenciales){
       if($credenciales['password'] !== '1234'){
           throw new Exception('Usuario no autorizado', 401);
       }

       return true;
   }



   public function realizarLogin(){

       $credenciales = array(
           'user' => 'Juan',
           'password' => '12345'
       );

       try {

           $this->login($credenciales);

       } catch(Exception $e){

           if($e->getCode() == 401){
               http_response_code(401);
               exit;
           }

       }

       return true;
   }



http://php.net/manual/es/language.exceptions.php
http://php.net/manual/es/class.exception.php
http://php.net/manual/es/function.http-response-code.php

Saludos

Hola ! estuve leyendo bastante la documentación que pasaste !
Ya lo estoy poniendo en practica ! Genial !
del lado del front tengo mi servicio que según el tipo de error que reciba es el mensaje que muestra !
Saludos y como siempre gracias !!
#2
Hola como estan,
Mi problema es el siguiente, desde php estoy throweando la siguiente exception

https://fotos.subefotos.com/24f1afa503c047007f78ce82c0d182bbo.png


y recivo esto como respuesta en mi front end

https://fotos.subefotos.com/5fdff315dd820d1d4674fdf4206de0dbo.png

El problema es que llega con codigo 200, es decir 'ok' pero en mi throw yo esoty pasando como parametro el codigo 401 que es Unauthorized, a demas me en mi log aparece el nombre del archivo que dio error y la el numero de linea,

Alguien sabe en que estoy fallando ??  :o

Desde ya gracias y saludos !  ;-)


#3
[quote author=nsigned link=topic=473521.msg2137945#msg2137945 date=1503674012]
Hola, el modulo $http de angular hace peticiones de tipo application/json, y PHP solo rellena la variable global $_POST cuando la peticion llega en formato application/x-www-form-urlencoded o multipart/form-data.

La solucion mas facil es indicarle a PHP que en lugar de leer desde $_POST tome los valores directamente en formato raw desde el stream php://input

Código (php) [Seleccionar]

<?php
//Leemos el stream raw y lo guardamos en la variable $postdata
$postdata file_get_contents("php://input");
//Como dicha variable esta en formato json debemos mapearla a un Array usando json_decode
$request json_decode($postdata);
//Imprimo el array completo
echo print_r($requestfalse);
?>




Espero que te sirva de ayuda. yo me canse de renegar con esto cuando usaba Angular 1.6 + CodeIgniter 3
[/quote]


Funciono a la perfección, estuve leyendo un poco de documentación de esta tema y es la manera correcta de hacerlo !!!
Espero que le sea de ayuda a alguien mas

Gracias y saludos !!!!!!    ;D ;D ;D ;D ;D ;D ;D
#4

$http({
                method: 'POST',
                url: 'http://localhost:8080/api.rest.security/',
                data:{
                    'name' : "ejem",
                }
            }).then(function successCallback(response) {
                //token=response.data;
                console.log(response.data);
                //getData();
            }, function errorCallback(response) {

            });
        }



Estoy usando data: ahora y tampoco, voy a seguir sudando con semejante tonteria y  cunado lo resuelva subo el error y/o   solucion
#5
Pero bueno, era para ver si estaba obviando algo y otros ojos veian lo que yo no:

Consola:

https://fotos.subefotos.com/b3b594cbf82f373fbffc6432ee5f3bd3o.png

javascript:

https://fotos.subefotos.com/8c089838229b372cecb52a9fb8202df0o.png

PHP:


$name = $_POST['name'];
echo $name;



Voy a seguir viendo y revisando  :-\
#6
ya cambie las miniaturas, si me di cuenta cuando subi las fotos que estaba usando GET corri a cambiarlo, pero sigue logueandome el mismo error  :o


https://fotos.subefotos.com/27f4ae512dd397e45f92b0d60a0e7cf3o.png

Voy a seguir revisando, pero siempre accedí a mis peticiones por post en php con $_POST[''],.esta vez no se que sucede


· Las imagenes no deben ser mayores a 800x600
>aquí las reglas del foro
-Engel Lex
#7
Hola foro, basicamente el titulo describe mi problema, aca va el codigo:



ese es mi javascript, esoty utilizando angularJs como framework en el frontend, como ven en la consola, logueo lo que me devuelve y dice :
"<b>Notice</b>:  Undefined index: name in <b>C:\xampp\htdocs\api.rest.security\animalesAPI.php</b> on line <b>26</b><br />"

y este es mi codigo php:




Saludos, la verdad estoy desorientado
#8
Hola magodiesan! mira yo hace bastante estoy trabajando con angular JS que seria la versión uno, actualmente en la empresa donde trabajo estamos por empezar el proceso de migración a angular 4.
Pero angular JS siempre me gusto mas que el resto de las nuevas versiones.
Pero como bien dice  engel lex , si estas empezando es recomendable empezar con las versiones nuevas ! siempre vas a tener mas soporte y tu codigo va a ser mas increible que si usas las versiones viejas.

te paso el codigo que a mi me esta funcionando para resolver tu problema.
solo hice un par de cambios. el codigo esta comentado por las dudas no entiendas algo.

HTML:

<!DOCTYPE html5>
<html lang="es-ES" ng-app="my">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="js/controller.js"></script>
</head>
<body ng-controller="controlador">
<input type="text" placeholder="usuario" ng-model="comentUsuario.username"><br>
<input type="text" placeholder="comentario" ng-model="comentUsuario.comentario"><br>
<button ng-click="agregarComentario();">Agregar</button>

<div ng-repeat="comen in lista">
 {{comen.username}}  -  {{comen.comentario}}
</div>

</body>
</html>



JS:


var app = angular.module('my', []);

app.controller('controlador', controladorFunction); //referencia al la funcion "controladorFunction"

function controladorFunction($scope){
  $scope.lista = []; ///array con comentarios para mostrar en lista

   $scope.comentUsuario = []; /// objeto que va a tener el valor de los inputs para su posterior inserción en " $scope.comentariosLista"

  $scope.agregarComentario = function(){ //función agregar comentario
     $scope.lista.push({
         username: $scope.comentUsuario.username,    // se insertan los valores en la lista
         comentario: $scope.comentUsuario.comentario //
     });

     //como los input estan "enlazados a un ng-model procedemos a vaciar los input después de la inserción"
     $scope.comentUsuario.username="";
     $scope.comentUsuario.comentario="";
  };

};



Cualquier cosa me preguntas !!
Saludos desde Argentina !!




#9
Hola tengo un repositorio publico en github, actualmente estoy usando tortoiseSVN para conectarme desde el desktop.
Mi consulta es de que manera puedo hacer que solo yo pueda dar commit en mi repositorio.
No tengo problema con que el repositorio sea publico solo que me gustaria solo yo poder dar commits
Saludos y desde ya gracias !
#10
Cita de: dato000 en  4 Mayo 2017, 23:10 PM
Pues lo que puedes hacer es crear un formulario aparte en html que use php, pero digamos tendrias que montar el server para que tu bd entienda php a la par de .net pero yo digo, porque carajos volver a php?? asp.net es infinitamente superior, estas empezando, por lo que puede resultarte un poco complicado, pero luego te enamoraras de .net, y ni hablar cuando llegues a asp.net mvc.

De todas maneras, cuando tu corres el proyecto, la página se renderiza a html con atributos html5 que se generan automaticamente para interpretar el aspx, no entiendo porque armas lio por eso, asp permite un monton de controles adicionales para renderizar, manipular, actualizar/editar, eliminar tus datos.

Aunque si digamos, nada de eso te gusta, puedes crear un formulario plano de html y le vas metiendo el form de acuerdo a tus gustos, pero te recomiendo que no mezcles php con .net, seria nefasto. En su lugar, aprender asp.net, ya veras la capacidad que tiene, o si digamos no quedas conforme, aprende de una mvc, te garantizo que después de eso php te parecera el peor adefecio de la web.
Si soy consciente de ello, yo lo que me pregunto es lo siguiente, yo únicio un nuevo proyecto web > nuevo web form y me crea un archivo .aspx donde escribo mi html y otro archivó .aspx.vb, que está como ligado al anterior, en el cual escribo la logica , pero en el form de mi aspx tengo como action runat server, lo que me gustaría hacer es tener un archivo con extensión .html y en el action llamar a un archivo separado .aspx
Mi problema es que visual estudio solo me ofrece cuándo pongo agregar nuevo elemento al proyecto archivos con extensiones .vb y archivos con otros tipos de extensiones no relevantes para esta situación. No se si me estoy  dando a entender?