コード例 #1
0
 /**
  * La méthode très simple qui envoie à la vue d'affichage
  * d'un film toutes les données correspondantes au film.
  * @param $id L'id du film à afficher
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function show($id)
 {
     /*Le tout début est une petite astuce qui permet d'obtenir l'url réel d'une vidéo.
       En effet, dans la base de données, les url des vidéos sont des liens de redirection vers un lien
       (qui j'imagine doit être temporaire) réel de la vidéo
       Si l'on donne l'url de redirection au lecteur vidéo, tout marche bien SAUF si l'on souhaite avancer plus loin dans
       la vidéo (et uniquement sur les vidéos de plus de 10 min environ).
       L'astuce consiste donc à faire une requête via curl sur le lien pour obtenir le vrai url de la vidéo (qui
       lui marche sans soucis) ! */
     $curl = new cURL();
     $movie = Movies::find($id);
     $movie->ogv = $curl->get($movie->ogv)->getHeader('location');
     $topics = $movie->topics;
     // Le if qui suit est une personnalisation des recommandations pour les utilisateurs connectés
     if (Auth::guest()) {
         // SI l'utilisateur est un guest (non enregistré) on lui suggére des films du même auteur aléatoirement
         $suggestions = Movies::where('creator', 'LIKE', $movie->creator)->where('title', 'not like', $movie->title)->orderByRaw('RAND()')->take(5)->get();
     } else {
         $currentId = Auth::id();
         // On ajoute un à count pour chaque topic du film
         foreach ($topics as $topic) {
             $truc = UsersTopics::firstOrCreate(['user_id' => $currentId, 'topic_id' => $topic->id]);
             $truc->where('topic_id', '=', $topic->id)->increment('count', 1);
         }
         // On renvoie une liste de films qui sont parmis les genres préférés
         $maxTopic = User::find($currentId)->topics()->max('count');
         $suggestions = User::find($currentId)->topics()->where('count', $maxTopic)->first()->movies()->where('title', 'not like', $movie->title)->orderByRaw('RAND()')->take(5)->get();
     }
     return view('movies', compact('movie', 'topics', 'suggestions'));
 }
コード例 #2
0
 public function getOTP(Request $request, $mail)
 {
     if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
         $key = $request->headers->get('pub-key');
         $app = \App\Aplication::where('public_key', $key)->get();
         //return var_dump($app[0]->id);
         if (isset($app[0])) {
             $client = \App\Client::where('email', $mail)->get();
             if (isset($client[0])) {
                 $list = ['libertad', 'patria', 'soberano', 'independencia', 'avanzadora', 'chavez', 'cimarron', 'cacao'];
                 $code = $list[rand(0, count($list) - 1)] . rand(100, 999);
                 /* Solicitar envio de SMS */
                 $curl = new cURL();
                 $params = array('telf' => $client[0]->phone, 'texto' => 'Hemos eviado una clave de acceso temporal para la aplicación: ' . $app[0]->name . ' Su clave temporal OTP es: ' . $code, 'app_name' => 'ssas');
                 $url = $curl->buildUrl('http://desarrollo.ssas.gob.ve/rest/SMS', $params);
                 $curl->get($url);
                 /* Solicitar envio de Correo */
                 $email = $client[0]->email;
                 \Mail::send('otp_mail', ['aplication' => $app[0]->name, 'otp' => $code], function ($message) use($email) {
                     $message->from('*****@*****.**', 'Aplicaciones SIAS');
                     $message->to($email);
                     $message->subject('Clave de Acceso Temporal');
                 });
                 /* Encriptamos el otp con clave privada */
                 $encrypt = crypt($code, $app[0]->private_key);
                 /* Almacenamos OTP */
                 $otp = new Otp();
                 $otp->code = $encrypt;
                 $otp->status = 'D';
                 $otp->clients_id = $client[0]->id;
                 $otp->aplication_id = $app[0]->id;
                 $otp->save();
                 return array('crypt' => $encrypt);
             } else {
                 return response()->json(['error' => 'no autorizado'], 401);
             }
         } else {
             return response()->json(['error' => 'no autorizado'], 401);
         }
     } else {
         return response()->json(['error' => 'no autorizado'], 401);
     }
 }
コード例 #3
0
ファイル: AuthController.php プロジェクト: jacke121/tdbasset
 public function postSendsms(Request $request)
 {
     $mobile = Input::get('mobile');
     if (!preg_match("/1[3458]{1}\\d{9}\$/", $mobile)) {
         // if(!preg_match("/^13\d{9}$|^14\d{9}$|^15\d{9}$|^17\d{9}$|^18\d{9}$/",$mobile)){
         //手机号码格式不对
         return parent::returnJson(1, "手机号码格式不对" . $mobile);
     }
     if ($request->get("type") == "register") {
         $data = DB::select("select * from members where lifestatus=1 and mobile =" . $mobile);
         if (sizeof($data) > 0) {
             return parent::returnJson(1, "手机号已注册");
         }
     } else {
         if ($request->get("type") == "forget") {
             $userInput = $request->get('captcha');
             Log::error('checkcaptcha:session:' . Session::get('milkcaptcha') . "getcode:" . $userInput);
             if (Session::get('milkcaptcha') == $userInput) {
                 //用户输入验证码正确return '您输入验证码正确';
             } else {
                 return parent::returnJson(1, "验证码错误");
             }
         }
     }
     $checkCode = parent::get_code(6, 1);
     Session::put("m" . $mobile, $checkCode);
     $checkCode = Session::get("m" . $mobile);
     Log::error("sendsms:session:" . $checkCode);
     $msg = "尊敬的用户:" . $checkCode . "是您本次的短信验证码,5分钟内有效.";
     // Input::get('msg');
     $curl = new cURL();
     $serverUrl = "http://cf.lmobile.cn/submitdata/Service.asmx/g_Submit";
     $response = $curl->get($serverUrl . "?sname=dlrmcf58&spwd=ZRB2aP8K&scorpid=&sprdid=1012818&sdst=" . $mobile . "&smsg=" . rawurlencode($msg . "【投贷宝】"));
     $xml = simplexml_load_string($response);
     echo json_encode($xml);
     //$xml->State;
     //  <CSubmitState xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
     //   <State>0</State>
     //   <MsgID>1512191953407413801</MsgID>
     //   <MsgState>提交成功</MsgState>
     //   <Reserve>0</Reserve>
     // </CSubmitState>
 }