คอมพิวเตอร์และอินเตอร์เน็ต,บรรยายวิชาการ,วิจัย,ศึกษากุรอาน,E-Book

วันเสาร์ที่ 8 กันยายน พ.ศ. 2561

AWD the best of code editor on android

         Tool for remote code editor with auto complete code in php html css and js.

Using step.
step 1 : Create connection
1.open menu then select "Connection management"
2.press + button for add new connection
3.select protocal to FTP
4.fill value of FTP connection
-name
-protocal
-login
-password
-address
5.click Save button (connection icon appear)

step 2 : Specify project folder
1.click menu "open project folder"
2.select the created connection (from step 1)
3.specify folder to want then click OK
4.select file in folder from the left panel


remark :
1). AWD has 2 group(button) of menu
1.Menu for project call with ... (3 dot)button
2.Menu for file call with rectangle button
2).Adjus font size and set theme to light(not Dark) for working well in project menu

วันพุธที่ 15 สิงหาคม พ.ศ. 2561

รับค่าตำแหน่งพิกัด Geo Location แล้วแสดงบนแผนที่ GMap


การรับค่าตำแหน่งพิกัด Geo Location แล้วแสดงบนแผนที่ GMap สามารถเขียน code
ในไฟล์ get_user_location_then_MAP.php ดังนี้(ไฟล์เดียว)

<!DOCTYPE html>
<html>
<head>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="UTF-8" />
<title>Watch position</title>
<style type="text/css">
<!--
#container {
 padding:1em;
 font-size:1.5em;
}

label {
 display:block;
 margin-top:12px;
}
-->
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&callback=initMap" async defer></script>

</head>
<body>

<div id="container">

<h1>Watch Position</h1>

<section>

<input type="button" id="startWatchButton" value="Watch Location" />
<input type="button" id="clearWatchButton" value="Stop" />

<a href="" id="mapLink" target="_blank">View Map</a>

<label for="clat">Latitude:</label>
<input type="text" id="clat" name="clat" />

<label for="clng">Longitude:</label>
<input type="text" id="clng" name="clng" />

<label for="calt">Altitude</label>
<input type="text" id="calt" name="calt" />

<label for="cacc">Accuracy</label>
<input type="text" id="cacc" name="cacc" />

<label for="caltAcc">Altitude Accuracy</label>
<input type="text" id="caltAcc" name="caltAcc" />

<label for="cheading">Heading</label>
<input type="text" id="cheading" name="cheading" />

<label for="cspeed">Speed</label>
<input type="text" id="cspeed" name="cspeed" />

<label for="ctimestamp">Timestamp</label>
<input type="text" id="ctimestamp" name="ctimestamp" />

<input type="hidden" data-decoder="clat" type="text" name="clat" id="latitude" readonly />
<input type="hidden" data-decoder="clng" type="text" name="clng" id="longitude" readonly />

<p><label class="text_form1">Longitude:</label><input data-decoder="clat" type="text" name="clat" readonly /></p>
<p><label class="text_form1">Latitude:</label><input data-decoder="clng" type="text" name="clng" readonly /></p>


<ul id="log"></ul>

</section>

</div>

<script>
function initMap() {
  var mapLink = $("#mapLink");
  var log = $("#log");
  var watchID;

  $("#startWatchButton").click(function()
   {
    watchID = navigator.geolocation.watchPosition(showPosition, positionError);
   }
  );

  $("#clearWatchButton").click(function()
   {
    navigator.geolocation.clearWatch(watchID);
    logMsg("Stopped watching for location changes.");
   }
  );

  function showPosition(position) {

   logMsg("Showing current position.");

   var coords = position.coords;

   $("#clat").val(coords.latitude);
   $("#clng").val(coords.longitude);

   $("#cacc").val(coords.accuracy);
   $("#calt").val(coords.altitude);
   $("#caltAcc").val(coords.altitudeAccuracy);
   $("#cheading").val(coords.heading);
   $("#cspeed").val(coords.speed);
   $("#ctimestamp").val(coords.timestamp);

   var clat = latitude.dataset.decoder;
   var clng = longitude.dataset.decoder;

   clat.value = position.coords.latitude;
   clng.value = position.coords.longitude;

   mapLink.attr("href", "http://maps.google.com/maps?q=" + $("#clat").val() + ",+" + $("#clng").val() + "+(You+are+here!)&iwloc=A&hl=en");

   mapLink.show();
  }

  function positionError(e) {
   switch (e.code) {
    case 0:
     logMsg("The application has encountered an unknown error while trying to determine your current location. Details: " + e.message);
     break;
    case 1:
     logMsg("You chose not to allow this application access to your location.");
     break;
    case 2:
     logMsg("The application was unable to determine your location.");
     break;
    case 3:
     logMsg("The request to determine your location has timed out.");
     break;
   }
  }

  function logMsg(msg) {
   log.append("<li>" + msg + "</li>");
  }

  mapLink.hide();

}
</script>

</body>
</html>

การแสดงตำแหน่งปัจจุบัน Geo Location ด้วย PHP


การแสดงตำแหน่งปัจจุบัน Geo Location ด้วย PHP จาด google api มีขั้นตอนดังต่อไปนี้

1.สร้างไฟล์ get_user_location.php 
เพื่อรับค่า lat/long และค่าความแม่นยำ(accuracy) ดังนี้

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Geocoding Page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
 <script>
$(document).ready(function(){
    if(navigator.geolocation){
        navigator.geolocation.getCurrentPosition(showLocation);
    }else{
        $('#location').html('Geolocation is not supported by this browser.');
    }
});

function showLocation(position){
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude; 
   var accuracy = position.coords.accuracy;  //adisak Add
    $.ajax({
        type:'POST',
        url:'detail_location.php',
        data:'latitude='+latitude+'&longitude='+longitude+'&accu='+accuracy,
        success:function(msg){
            if(msg){
               $("#location").html(msg);
            }else{
                $("#location").html('Not Available');
            }
        }
    });
}
</script>
</head>
<body>
   <p>Your Location: <span id="location"></span></p>
</body>
</html>


2.สร้างไฟล์  detail_location.php 
เพื่อแสดงค่ารายละเอียดของตำแหน่งตาม lat/long ที่รับมา ดังนี้

<?php
//if latitude and longitude are submitted
if(!empty($_POST['latitude']) && !empty($_POST['longitude'])){
//send request and receive json data by latitude and longitude
//with language option something like this - http://maps.google.com/maps/api/js?sensor=false&language=ja     //adisak add
    $url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($_POST['latitude']).','.trim($_POST['longitude']).'&sensor=false&language=th';
    $json = @file_get_contents($url);
    $data = json_decode($json);
    $status = $data->status;
    
    //if request status is successful
    if($status == "OK"){
        //get address from json data
        $location = $data->results[0]->formatted_address;
    }else{
        $location =  '';
    }
    
    //return address to ajax    ///////$_POST['accu']=ค่าที่ส่งมาพร้อม lat/long จากไฟล์ก่อนหน้านี้
    echo $location." [Lat : ".trim($_POST['latitude'])."/Long : ".trim($_POST['longitude'])."][ accuracy=".trim($_POST['accu'])."]";
}
?>

SQLeo Visual Query Builder


SQLeo

A powerful SQL tool to transform or reverse complex queries (generated by OBIEE, Microstrategy, Cognos, Hyperion, Pentaho ...) into diagrams to ease visualization and analysis. A graphical query builder that permits to create complex SQL queries easily. The GUI with multi-connections supports virtually all JDBC drivers, including ODBC bridge, Oracle, MySQL, PostgreSQL, Firebird, HSQLDB, H2, CsvJdbc, SQLite. And top of that, everything is open-source!

วันอาทิตย์ที่ 12 สิงหาคม พ.ศ. 2561

วิธีแก้ Navigation to the webpage was cancelled



                    ถ้าหากเปิดweb ไม่ได้ ขึ้นข้อความ Navigation to the webpage was cancelled โดยเฉพาะกับ browser ที่สร้างเองกับ delphi หรือ autoit หรือ lazarus เป็นต้น ให้แก้ไขดังนี้

-เปิด ie กดปุ่ม Tools > แทปสุดท้าย Avanced > reset

วันเสาร์ที่ 28 กรกฎาคม พ.ศ. 2561

jamovi โปรแกรมวิเคราะห์สถิติชั้นดี บนเครื่อง 64 bit


                jamovi โปรแกรมวิเคราะห์สถิติชั้นดี บนเครื่องคอพมพวิเตอร์ชนิด 64 bit เท่านั้น
(ไม่มี version 32 bit) โดยใช้พื้นฐานการวิเคราะห์จาก R แต่เพิ่มส่วนการแก้ไขข้อมูลได้ในตัวเอง
(ต่างจาก JASP จะแก้ไขข้อมูลในตนเองไม่ได้) เป็นอีกโปรแกรมฟรีที่น่าสนใจมาก
สามารถศึกษาและดาวน์โหลดใช้งานได้ฟรีที่นี่


การติดตั้งและใช้ AI2U รุ่น 2018


     App Inventor 2 Ultimate รุ่น 2018 update 2018-06-06 สามารถ Download ได้
ที่ sourceforge.net โดยรุ่นล่าสุดนี้จะเพิ่ม component และความสามารถใหม่ๆ
ให้ D/L version portable จะได้ไฟล์ zip แตกไฟล์ แล้วค่อยสร้าง short-cut ของ AI2U.exe
ไว้หน้า desktop เมื่อเรียกเปิดจะปรากฏดังรูบด้านบน
วิธีใช้งาน
  1.คลิกบนปุ่ม All AI2U Server
  2.คลิกบนปุ่ม Start Invent (จะเรียก browser chrom ให้ login ทันที)

มหายเหตุ : 1. สามารถใช้งานด้วยการคลิกที่ข้อความ
                     "Click Here to use your Google Account to login"
                     และคลิกปุ่ม Log in อีกที เพื่อเข้าโปรแกรม
                   2. ระหว่างการพัฒนาให้ใช้ AI Companion เพื่อแสดงผบบนSmartPhoneจริง
                       (ติดตั้ง AI Companion บน SmartPhone แล้ว Connect ผ่าน QR-Code)



ฝึกนำเสนอภาษาอังกฤษด้วย App. PresentPractice

 
           PresentPractice เป็น App บนโทรศัพท์สมาร์ทโฟน Android สำหรับฝึกการนำเสนอภาษาอังกฤษด้วยตนเอง ซึ่งจะประกอบด้วยเนื้อหาวิชาการหลักการนำเสนอ และตัวอย่างบทนำเสนอ(script) สามารถศึกษาและฝึกได้ด้วยตนเอง  สามารถทดลองใช้งานได้ฟรี download ได้ที่นี่

วันศุกร์ที่ 27 กรกฎาคม พ.ศ. 2561

fogMAP กำหนดแผนที่สำหรับการพ่นเคมี

     
                  fogMAP เป็น App สำหรับโทรศัพท์ Android เพื่อใช้สำหรับกำหนดพื้นที่บนแผนที่
ของ google maps ใช้สำหรับการพ่นเคมี โดย App จะกำหนดรัศมี 100 เมตรจากจุดศูนย์กลาง
สามารถทดลองใช้งานฟรี download ได้ที่นี่

สำหรับ foggingMAP v.2 download ได้ที่นี่

วันพฤหัสบดีที่ 28 มิถุนายน พ.ศ. 2561

วิธีแปลงข้อความภาพเป็นText รองรับภาษาไทย 100%

         OCR เป็นระบบการเปลี่ยนจากข้อความที่เป็นรูปภาพมาเป็น Text ซึ่งโดยปกติแล้ว
จะทำการแปลงชุดข้อความภาษาไทยได้ไม่สมบูรณ์ 100% แต่ปัจจุบันมีวิธีการแปลง
จากชุดข้อความที่เป็นภาพ(.jpg) มาเป็น Text ได้อย่างสมบูรณ์ 100% โดยใช้ผ่าน OCR
ของ google ซึ่งมีวิธีการง่ายๆดังนี้

1.นำภาพของชุดข้อความที่เป็น .jpg เข้าเก็บไว้ใน Google Drive
   (ควรจะทำFolder แยกต่างหาก)
2.เมื่ออยู่ใน Google Drive แล้ว คลิกขวาบนไฟล์แล้วเลือก Open with Google Doc
3.จะใช้เวลาวิเคราะห์ครู่หนึ่ง ก็จะได้เอกสาร Google Doc ที่มีข้อความเป็น Text
   (แปลงภาษาไทยได้ถูกต้อง 100%)
4.สามารถคัดลอกข้อความดังกล่าวไปใช้ตามต้องการ


ITMC : International Travel Medicine Clinic


             โปรแกรมระบบฐานข้อมูลเวชศาสตร์การเดินทางและท่องเที่ยวระหว่างประเทศ (ITMC : International Travel medicine Clinic) เป็นโปรแกรม Web Application ที่พัฒนาขึ้นเฉพาะเพื่อใช้ในการจัดเก็บข้อมูลเป็นฐานข้อมูลสำหรับการดำเนินงานในคลินิกเวชศาสตร์การเดินทางและท่องเที่ยว ที่มีการออกแบบอำนวยความสะดวกแก่ผู้ใช้ในทุกระดับในคลินิกฯ และรองรับการใช้งานข้ามประเทศได้ทั่วโลก โดยผ่านเครือข่ายอินเทอร์เน็ต 

Features :
-บันทึกข้อมูลทั่วไปผู้เดินทาง
-บันทึกผลการตรวจรักษา
-บันทึกผลการฉีดวัคซีน
-บันทึกผลการระดับความรุนแรง
-ถ่ายภาพเพื่อเก็บไว้เป็นหลักฐาน ด้วย App. โทรศัพท์มือถือ
-ค้นหาประวัติด้วย QR-Code
-ส่งต่อผู้รับบริการไปยังคลินิกอื่นได้
-รายงานสรุปผลการดำเนินงาน
-รองรับทุกขนาดจอภาพ Smart Phone/Tablet/Note Book/PC
-....

วันอังคารที่ 29 พฤษภาคม พ.ศ. 2561

การแปลศัพท์ภาษาอาหรับ

การแปลคำศัพท์ภาษาอาหรับผ่านwebsite นับเป็นสิ่งจำเป็นเนื่องจากคำศัพท์ที่ได้มาจากอัลฮาดีสหรืออัลกุรอาน หากนำไปใช้ทันทีจากที่ได้มีการแปลไว้อยูแล้ว พบว่าศัพท์แต่ละตัววางเรียงไม่ตรงกับคำแปลเนื่องจากโครงสร้างทางภาษาที่ไม่ตรงกัน
  วิธีแก้ปัญหานี้ด้วยการนำคำศัพท์มาตรวจสอบกับพจนานุกรมภาษอาหรับ โดยสามารถไปที่ Arabic dictionary online ที่ https://www.lexilogos.com/english/arabic_dictionary.htm ซึ่งจะมีแป้นพิมพ์ภาษอาหรับ และสามารถเลือกแปลได้จากพจนานุกรมจากหลายแหล่ง เช่น แปลด้วย google เป็นต้น

วันอาทิตย์ที่ 27 พฤษภาคม พ.ศ. 2561

วิธีแสดงผลหน้าจอSmartPhoneบนPC


The application allows viewing the device screen in your web browser.
No need of any additional software except for this app and a web browser.
No annoying ads or pop-ups.
The application works via WiFi and/or 3G/LTE network.
App source code: https://github.com/dkrivoruchko/ScreenStream

สามารถใช้งานได้ดี สำหรับความต้องการนำเสนอหน้าจอSmartPhone ผ่าน Projector  
(ไม่ต้องต่อสายพ่วงใดๆ) โดยการทำงานผ่านทางการแสดงผลใน browser ของ PC 
ซึ่งจะแสดงผลได้อย่างรวดเร็ว ไม่มี Delay เพียงกำหนดเลข IP และ Port ที่ตรงกัน 
ตามที่แสดงใน App บน Android (กดปุ่ม START เพื่อเริ่มทำงาน)

ข้อแนะนำ
    -ต้องอยู่ในวงเครือข่ายเดียวกัน
    -ควรปิด การตั้งเวลาพักหน้าจอของSmartPhone ขณะใช้งานจริง
    -ควรติดตั้ง App ชื่อ ScreenDraw Draw on your screen ใช้สำหรับการสอน
     (หากใช้ oppo ต้อง enable popup ด้วย ถึงจะใช้ได้)



วันเสาร์ที่ 12 พฤษภาคม พ.ศ. 2561

เครื่องมือสำหรับนักแปล



  การแปลเอกสารในปัจจุบัน ส่วนมากแล้สจะเป็นการทำงานบนเว็ปไซด์หรือที่เรียกว่าทำงาน online ซึ่งนอกจากจะทำงานที่ต้องลิ้งค์กับอินเทอร์เน็ตแล้ว เนื้อหาหรือเอกสารที่เป็นต้นฉบับก็มักเป็นเอกสารที่อยู่บน online เช่นเดียวกัน
  ส่วนใหญ่แล้วการแปลเอกสารจากภาษาหนึ่งไปอีกภาษหนึ่ง โดยทั่วไปแล้วจะนิยมใช้ google translator ซึ่งจะสามารถตอบสนองความต้องการของนักแปลได้เป็นอย่างดี แต่ยังมีบางอย่างที่ไม่ตอบสนองได้มากนัก อย่างเช่นว่า หากมีการแปลข้อความที่เป็นประโยคยาวๆ หรือข้อความที่เป็นบทความ หรือ article  นั้น การใช้  google translation มักจะแปลได้ไม่ถูกต้องนัก และในส่วนผลของข้อความที่ได้จากการแปล จะทำการแก้ไขในหน้าเว็ปทันทีไม่ได้ นอกเสียจาก คัดลอกมาวางบน editor อื่นแล้วค่อยปรับแก้อีกที ซึ่งจะเสียเวลามาก ฉะนั้นทางออกเพื่อแก้ปัญหาดังกล่าว โดยให้เลี่ยงไปใช้เว็บใหม่ คือ http://www.translatesonline.com/Online-translation  ซึ่งเอกสารที่แปลแล้วจะสามารถแก้ไขในหน้าเว็ปได้ทันที

วันเสาร์ที่ 24 กุมภาพันธ์ พ.ศ. 2561

การแก้ปัญหา(พัฒนา)งานประจำด้วย R2R

4 องค์ประกอบของ R2R

1.โจทย์วิจัย-ต้องมาจากงานประจำ
2.ผู้ทำวิจัย-ต้องเป็นผู้ทำงานประจำนั้นเอง
3.ผลลัพธ์-ต้องวัดที่ผลต่อตัวผู้ป่วยหรือบริการ
4.นำผลการวิจัย-ต้องกลับไปเปลี่ยนแปลงการให้บริการ

Full-screen Presentation with Foxit reader

The best way to Full-screen Presentation with Foxit reader, by start setting at reference value within this steps.
1.
2.
3.

Remark : Use F11 for switch to full-screen mode (work perfectly if zooming at 100%)






วันศุกร์ที่ 2 กุมภาพันธ์ พ.ศ. 2561

Passing data to php script using Ajax

Passing data to php script using Ajax –
here we will use j query to get data from inputs
and then create an Ajax method to pass data to php script (asynchronous request).
Ajax is sued to asynchronously send data to a script.
By asynchronous we mean that the user can continue doing some other tasks at the front end till the script is being executed. User need not wait for response.

with create two file like this

1.   first.php
-------------------------------------------
<html>
<head>
<title>Passing data to php script using Ajax -steps</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
     function submit_form()    {
        var data1=$("#uname").val();
        var data2=$("#pwd").val();
        var dataTosend='user='+data1+'&pwd='+data2;
        $.ajax({
            url: 'add_vac_to_healthcheck.php',
            type: 'POST',
            data:dataTosend,
            async: true,
            success: function (data) {
            alert(data)
            },
        });
    }
</script>
</head>
<body>    
        <form method="post">
        <input type="text" placeholder="username" id="uname" />
        <input type="password" placeholder="passowrd" id="pwd" />
        <button type="button" onclick="submit_form();">Submit</button>
        </form>     
</body>
</html>
-----------------------------------------
The type attribute is set to button, because we are going to send data using a function in an asynchronous way.  Setting type=”submit” will cause synchronous transfer of data and also page reloading or re-direction.

then second file is
2.  add_vac_to_healthcheck.php
-----------------------------------------
<?php
$user=$_POST['user'];
$pwd=$_POST['pwd'];

// now this data can be used for any function.
//One can even add this to database.
//We will just echo the data.  //echo "username=".$user."password=".$pwd;

//Save into DB
$h='localhost';
$u='root';
$p='testtest';
$d='epiapp_db';

$link = mysql_connect($h, $u, $p);   // step1-connect
if (!$link) {   die('Could not connect: ' . mysql_error());}

$db_selected = mysql_select_db($d, $link); // step2-select DB
if (!$db_selected) { die ('Can\'t use $d : ' . mysql_error());}

$mq="INSERT INTO vac_table(vacname1,vaclot1) VALUES('$user','$pwd')"; $result = mysql_query($mq);
if (!$result) { die('Invalid query: ' . mysql_error());
}else{
    echo "Insert Success...";
}
?>
----------------------------------------
Ref : https://www.quora.com/How-do-I-pass-a-value-to-a-PHP-script-using-AJAX

วันเสาร์ที่ 20 มกราคม พ.ศ. 2561

Visual Studio Code with AppServ


       การใช้ Visual Studio Code หรือ VC Code สำหรับใน windows ที่ใช้ Appserv ในการพัฒนา โดยสามารถกำหนด script ที่เป็น build task ได้ดังนี้( script การ build task กำหนดให้แต่ละโปรเจ็กที่สร้าง ไม่จำเป็นต้องหมือนกัน - copy นำไปใช้แทนกันได้ โดยที่ vs code จะกำหนดให้เองของแต่ละโปรเจก แล้วแต่ผู้เขียน ถ้าไม่กำหนดก็จะไม่มี)


1.การใช้ Appserv เป็น web server จะต้องเขียน script php ชื่อ redirect.php เพื่อรับค่าเก็บไว้ที่ root C:\Appserv\www\redirect.php ดังนี้

<?php
$root = $_SERVER['DOCUMENT_ROOT'];
$file = $_GET['file'];
$file2=substr($file,15,strlen($file));
$filenew2 = str_replace('\\', '/', $file2);
?>

2.Create Build Task ดังนี้
  1. Open a folder with vscode
  2. Hit F1
  3. Select "Tasks: Configure Task Runner"
  4. Hit Enter and vscode will create a sample task.json for you
และแก้ไขเนื้อหาทั้งหมดเป็นดังนี้
ก.กรณีต้องการใช้ browser Filefox
{
 "version": "0.1.0",
 "command": "firefox",
 "windows": {
   "command": "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
   },
 "args": ["http:\\localhost\\redirect.php?file=${file}"]
}

ข.กรณีต้องการใช้ browser Chrome
{
 "version": "0.1.0",
 "command": "firefox",
 "windows": {
   "command": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
   },
 "args": ["http:\\localhost\\redirect.php?file=${file}"]
}

การเรียกใช้งาน
  หลังจากเปิด file script  ที่ต้องการ run แล้ว ทำดังนี้
   1.กดเมนู Tasks
   2.เลือก Run build tasl หรือ กด CTRL+SHIFT+B

หมายเหตุ
   การพัฒนา mobile web app ให้เลือใช้ chrome จะดีกว่า เพราะมี mobile simulator ที่ดีกว่า เช่น Ripple  เป็นต้น





วันพฤหัสบดีที่ 18 มกราคม พ.ศ. 2561

Better techniques for url parameter encryption

Access control in web applications. What you need to do is check that the user is authorized to access the data you're going to show on a page, before allowing them to see that data. This basically comes down to access control: you want controls that limit which users can view which data, based upon some authorization policy.
It sounds like you have a sequence of pages, one for each agent:
http://www.example.com/agent/?producerId=12345
http://www.example.com/agent/?producerId=12346
http://www.example.com/agent/?producerId=12347
...
where the producerIds (agentIds) are potentially guessable or predictable. You want to ensure that agent 12345 can view http://www.example.com/agent/?producerId=12345 but not any of the other pages. OK.
This is a bog-standard situation, and the bog-standard defense is: access control.
To implement access control, you code the web application so that each page checks whether the user is authorized to view that page before allowing the user to view that page. For instance, for the page listed above, the logic implementing that page would check the identity of the currently-logged in user. If the id of the logged-in user matches the producerId of the page parameter, then you show them the information. If the id does not match, you do not show them the information: if it is some other user, you show them an error page (with information about how to get access), or if the user has not logged in yet, you redirect them to a login page.

Here is the way for solved problem in my solution
      $id=1234;
      $en_id = encrypString( $id); 
 
Then create the url like 
      https://www.example.com/show_order.php?id=$en_id
 
The url will look like 
       https://www.example.com/show_order.php?id=9muEYh4lShFDeCnXqoNpxucs

The functions for crypt and decrypt are
    function encrypString($plaintext) {
         # --- ENCRYPTION ---

        $key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe
029fdebae5e1d417e2ffb2a00a3");//change this

        # show key size use either 16, 24 or 32 byte keys for AES-128, 192
        # and 256 respectively
        $key_size =  strlen($key);
        //echo "Key size: " . $key_size . "\n";


        # create a random IV to use with CBC encoding
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);

        # creates a cipher text compatible with AES (Rijndael block size = 128)
        # to keep the text confidential 
        # only suitable for encoded input that never ends with value 00h
        # (because of default zero padding)
        $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                     $plaintext, MCRYPT_MODE_CBC, $iv);

        # prepend the IV for it to be available for decryption
        $ciphertext = $iv . $ciphertext;

        # encode the resulting cipher text so it can be represented by a string
        $ciphertext_base64 = base64_encode($ciphertext);

        return  rawurlencode($ciphertext_base64);//important rawurlencode 
                                                                      //  for + symbol in url

    }


function decryptString($ciphertext_base64) {
        # --- DECRYPTION ---

        $key = pack('H*', "bcb04b7e103a0cd8b54763051cef
08bc55abe029fdebae5e1d417e2ffb2a00a3");//change this

        # show key size use either 16, 24 or 32 byte keys for AES-128, 192
        # and 256 respectively
        $key_size =  strlen($key);
        //echo "Key size: " . $key_size . "\n";

        # create a random IV to use with CBC encoding
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);

        $ciphertext_dec = base64_decode($ciphertext_base64);

        # retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
        $iv_dec = substr($ciphertext_dec, 0, $iv_size);

        # retrieves the cipher text (everything except the $iv_size in the front)
        $ciphertext_dec = substr($ciphertext_dec, $iv_size);

        # may remove 00h valued characters from end of plain text
        $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

        return rawurldecode($plaintext_dec);
    }

Cr:https://security.stackexchange.com/questions/17259/better-techniques-than-url-parameter-encryption