Advertisement
Black_Lava

php - wifi settings

Nov 29th, 2020 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.11 KB | None | 0 0
  1. <?php
  2. $hostapd = '/etc/hostapd/hostapd.conf';
  3. if (!empty($_POST)) /*Чекаем наличие переданных данных из формы посредством POST, если не пусто запускаем скрипт, если пусто то переходим к else */
  4. {
  5.         exec("cat ".$hostapd, $config); /*считываем текущий конфиг hostapd.conf в массив $config*/
  6.         $config[3] = "ssid=".$_POST[ssid]; /* здесь и далее - заменяем параметры в массиве $config на данные полученные из формы */
  7.         $config[4] = "hw_mode=".$_POST[hw_mode];
  8.         $config[5] = "channel=".$_POST[channel];
  9.         $config[13] = "wpa_passphrase=".$_POST[pass];
  10.         $i = 0;
  11.         exec ("sudo rm ".$hostapd); /* удаляем существующий конфигурационный файл */
  12.         while ($i <= count($config)) { /*Цикл построчной записи конфига из массива $config в hostapd.conf*/
  13.             $write[$i] = "echo '".$config[$i]."' | sudo tee -a ".$hostapd;
  14.             exec ($write[$i]);
  15.             $i++;
  16.         }
  17.         header('Location: /settings');
  18. }
  19. else {
  20.     echo "<html><head><style>table { border-spacing: 0; } tr, td { border: 1px solid #000; padding: 1em 1em;}</style><title>Server</title></head><body>";
  21.     include '../nav.php';
  22.     exec ("cat ".$hostapd, $config); /*считываем текущий конфиг hostapd.conf в массив $config*/
  23.     $ssid = explode ("=",$config[3]); /*разбиваем строку конфига на массив ('Имя параметра', 'Значение') по разделителю "="*/
  24.     $hw_mode = explode ("=",$config[4]);
  25.     $channel = explode ("=",$config[5]);
  26.     $pass = explode ("=", $config[13]);
  27.     echo "<form method='post'><br><table><tr>"; /*начало формы передающей данные методом post*/
  28.     echo "<td><b>Имя сети (SSID):</b></td><td><input maxlength='25' size='40' name='ssid' value=".$ssid[1]."></td></tr>";
  29.     echo "<tr><td><b>Пароль:</b></td><td><input type='password' maxlength='25' size='40' name='pass' value=".$pass[1]."></td></tr>";
  30.     echo "<tr><td><b>Режим сети</b></td><td>";
  31.     if ($hw_mode[1] == "g") {
  32.         echo "<select name='hw_mode'><option value='a'>a (5 GHz)</option><option value='g' selected>g (2.4 GHz)</option></select></td></tr>";
  33.     }
  34.     else {
  35.         echo "<select name='hw_mode'><option value='a' selected>a (5 GHz)</option><option value='g'>g (2.4 GHz)</option></select></td></tr>";
  36.     }
  37.     echo "<tr><td><b>Канал сети:</b></td><td><select name='channel'>";
  38.         $i = 1;
  39.         while ($i <= 11) { /* Цикл формирующий поле со списком номеров каналов, с выставлением текущего значения в конфиге как выбранное */
  40.             echo "<option value='".$i;
  41.             if ($channel[1] == $i)
  42.                 echo "' selected>".$i."</option>";
  43.             else
  44.                 echo "'>".$i."</option>";
  45.             $i++;
  46.         }
  47.     echo "</select></td></tr>";
  48.     echo "<tr><td colspan='2'><button type='submit'>Сохранить изменения</button></td></tr></table></form>";
  49. }
  50. echo "</body></html>";
  51. ?>
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement