Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $hostapd = '/etc/hostapd/hostapd.conf';
- if (!empty($_POST)) /*Чекаем наличие переданных данных из формы посредством POST, если не пусто запускаем скрипт, если пусто то переходим к else */
- {
- exec("cat ".$hostapd, $config); /*считываем текущий конфиг hostapd.conf в массив $config*/
- $config[3] = "ssid=".$_POST[ssid]; /* здесь и далее - заменяем параметры в массиве $config на данные полученные из формы */
- $config[4] = "hw_mode=".$_POST[hw_mode];
- $config[5] = "channel=".$_POST[channel];
- $config[13] = "wpa_passphrase=".$_POST[pass];
- $i = 0;
- exec ("sudo rm ".$hostapd); /* удаляем существующий конфигурационный файл */
- while ($i <= count($config)) { /*Цикл построчной записи конфига из массива $config в hostapd.conf*/
- $write[$i] = "echo '".$config[$i]."' | sudo tee -a ".$hostapd;
- exec ($write[$i]);
- $i++;
- }
- header('Location: /settings');
- }
- else {
- echo "<html><head><style>table { border-spacing: 0; } tr, td { border: 1px solid #000; padding: 1em 1em;}</style><title>Server</title></head><body>";
- include '../nav.php';
- exec ("cat ".$hostapd, $config); /*считываем текущий конфиг hostapd.conf в массив $config*/
- $ssid = explode ("=",$config[3]); /*разбиваем строку конфига на массив ('Имя параметра', 'Значение') по разделителю "="*/
- $hw_mode = explode ("=",$config[4]);
- $channel = explode ("=",$config[5]);
- $pass = explode ("=", $config[13]);
- echo "<form method='post'><br><table><tr>"; /*начало формы передающей данные методом post*/
- echo "<td><b>Имя сети (SSID):</b></td><td><input maxlength='25' size='40' name='ssid' value=".$ssid[1]."></td></tr>";
- echo "<tr><td><b>Пароль:</b></td><td><input type='password' maxlength='25' size='40' name='pass' value=".$pass[1]."></td></tr>";
- echo "<tr><td><b>Режим сети</b></td><td>";
- if ($hw_mode[1] == "g") {
- echo "<select name='hw_mode'><option value='a'>a (5 GHz)</option><option value='g' selected>g (2.4 GHz)</option></select></td></tr>";
- }
- else {
- echo "<select name='hw_mode'><option value='a' selected>a (5 GHz)</option><option value='g'>g (2.4 GHz)</option></select></td></tr>";
- }
- echo "<tr><td><b>Канал сети:</b></td><td><select name='channel'>";
- $i = 1;
- while ($i <= 11) { /* Цикл формирующий поле со списком номеров каналов, с выставлением текущего значения в конфиге как выбранное */
- echo "<option value='".$i;
- if ($channel[1] == $i)
- echo "' selected>".$i."</option>";
- else
- echo "'>".$i."</option>";
- $i++;
- }
- echo "</select></td></tr>";
- echo "<tr><td colspan='2'><button type='submit'>Сохранить изменения</button></td></tr></table></form>";
- }
- echo "</body></html>";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement