Advertisement
Guest User

Untitled

a guest
Jan 29th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 16.78 KB | None | 0 0
  1. <?php
  2. session_start();
  3. include('connect.php');
  4.  
  5.  
  6. require 'mail.php';
  7.  
  8. function registerEmail($recepientEmail, $recepientName) {
  9.   $subject = 'THANKS FOR REGISTERING ON GreenLite.ng';
  10.  
  11.   $message = '<h1>Welcome to the light</h1>
  12.  <h1>Thanks for registering on greenlite.ng</h1>
  13.  
  14.  
  15.  
  16.  <br>';
  17.   $message .= '<b>We are sure</b> you would enjoy your experience here.';
  18.  
  19.   $body =  $message ;
  20.  
  21.   SendMail( $recepientEmail, $recepientName, $subject, $body, strip_tags($body) );
  22. }
  23.  
  24.  
  25.  
  26. if(isset($_SESSION['meternumber'])){
  27.   //header("Location: index.php");
  28.   echo "<script>window.location='index.php'</script>";
  29.   exit;
  30. }else{
  31.  
  32. }
  33.  
  34.  
  35.  
  36. function getmeterdetail($token,$meternumber){
  37.  
  38.  
  39.  
  40.   $header = array();
  41.   $header[] = 'Authorization: Bearer '.$token;
  42.  
  43.   // echo 'Authorization: Bearer '.$token;
  44.  
  45.  
  46.   $url = "https://api.kvg.com.ng/live/energy/aedc/prepaid/meter/".$meternumber;
  47.  
  48.  
  49.  
  50.   // Initialize curl
  51.   $curl = curl_init();
  52.  
  53.  
  54.   $opts = array(
  55.     CURLOPT_URL             => $url,
  56.     CURLOPT_RETURNTRANSFER  => true,
  57.     CURLOPT_CUSTOMREQUEST   => 'GET',
  58.     CURLOPT_HTTPHEADER      => $header,
  59.    
  60.   );
  61.  
  62.   // Set curl options
  63.   curl_setopt_array($curl, $opts);
  64.  
  65.   // Get the results
  66.   $result = curl_exec($curl);
  67.  
  68.   // Close resource
  69.   curl_close($curl);
  70.   return $result;
  71.  
  72.  
  73. }
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80. if(isset($_POST['submitbtn'])){
  81.  
  82.   //first check that the meternumber and email are nt registered already
  83.  
  84.   $meternum = $_POST['meternumber'];
  85.   $email = $_POST['email'];
  86.  
  87.   $sql = "SELECT * FROM `customers` WHERE `meternumber` = '$meternum' OR `email` LIKE '%$email%' ";
  88.   $result = mysqli_query($connect, $sql);
  89.   $num = mysqli_num_rows($result);
  90.  
  91.   //echo $result->num_rows;
  92.   //var_dump($result);
  93.  
  94.   if($num == 0){//dere is no one using it
  95.    
  96.     if(strcmp($_POST['pwd'],$_POST['cpwd'])!=0){
  97.       echo "<script>window.alert('Password did not match with confirm password')</script>";
  98.     }else{
  99.       if($_POST['meternumber']!=""){
  100.        
  101.         $accestoken = generateaccesstoken();
  102.        
  103.         $result = getmeterdetail($accestoken,$_POST['meternumber']);
  104.         $resultjson = $result;
  105.        
  106.         $jsondecoded  = json_decode($resultjson,true);
  107.        
  108.         if(strcasecmp($jsondecoded['ResponseMessage'], "Unknown meter number") == 0 ||  strcasecmp( $jsondecoded['ResponseCode'], "100") != 0){
  109.           $flag=false;
  110.         }else{
  111.           $flag=true;
  112.         }
  113.       }
  114.      
  115.       if($flag){
  116.         $meternum = $_POST['meternumber'];
  117.         $username = $_POST['username'];
  118.         $lname = $_POST['lname'];
  119.         $phone = $_POST['phone'];
  120.         $email = $_POST['email'];
  121.         $address = $_POST['address'];
  122.         $state = $_POST['state'];
  123.         $city = $_POST['city'];
  124.  
  125.         $exactAddress=$jsondecoded['CustomerDetail']['Address'];
  126.  
  127.         $account_type = $_POST['account_type'];
  128.         $pwd = md5($_POST['pwd']);
  129.        
  130.         $sql = "INSERT INTO `customers` (`meternumber`, `phone`,`email`, `password`, `name`,`last_name`, `address`, `exact_address`,`state`,`city`, `account_type`,`balance`,`defaulter`,`file_type`,`cac`,`b_chk`,`b_id`) VALUES ( '$meternum', '$phone','$email', '$pwd', '$username', '$lname', '$address', '$exactAddress', '$state', '$city', '$account_type',0,0,'NO',0,0,0);";
  131.        
  132.         $result = mysqli_query($connect, $sql);
  133.         if(!$result) echo mysqli_error($connect);
  134.         //header("Location: login.php?reg=1");
  135.        
  136.         //now send the email
  137.         //  $body = null;
  138.         registerEmail($email,$username);
  139.        
  140.        
  141.         //registration successfull now login
  142.         $meternum = $_POST['meternum'];
  143.         $password = md5($_POST['pwd']);
  144.        
  145.         $sql = "SELECT * FROM `customers` WHERE `meternumber` = '$meternum' AND `password` = '$password' ";
  146.        
  147.         //echo $sql;
  148.         $result = mysqli_query($connect,$sql);
  149.         if(!$result) echo mysqli_error($connect);
  150.        
  151.         $num = mysqli_num_rows($result);
  152.        
  153.        
  154.         if($num > 0){
  155.          
  156.          
  157.           // output data of each row
  158.           while($row = mysqli_fetch_assoc($result)) {
  159.             $_SESSION['meternum'] = $meternum;
  160.             $_SESSION['id'] = $row['id'];
  161.             $_SESSION['password'] = $_POST['pwd'];
  162.             $_SESSION['name'] = $row['name'];
  163.             $_SESSION['email'] = $row['email'];
  164.             $_SESSION['phone'] = $row['phone'];
  165.             $_SESSION['account_type'] = $row['account_type'];
  166.             $_SESSION['prebalance'] = $row['balance'];
  167.             $_SESSION['defaulter'] = $row['defaulter'];
  168.             $_SESSION['cac'] = $row['cac'];
  169.             $_SESSION['b_chk'] = $row['b_chk'];
  170.            
  171.             break;
  172.           }
  173.          
  174.           $_SESSION['meternumber'] = $meternum;
  175.           //$_SESSION['pwd'] = $password;
  176.          
  177.           //header("Location: index.php");
  178.           echo "<script>window.location='index.php'</script>";
  179.           exit();
  180.          
  181.         }else{
  182.           echo "<script>window.alert('Invalid Meter Number')</script>";
  183.         }
  184.      
  185.      
  186.      
  187.     }else{//alreay registered
  188.      
  189.       echo "<script>window.alert('Already Registered Meter Number Or Email Address')</script>";
  190.      
  191.     }
  192.    
  193.    
  194.    
  195.    
  196.   }
  197. }
  198. }
  199.  
  200.   ?>
  201.  
  202.   <!DOCTYPE html>
  203.   <html>
  204.   <head>
  205.   <meta charset="utf-8">
  206.   <meta http-equiv="X-UA-Compatible" content="IE=edge">
  207.   <title>greenLITE - Register</title>
  208.   <!-- Tell the browser to be responsive to screen width -->
  209.   <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  210.  
  211.   <meta name="description" content="Welcome to Nigerias' most advanced electricity token vending system. Buy your electricity tokens at the cheapest rate! " />
  212.     <meta name="keywords" content="electricity, meter, pay, bills, linda, lindaikeji, konga, paga, utility, Nigeria, prepaid, light,
  213.   abuja, light in abuja, buypower.com.ng, tokens, kogi, AEDC, distribution, power, fashola, ministry of power, quickteller,
  214.   paystack, green, lite, NERC, National, electricity, regulation, commission, jumia, yudala, Ikeja electric" />
  215.     <meta name="author" content="Anthony Nwokoagbara for greenlite systems concept Nigeria Limited" />
  216.     <!-- Favicons (created with http://realfavicongenerator.net/)-->
  217.     <link rel="apple-touch-icon" sizes="57x57" href="dist/img/favicons/apple-touch-icon-57x57.png">
  218.     <link rel="apple-touch-icon" sizes="60x60" href="dist/img/favicons/apple-touch-icon-60x60.png">
  219.     <link rel="icon" type="image/png" href="dist/img/favicons/favicon-32x32.png" sizes="32x32">
  220.     <link rel="icon" type="image/png" href="dist/img/favicons/favicon-16x16.png" sizes="16x16">
  221.     <link rel="manifest" href="img/favicons/manifest.json">
  222.     <link rel="shortcut icon" href="img/favicons/favicon.ico">
  223.    
  224.    
  225.   <!-- Bootstrap 3.3.6 -->
  226.   <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
  227.   <!-- Font Awesome -->
  228.   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  229.   <!-- Ionicons -->
  230.  
  231.   <body class="hold-transition login-page">
  232.  
  233.   <div id="bg">
  234.   <!--img src="dist/img/abbb.jpg" alt="heyhey"-->
  235.   </div>
  236.   <div class="login-box">
  237.   <div class="login-logo">
  238.   <!--img src="dist/img/logo3.png" alt="logo"-->
  239.   </div>
  240.   <!-- /.login-logo -->
  241.   <div class="login-box-body">
  242.   <a href="index.php"><img src="images/logo3.png" alt="logo"></a>
  243.  
  244.   <p class="login-box-msg"></p>
  245.  
  246.   <form action="register.php" method="post">
  247.  
  248.  
  249.   <div class="row">
  250.   <div class="col-xs-6">
  251.   <div class="form-group has-feedback">
  252.   <input type="text" class="form-control" placeholder="First Name" name="username" required>
  253.   <span class="glyphicon glyphicon-user form-control-feedback"></span>
  254.   </div>
  255.   </div>
  256.  
  257.  
  258.   <div class="col-xs-6">
  259.   <div class="form-group has-feedback">
  260.   <input type="text" class="form-control" placeholder="Last Name" name="lname" required>
  261.   <span class="glyphicon glyphicon-user form-control-feedback"></span>
  262.   </div>
  263.   </div>
  264.   </div>
  265.  
  266.   <div class="row">
  267.   <div class="col-xs-6">
  268.   <div class="form-group has-feedback">
  269.   <input type="email" class="form-control" placeholder="E-mail" name="email" required>
  270.   <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
  271.   </div>
  272.   </div>
  273.   <div class="col-xs-6">
  274.   <div class="form-group has-feedback">
  275.   <input type="number" class="form-control" placeholder="Phone " name="phone" required>
  276.   <span class="glyphicon glyphicon-earphone form-control-feedback"></span>
  277.   </div>
  278.   </div>
  279.   </div>
  280.  
  281.   <div class="row">
  282.   <div class="col-xs-6">
  283.  
  284.   </div>
  285.   <div class="col-xs-6">
  286.  
  287.   </div>
  288.   </div>
  289.   <div class="form-group has-feedback">
  290.   <input type="text" class="form-control" placeholder="Address" name="address" required >
  291.   <span class="glyphicon glyphicon-home form-control-feedback"></span>
  292.   </div>
  293.   <div class="row">
  294.  
  295.   <div class="col-xs-6">
  296.   <div class="form-group has-feedback">
  297.   <select name="state" class="form-control" onchange="divisionSelectHandler(this)" required>
  298.   <option value=""> State </option>
  299.   <option value="FCT">FCT</option>
  300.   <option value="Kogi">Kogi</option>
  301.   <option value="Nasarawa">Nasarawa</option>
  302.   <option value="Niger">Niger</option>
  303.   </select>
  304.   <span class="glyphicon glyphicon-globe form-control-feedback"></span>
  305.   </div>
  306.   </div>
  307.  
  308.   <div class="col-xs-6">
  309.   <div class="form-group has-feedback">
  310.  
  311.   <script>
  312.  
  313.   function divisionSelectHandler(select){
  314.    
  315.     var showFCT = document.getElementById('FCT-cities')
  316.     var showKogi = document.getElementById('Kogi-cities')
  317.     var showNiger = document.getElementById('Niger-cities')
  318.     var showNasarawa = document.getElementById('Nasarawa-cities')
  319.    
  320.     if(select.value == 'FCT'){
  321.      
  322.       showFCT.style.display = 'inline'
  323.       showKogi.style.display = 'none'
  324.       showNiger.style.display = 'none'
  325.       showNasarawa.style.display = 'none'
  326.     }
  327.    
  328.     if (select.value == 'Kogi') {
  329.      
  330.       showFCT.style.display = 'none'
  331.       showKogi.style.display = 'inline'
  332.       showNiger.style.display = 'none'
  333.       showNasarawa.style.display = 'none'
  334.      
  335.     }
  336.    
  337.     if (select.value == 'Niger') {
  338.      
  339.       showFCT.style.display = 'none'
  340.       showKogi.style.display = 'none'
  341.       showNiger.style.display = 'inline'
  342.       showNasarawa.style.display = 'none'
  343.     }
  344.    
  345.     if (select.value == 'Nasarawa') {
  346.      
  347.       showFCT.style.display = 'none'
  348.       showKogi.style.display = 'none'
  349.       showNiger.style.display = 'none'
  350.       showNasarawa.style.display = 'inline'
  351.     }
  352.    
  353.   }
  354.   </script>
  355.  
  356.   <select name="city" class="form-control" required>
  357.   <option value=""> City </option>
  358.   <optgroup label="FCT-cities" name="FCT-cities" id ="FCT-cities" style="display:none;">FCT>
  359.   <option value="Abaji">Abaji</option>
  360.   <option value="Abuja">Abuja </option>
  361.   <option value="Bwari">Bwari</option>
  362.   <option value="Gwagwalada<">Gwagwalada</option>
  363.   <option value="Kuje">Kuje</option>
  364.   <option value="Kwali">Kwali</option>
  365.   </optgroup>
  366.  
  367.   <optgroup label="Kogi-cities" name="Kogi-cities" id ="Kogi-cities" style="display:none;">Kogi>
  368.   <option value="Adavi">Adavi</option>
  369.   <option value="Ajaokuta">Ajaokuta</option>
  370.   <option value="Ankpa">Ankpa</option>
  371.   <option value="Bassa">Bassa</option>
  372.   <option value="Dekina">Dekina</option>
  373.   <option value="Ibaji">Ibaji</option>
  374.   <option value="Idah">Idah</option>
  375.   <option value="Igalamela-Odolu">Igalamela-Odolu</option>
  376.   <option value="Ijumu">Ijumu</option>
  377.   <option value="Kabba/Bunu">Kabba/Bunu</option>
  378.   <option value="Koton Karfe">Koton Karfe</option>
  379.   <option value="Lokoja">Lokoja</option>
  380.   <option value="Mopa-Muro">Mopa-Muro</option>
  381.   <option value="Ofu">Ofu</option>
  382.   <option value="Ogori/Magongo">Ogori/Magongo</option>
  383.   <option value="Okehi">Okehi</option>
  384.   <option value="Okene">Okene</option>
  385.   <option value="Olamaboro">Olamaboro</option>
  386.   <option value="Omala">Omala</option>
  387.   <option value="Yagba East">Yagba East</option>
  388.   <option value="Yagba West">Yagba West</option>
  389.   </optgroup>
  390.  
  391.   <optgroup label="Niger-cities" name="Niger-cities" id ="Niger-cities" style="display:none;">Niger>
  392.   <option value="Agaie">Agaie</option>
  393.   <option value="Agwara">Agwara</option>
  394.   <option value="Bida">Bida</option>
  395.   <option value="Borgu">Borgu</option>
  396.   <option value="Bosso">Bosso</option>
  397.   <option value="Chanchaga">Chanchaga</option>
  398.   <option value="Edati">Edati</option>
  399.   <option value="Gbako">Gbako</option>
  400.   <option value="Gurara">Gurara</option>
  401.   <option value="Katcha">Katcha</option>
  402.   <option value="Kontagora">Kontagora</option>
  403.   <option value="Lapai">Lapai</option>
  404.   <option value="Lavun">Lavun</option>
  405.   <option value="Magama">Magama</option>
  406.   <option value="Mariga">Mariga</option>
  407.   <option value="Mashegu">Mashegu</option>
  408.   <option value="Mokwa">Mokwa</option>
  409.   <option value="Munya">Munya</option>
  410.   <option value="Paikoro">Paikoro</option>
  411.   <option value="Rafi">Rafi</option>
  412.   <option value="Rijau">Rijau</option>
  413.   <option value="Shiroro">Shiroro</option>
  414.   <option value="Suleja">Suleja</option>
  415.   <option value="Tafa">Tafa</option>
  416.   <option value="Wushishi">Wushishi</option>
  417.   </optgroup>
  418.  
  419.   <optgroup label="Nasarawa-cities" name="Nasarawa-cities" id ="Nasarawa-cities" style="display:none;">Nasarawa>
  420.   <option value="Akwanga">Akwanga</option>
  421.   <option value="Awe">Awe</option>
  422.   <option value="Doma">Doma</option>
  423.   <option value="Karu">Karu</option>
  424.   <option value="Keffi">Keffi</option>
  425.   <option value="Kokona">Kokona</option>
  426.   <option value="Keana">Keana</option>
  427.   <option value="Lafia">Lafia</option>
  428.   <option value="Nasarawa">Nasarawa</option>
  429.   <option value="Nasarawa Egon">Nasarawa Egon</option>
  430.   <option value="Obi">Obi</option>
  431.   <option value="Toto">Toto</option>
  432.   <option value="Wamba">Wamba</option>
  433.   </optgroup>
  434.  
  435.   </select>
  436.   <span class="glyphicon glyphicon-map-marker form-control-feedback"></span>
  437.   </div>
  438.  
  439.   </div>
  440.  
  441.   </div>
  442.   <div class="row">
  443.   <div class="col-xs-6">
  444.   <div class="form-group has-feedback">
  445.   <input type="password" class="form-control" placeholder="Password " name="pwd" required>
  446.   <span class="glyphicon glyphicon-lock form-control-feedback"></span>
  447.   </div>
  448.   </div>
  449.   <div class="col-xs-6">
  450.   <div class="form-group has-feedback">
  451.   <input type="password" class="form-control" placeholder="Retype Password " name="cpwd" required>
  452.   <span class="glyphicon glyphicon-lock form-control-feedback"></span>
  453.   </div>
  454.   </div>
  455.   </div>
  456.   <div class="form-group has-feedback">
  457.   <select name="account_type" class="form-control" required>
  458.   <option value="">Select account type</option>
  459.   <option value="0">Personal</option>
  460.   <!--option value="1"-->Company<!--/option-->
  461.   </select>
  462.   <span class="glyphicon glyphicon-tasks form-control-feedback"></span>
  463.   </div>
  464.  
  465.   <div class="form-group has-feedback">
  466.   <input type="number" class="form-control" placeholder="Meter Number" name="meternumber" required>
  467.   <span class="glyphicon glyphicon-sound-5-1 form-control-feedback"></span>
  468.   </div>
  469.  
  470.   <div class="row">
  471.   <!--/.col-->
  472.   <div class="col-xs-12">
  473.   <button type="submit" class="btn btn-primary btn-block" name="submitbtn">Sign up</button>
  474.   </div>
  475.   <!--/.col-->
  476.   </div>
  477.   </form>
  478.  
  479.   <div class="row">
  480.   <div class="col-xs-12">
  481.   <br>
  482.   <center><a href="login.php" class="text-center"> Existing User? </a></center>
  483.   </div>
  484.   </div>
  485.  
  486.  
  487.   <!-- /.social-auth-links -->
  488.  
  489.  
  490.  
  491.   </div>
  492.   <!-- /.login-box-body -->
  493.   </div>
  494.   <!-- /.login-box -->
  495.   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
  496.   <!-- Theme style -->
  497.   <link rel="stylesheet" href="dist/css/AdminLTE.css">
  498.   <!-- iCheck -->
  499.   <link rel="stylesheet" href="plugins/iCheck/square/blue.css">
  500.  
  501.   <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  502.   <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  503.     <!--[if lt IE 9]>
  504.     <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  505.     <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  506.     <![endif]-->
  507.     </head>
  508.    
  509.    
  510.     <!-- jQuery 2.2.3 -->
  511.     <script src="plugins/jQuery/jquery-2.2.3.min.js"></script>
  512.     <!-- Bootstrap 3.3.6 -->
  513.     <script src="bootstrap/js/bootstrap.min.js"></script>
  514.     <!-- iCheck -->
  515.     <script src="plugins/iCheck/icheck.min.js"></script>
  516.     <script>
  517.     $(function () {
  518.       $('input').iCheck({
  519.         checkboxClass: 'icheckbox_square-blue',
  520.         radioClass: 'iradio_square-blue',
  521.         increaseArea: '10%' // optional
  522.       });
  523.     });
  524.     </script>
  525.     </body>
  526.     </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement