Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ช่วยอธิบายโค้ด_php_หน่อยครับ_slim_framework


[PHP] ช่วยอธิบายโค้ด_php_หน่อยครับ_slim_framework

 
Topic : 128615



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์



config.php
01.error_reporting(0);
02.session_start();
03. 
04./* DATABASE CONFIGURATION */
05.define('DB_SERVER', 'localhost');
06.define('DB_USERNAME', 'root');
07.define('DB_PASSWORD', '');
08.define('DB_DATABASE', 'test');
09.define("BASE_URL", "http://localhost/test/");
10.define("SITE_KEY", 'yourSecretKey');
11. 
12. 
13.function getDB()
14.{
15.    $dbhost=DB_SERVER;
16.    $dbuser=DB_USERNAME;
17.    $dbpass=DB_PASSWORD;
18.    $dbname=DB_DATABASE;
19.    $dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
20.    $dbConnection->exec("set names utf8");
21.    $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
22.    return $dbConnection;
23.}
24./* DATABASE CONFIGURATION END */
25. 
26./* API key encryption */
27.function apiToken($session_uid)
28.{
29.$key=md5(SITE_KEY.$session_uid);
30.return hash('sha256', $key);
31.}


index.php
001.<?php
002. 
003.require 'config.php';
004.require 'Slim/Slim.php';
005. 
006.\Slim\Slim::registerAutoloader();
007.$app = new \Slim\Slim();
008. 
009.$app->post('/login','login'); /* User login */
010.$app->post('/signup','signup'); /* User Signup  */
011.$app->post('/feed','feed'); /* User Feeds  */
012.$app->post('/feedUpdate','feedUpdate'); /* User Feeds  */
013.$app->post('/feedDelete','feedDelete'); /* User Feeds  */
014.//$app->post('/userDetails','userDetails'); /* User Details */
015./*$app -> notFound(function() use ($app){
016.    $app->render('404.html');
017.});*/
018. 
019.$app->run();
020. 
021./************************* USER LOGIN *************************************/
022./* ### User login ### */
023.function login() {
024.     
025.    $request = \Slim\Slim::getInstance()->request();
026.    $data = json_decode($request->getBody());
027.     
028.    try {
029.         
030.        $db = getDB();
031.        $userData ='';
032.        $sql = "SELECT user_id, name, email, username FROM users WHERE (username=:username or email=:username) and password=:password ";
033.        $stmt = $db->prepare($sql);
034.        $stmt->bindParam("username", $data->username, PDO::PARAM_STR);
035.        $password=hash('sha256',$data->password);
036.        $stmt->bindParam("password", $password, PDO::PARAM_STR);
037.        $stmt->execute();
038.        $mainCount=$stmt->rowCount();
039.        $userData = $stmt->fetch(PDO::FETCH_OBJ);
040.         
041.        if(!empty($userData))
042.        {
043.            $user_id=$userData->user_id;
044.            $userData->token = apiToken($user_id);
045.        }
046.         
047.        $db = null;
048.         if($userData){
049.               $userData = json_encode($userData);
050.                echo '{"userData": ' .$userData . '}';
051.            } else {
052.               echo '{"error":{"text":"Bad request wrong username and password"}}';
053.            }
054. 
055.            
056.    }
057.    catch(PDOException $e) {
058.        echo '{"error":{"text":'. $e->getMessage() .'}}';
059.    }
060.}
061. 
062. 
063./* ### User registration ### */
064.function signup() {
065.    $request = \Slim\Slim::getInstance()->request();
066.    $data = json_decode($request->getBody());
067.    $email=$data->email;
068.    $name=$data->name;
069.    $username=$data->username;
070.    $password=$data->password;
071.     
072.    try {
073.         
074.        $username_check = preg_match('~^[A-Za-z0-9_]{3,20}$~i', $username);
075.        $emain_check = preg_match('~^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email);
076.        $password_check = preg_match('~^[A-Za-z0-9!@#$%^&*()_]{6,20}$~i', $password);
077.         
078.         
079.        if (strlen(trim($username))>0 && strlen(trim($password))>0 && strlen(trim($email))>0 && $emain_check>0 && $username_check>0 && $password_check>0)
080.        {
081.            $db = getDB();
082.            $userData = '';
083.            $sql = "SELECT user_id FROM users WHERE username=:username or email=:email";
084.            $stmt = $db->prepare($sql);
085.            $stmt->bindParam("username", $username,PDO::PARAM_STR);
086.            $stmt->bindParam("email", $email,PDO::PARAM_STR);
087.            $stmt->execute();
088.            $mainCount=$stmt->rowCount();
089.            $created=time();
090.            if($mainCount==0)
091.            {
092.                 
093.                /*Inserting user values*/
094.                $sql1="INSERT INTO users(username,password,email,name)VALUES(:username,:password,:email,:name)";
095.                $stmt1 = $db->prepare($sql1);
096.                $stmt1->bindParam("username", $username,PDO::PARAM_STR);
097.                $password=hash('sha256',$data->password);
098.                $stmt1->bindParam("password", $password,PDO::PARAM_STR);
099.                $stmt1->bindParam("email", $email,PDO::PARAM_STR);
100.                $stmt1->bindParam("name", $name,PDO::PARAM_STR);
101.                $stmt1->execute();
102.                 
103.                $userData=internalUserDetails($email);
104.                 
105.            }
106.             
107.            $db = null;
108.          
109. 
110.            if($userData){
111.               $userData = json_encode($userData);
112.                echo '{"userData": ' .$userData . '}';
113.            } else {
114.               echo '{"error":{"text":"Enter valid data"}}';
115.            }
116. 
117.            
118.        }
119.        else{
120.            echo '{"error":{"text":"Enter valid data"}}';
121.        }
122.    }
123.    catch(PDOException $e) {
124.        echo '{"error":{"text":'. $e->getMessage() .'}}';
125.    }
126.}
127. 
128. 
129./* ### internal Username Details ### */
130.function internalUserDetails($input) {
131.     
132.    try {
133.        $db = getDB();
134.        $sql = "SELECT user_id, name, email, username FROM users WHERE username=:input or email=:input";
135.        $stmt = $db->prepare($sql);
136.        $stmt->bindParam("input", $input,PDO::PARAM_STR);
137.        $stmt->execute();
138.        $usernameDetails = $stmt->fetch(PDO::FETCH_OBJ);
139.        $usernameDetails->token = apiToken($usernameDetails->user_id);
140.        $db = null;
141.        return $usernameDetails;
142.         
143.    } catch(PDOException $e) {
144.        echo '{"error":{"text":'. $e->getMessage() .'}}';
145.    }
146.     
147.}
148. 
149.function feed(){
150.    $request = \Slim\Slim::getInstance()->request();
151.    $data = json_decode($request->getBody());
152.    $user_id=$data->user_id;
153.    $token=$data->token;
154.     
155.    $systemToken=apiToken($user_id);
156.    
157.    try {
158.          
159.        if($systemToken == $token){
160.            $feedData = '';
161.            $db = getDB();
162.            $sql = "SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC";
163.            $stmt = $db->prepare($sql);
164.            $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
165.            $stmt->execute();
166.            $feedData = $stmt->fetchAll(PDO::FETCH_OBJ);
167.            
168.            $db = null;
169.            echo '{"feedData": ' . json_encode($feedData) . '}';
170.        } else{
171.            echo '{"error":{"text":"No access"}}';
172.        }
173.        
174.    } catch(PDOException $e) {
175.        echo '{"error":{"text":'. $e->getMessage() .'}}';
176.    }
177.     
178.     
179.     
180.}
181. 
182.function feedUpdate(){
183. 
184.    $request = \Slim\Slim::getInstance()->request();
185.    $data = json_decode($request->getBody());
186.    $user_id=$data->user_id;
187.    $token=$data->token;
188.    $feed=$data->feed;
189.     
190.    $systemToken=apiToken($user_id);
191.    
192.    try {
193.          
194.        if($systemToken == $token){
195.          
196.             
197.            $feedData = '';
198.            $db = getDB();
199.            $sql = "INSERT INTO feed ( feed, created, user_id_fk) VALUES (:feed,:created,:user_id)";
200.            $stmt = $db->prepare($sql);
201.            $stmt->bindParam("feed", $feed, PDO::PARAM_STR);
202.            $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
203.            $created = time();
204.            $stmt->bindParam("created", $created, PDO::PARAM_INT);
205.            $stmt->execute();
206.             
207. 
208. 
209.            $sql1 = "SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC LIMIT 1";
210.            $stmt1 = $db->prepare($sql1);
211.            $stmt1->bindParam("user_id", $user_id, PDO::PARAM_INT);
212.            $stmt1->execute();
213.            $feedData = $stmt1->fetch(PDO::FETCH_OBJ);
214. 
215. 
216.            $db = null;
217.            echo '{"feedData": ' . json_encode($feedData) . '}';
218.        } else{
219.            echo '{"error":{"text":"No access"}}';
220.        }
221.        
222.    } catch(PDOException $e) {
223.        echo '{"error":{"text":'. $e->getMessage() .'}}';
224.    }
225. 
226.}
227. 
228.function feedDelete(){
229.    $request = \Slim\Slim::getInstance()->request();
230.    $data = json_decode($request->getBody());
231.    $user_id=$data->user_id;
232.    $token=$data->token;
233.    $feed_id=$data->feed_id;
234.     
235.    $systemToken=apiToken($user_id);
236.    
237.    try {
238.          
239.        if($systemToken == $token){
240.            $feedData = '';
241.            $db = getDB();
242.            $sql = "Delete * FROM feed WHERE user_id_fk=:user_id AND feed_id=:feed_id";
243.            $stmt = $db->prepare($sql);
244.            $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT);
245.            $stmt->bindParam("feed_id", $feed_id, PDO::PARAM_INT);
246.            $stmt->execute();
247.             
248.            
249.            $db = null;
250.            echo '{"success":{"text":"Feed deleted"}}';
251.        } else{
252.            echo '{"error":{"text":"No access"}}';
253.        }
254.        
255.    } catch(PDOException $e) {
256.        echo '{"error":{"text":'. $e->getMessage() .'}}';
257.    }
258.     
259.     
260.     
261.}
262. 
263. 
264. 
265. 
266. 
267. 
268.?>




Tag : PHP

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-08-18 13:32:57 By : topfoxzero View : 876 Reply : 1
 

 

No. 1



โพสกระทู้ ( 4,765 )
บทความ ( 8 )



สถานะออฟไลน์


มันคือโค้ดทำงานกับฐานข้อมูลครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-19 10:51:19 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยอธิบายโค้ด_php_หน่อยครับ_slim_framework
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่