diff --git a/includes/configure_client.php b/includes/configure_client.php index a5e2aa15..2b1d1188 100755 --- a/includes/configure_client.php +++ b/includes/configure_client.php @@ -5,119 +5,171 @@ * */ function DisplayWPAConfig(){ - $status = ''; + $status = new StatusMessages(); + $scanned_networks = array(); + + if( isset($_POST['SaveWPAPSKSettings']) ) { + + $config = 'ctrl_interface=DIR='. RASPI_WPA_CTRL_INTERFACE .' GROUP=netdev +update_config=1 +'; + $networks = $_POST['Networks']; + for( $x = 0; $x < $networks; $x++ ) { + $network = ''; + $ssid = escapeshellarg( $_POST['ssid'.$x] ); + $protocol = escapeshellarg( $_POST['protocol'.$x] ); + $psk = escapeshellarg( $_POST['psk'.$x] ); + + if ( strlen($psk) >2 ) { + exec( 'wpa_passphrase '.$ssid. ' ' . $psk,$network ); + foreach($network as $b) { + $config .= "$b +"; + } + } + } + exec( "echo '$config' > /tmp/wifidata", $return ); + system( 'sudo cp /tmp/wifidata ' . RASPI_WPA_SUPPLICANT_CONFIG, $returnval ); + if( $returnval == 0 ) { + $status->addMessage('Wifi settings updated successfully', 'success'); + } else { + $status->addMessage('Wifi settings failed to be updated', 'danger'); + } + } elseif( isset($_POST['Scan']) ) { + $return = ''; + exec( 'sudo wpa_cli scan',$return ); + sleep(3); + exec( 'sudo wpa_cli scan_results',$return ); + for( $shift = 0; $shift < 4; $shift++ ) { + array_shift($return); + } + // display output + foreach( $return as $network ) { + $arrNetwork = preg_split("/[\t]+/",$network); + $scanned_networks[] = array( + 'bssid' => $arrNetwork[0], + 'channel' => ConvertToChannel($arrNetwork[1]), + 'signal' => $arrNetwork[2] . " dBm", + 'security' => ConvertToSecurity($arrNetwork[3]), + 'ssid' => $arrNetwork[4] + ); + } + echo ''; + } + + // default action, output configured network(s) + exec(' sudo cat ' . RASPI_WPA_SUPPLICANT_CONFIG, $supplicant_return); + $ssid = array(); + $psk = array(); + + foreach($supplicant_return as $a) { + if(preg_match('/SSID/i',$a)) { + $arrssid = explode("=",$a); + $ssid[] = str_replace('"','',$arrssid[1]); + } + if(preg_match('/psk/i',$a)) { + $arrpsk = explode("=",$a); + $psk[] = str_replace('"','',$arrpsk[1]); + } + } + + $numSSIDs = count($ssid); ?> + +
-
-
Configure client -
- -
- -

Client settings

+
+
Configure client
+ +
+

showMessages(); ?>

+

Client settings

- + +
+
+
+ + + +
+
+

Networks found

+
+ + + + + + + + + + + + + + + + + + + + + +
SSIDChannelSignalSecurity
+
+ +
+
- $config = 'ctrl_interface=DIR='. RASPI_WPA_CTRL_INTERFACE .' GROUP=netdev -update_config=1 -'; - $networks = $_POST['Networks']; - for( $x = 0; $x < $networks; $x++ ) { - $network = ''; - $ssid = escapeshellarg( $_POST['ssid'.$x] ); - $psk = escapeshellarg( $_POST['psk'.$x] ); - - if ( strlen($psk) >2 ) { - exec( 'wpa_passphrase '.$ssid. ' ' . $psk,$network ); - foreach($network as $b) { - $config .= "$b -"; - } - } - } - exec( "echo '$config' > /tmp/wifidata", $return ); - system( 'sudo cp /tmp/wifidata ' . RASPI_WPA_SUPPLICANT_CONFIG, $returnval ); - if( $returnval == 0 ) { - echo '
Wifi settings updated successfully -
'; - } else { - echo '
Wifi settings failed to be updated -
'; - } - - // scan networks - } elseif( isset($_POST['Scan']) ) { - $return = ''; - exec( 'sudo wpa_cli scan',$return ); - sleep(3); - exec( 'sudo wpa_cli scan_results',$return ); - for( $shift = 0; $shift < 4; $shift++ ) { - array_shift($return); - } - // display output - echo '
'; - echo '
'; - echo '

Networks found

'; - echo ''; - foreach( $return as $network ) { - $arrNetwork = preg_split("/[\t]+/",$network); - $bssid = $arrNetwork[0]; - $channel = ConvertToChannel($arrNetwork[1]); - $signal = $arrNetwork[2] . " dBm"; - $security = $arrNetwork[3]; - $ssid = $arrNetwork[4]; - echo '"; - } - echo '
SSIDChannelSignalSecurity
' . $ssid . " " . $channel . "" . $signal . "". ConvertToSecurity($security) ."
'; - - } else { - - // default action, output configured network(s) - exec(' sudo cat ' . RASPI_WPA_SUPPLICANT_CONFIG, $return); - $ssid = array(); - $psk = array(); - - foreach($return as $a) { - if(preg_match('/SSID/i',$a)) { - $arrssid = explode("=",$a); - $ssid[] = str_replace('"','',$arrssid[1]); - } - if(preg_match('/psk/i',$a)) { - $arrpsk = explode("=",$a); - $psk[] = str_replace('"','',$arrpsk[1]); - } - } - - $numSSIDs = count($ssid); - $output = '
'; - - if ( $numSSIDs > 0 ) { - for( $ssids = 0; $ssids < $numSSIDs; $ssids++ ) { - $output .= '
-
-
-
-
'; - } - $output .= '
'; - } else { - $status = '
Not connected -
'; - } - $output .= '
'; - $output .= ''; - echo $output; - } - ?> - - +
+
+
+ +
+ +
+
+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+ +
+
+
+ + + + +
+
+ +
-
+