- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Помогите с PHP скриптом, нужно реализовать запись в определённую строку (253). Сейчас записывается в конец файла.
<?php
//Авто бан людей который хотят попасть в админку admin.php
$ip = getenv ("REMOTE_ADDR");
$log = fopen("banip.txt", "a+");
fwrite($log, "// ".$ip."\n");
fclose($log);
$f = fopen($_SERVER['DOCUMENT_ROOT'] . '/.htaccess', "a");
fwrite($f, "\n");
fwrite($f, '<files ~ "(admin|12312426)\.php">');
fwrite($f, "\ndeny from " . $ip);
fwrite($f, "\n</files>");
fclose($f);
echo <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DataLife Engine - Панель управления</title>
<meta content="text/html; charset=windows-1251" http-equiv="content-type" />
<style type="text/css">
html,body{
width:100%;
margin:0px;
padding: 0px;
background: #F4F3EE;
font-size: 11px;
font-family: verdana;
}
#login-box {
width:447px;
height:377px;
margin:10% auto 0 auto;
background:#FFFFFF;
}
form {
margin:0px;
padding: 0px;
}
input,
select {
color: #000000;
outline:none;
}
input[type="text"],
input[type="password"],
select {
width:340px;
background-color: #FFFFFF;
color: #000000;
font-size: 18px;
font-family: verdana;
font-weight: bold;
border: none;
margin-top: 20px;
margin-left: 60px;
}
input[type="checkbox"] {
padding:0px;
margin-top: 25px;
}
label {
padding:0px;
margin:0px;
}
.error {
padding-top: 75px;
padding-left: 27px;
}
</style>
</head>
<body>
<form name="login" action="" method="post"><input type="hidden" name="subaction" value="dologin">
<div id="login-box">
<div style="width:447px;height:95px;background: url(engine/skins/images/loginheader.png);"><a href="http://dle-news.ru/" style="display:block; float:right;width:90px;height:90px;" target="_blank"></a><div class="error"></div></div>
<div style="width:447px;height:66px;background: url(engine/skins/images/loginbox1.png);"><input type="text" name="username"></div>
<div style="width:447px;height:67px;background: url(engine/skins/images/loginbox3.png);"><input type="password" name="password"></div>
<div style="width:447px;height:67px;background: url(engine/skins/images/loginbox4.png);"><select name="selected_language">
<option value="Russian" selected >Russian</option>
</select></div>
<div style="width:37px;height:82px;float:left;background: url(engine/skins/images/loginbox6.png);"></div>
<div style="width:283px;height:82px;float:left;background: url(engine/skins/images/loginbox7.png);"><input type="checkbox" name="login_not_save" id="login_not_save" value="1"/><label for="login_not_save"> Чужой компьютер</label></div>
<div style="width:102px;height:82px;float:left;"><input type="image" src="engine/skins/images/loginbox8.png"></div>
<div style="width:25px;height:82px;float:right;background: url(engine/skins/images/loginbox5.png);"></div>
</div></form>
</body>
</html>
HTML;
?>
$fcontents = implode ('', file('banip.txt')); // считали файл в массив
// тут откроем для записи файл или что-то еще сделаем
$log = fopen("banip.txt", "w+");
foreach($fcontents as $k=>$v){
if($k ==252) {
fwrite($log, "// ".$ip."\n");
}
fwrite($log, "// ".$v."\n");
}
fclose($log);
Написано на коленке, при кривом исполнении файл можно потерять, лучше через копию делать, но принцип примерно такой
$fcontents = implode ('', file('banip.txt')); // считали файл в массив
// тут откроем для записи файл или что-то еще сделаем
$log = fopen("banip.txt", "w+");
foreach($fcontents as $k=>$v){
if($k ==252) {
fwrite($log, "// ".$ip."\n");
}
fwrite($log, "// ".$v."\n");
}
fclose($log);
Написано на коленке, при кривом исполнении файл можно потерять, лучше через копию делать, но принцип примерно такой
Не работает
Не работает
Вообще не работает? )))) Ничего не происходит? ))))
$ip = getenv ("REMOTE_ADDR"); включил в код?
Вообще не работает? )))) Ничего не происходит? ))))
$ip = getenv ("REMOTE_ADDR"); включил в код?
Да, при запуске скрипта файл полностью отчищается. Так быть не должно))
$fcontents = implode ('', file('banip.txt')); // считали файл в массив
// тут откроем для записи файл или что-то еще сделаем
$log = fopen("banip.txt", "w+");
foreach($fcontents as $k=>$v){
if($k ==252) {
fwrite($log, "// ".$ip."\n");
}
fwrite($log, "// ".$v."\n");
}
fclose($log);
Написано на коленке, при кривом исполнении файл можно потерять, лучше через копию делать, но принцип примерно такой
А зачем тут implode? При помощи file() получаем массив, по индексу заменяем элемент.
А зачем тут implode? При помощи file() получаем массив, по индексу заменяем элемент.
Это я неудачно скопипастил ))) конечно без имплод, он вытягивает весь файл в строку.
---------- Добавлено 07.07.2015 в 20:05 ----------
И как этот код вставит айпи адрес в 253 строку?
Так как сделать чтобы писало в 253 строку?
реализовать запись в определённую строку (253)
берём файл ('.htaccess' || "banip.txt") и кладем данные в массив построчно
берем 223-ю строку $content[252] (потому как массив начинается с 0)
НО! этот способ с работает верно если строка - deny from IP IP IP, всегда будет 253
иначе и правильнее, прочитать и парсить нужную строку в '.htaccess' или "banip.txt" с помощью preg_match()
затем изменять и перезаписывать .htaccess
а это уж немного другой вопрос и код..
P.S. код на странице закомментировать
Собственно.. как говориться "Не зная брода, не лезь в воду"..
это я к тому что выше приведен код в котором нет строки 253,
но есть код который добавляет в конец файла .htaccess директивы доступа к файлу (admin|12312426)\.php c указанных IP..
..и код записи в "banip.txt"
а это только половина информации..
нужная для изменяемая строка находится в файле ('.htaccess' || "banip.txt")
фрагмент которого с 253-й строкой отсутствует в посте..
поэтому более точно угадать не просто.
берём файл '.htaccess' и кладем данные в массив построчно
берем нужную строку $content[252] (потому как массив начинается с 0)
НО! этот способ с работает верно если строка - deny from IP IP IP, всегда будет 253
иначе и правильнее, прочитать и парсить нужную строку в .htaccess с помощью preg_match()
затем изменять и перезаписывать .htaccess
а это уж немного другой вопрос и код..
P.S. код на странице закомментировать
Собственно.. как говориться "Не зная брода, не лезь в воду"..
это я к тому что выше приведен код в котором нет строки 253, но есть код который добавляет в конец файла .htaccess
директивы доступа к файлу (admin|12312426)\.php c указанных IP..
а это половина информации..
нужная для изменяемая строка 253 находится в файле .htaccess код которого отсутствует..
поэтому более точно ответить не просто.
Спасибо огромное, всё работает как надо