PHP Выводим данный из MySQL базы c разделением по страницам

И так, как же разбить выводимую из MySQL информацию на несколько страниц, проще всего, это показать на конкретном примере.

Пускай у нас есть MySQL таблица с название clients и содержит она 92 записи вида:

Name — varchar(250)
Phone — varchar(250)

Предположим что мы хотим выводить по 20 строк на каждую страницу, то есть у нас должно получиться всего 5 страниц. Это значит что при создании SQL запроса, мы должны использовать LIMIT. Это позволит нам выводить необходимые количество страниц начиная с определенного номера записи. Вот как будет выглядеть запрос:

$sql = «SELECT * FROM clients ORDER BY name ASC LIMIT 0, 20»;

Данная запрос выдаст нам 20 записей начиная с первой по сортированных по имени(name).

$sql = «SELECT * FROM clients ORDER BY name ASC LIMIT 50, 20»;

а этот покажет 20 записей начиная с 50, так же сортированных по имени(name).

То есть, все что нам необходимо это определить количество записей, затем разделить это количество на наше число выводимых строк на странице, в нашем случаи это 20, и округлить вверх, таким образом мы получим число страниц.

Но, начнем мы с формирования запроса и вывода результатов в табличку, назовем этот файл pageshow.php:

Читать продолжении статьи: PHP Выводим данный из MySQL базы c разделением по страницам »


Количество просмотров :9299

Настройка Iptables для Transparent Proxy

Собственно говоря, ничего сложного в этом всем нет, нам необходимо пробросить весь входящий в 80 порт трафик на внутреннем интерфейсе в порт прокси, например 3128. Есть два способа, первый это при помощи DNAT, он удобен в том случаи если шлюз сети и прокси сервер это у вас разные компьютеры и прокси сервер находиться в сети со рядовыми пользователями. Второй, при помощи REDIRECT, это если наша прокся и шлюз это один и то же сервер. В первом случаи  нам необходимо сделать 3 записи в iptables, первая пробрасывает весь трафик идущий на порт 80 исключая трафик от squid-box(сервер squid) в порт 3128 squid-box. Вторая включает NAT трансляцию для squid-box на нашем шлюзе iptables-box. И последняя разрешает форврадинг пакетов идущих на порт 3128 из локальной сети local-network в squid-box

iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp —dport 80 -j DNAT —to squid-box:3128
iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT —to iptables-box
iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp —dport 3128 -j ACCEPT

Если же у нас ситуация такая, что шлюз и прокси сервер это один и тот же сервер, то достаточно будет простого редиректа:

iptables -A PREROUTING -t nat -i eth0 -p tcp —dport 80 -j REDIRECT —to-port 3128

 


Количество просмотров :64992

Bash скрипт показывающий звездочки во время выполнения команды

Сложное какое-то название получилось, но похоже по другому никак, в общем, это небольшой скрипт, который каждую секунду показывает звездочку «*», до тех пор пока указанный в скрипте процесс не будет завершен. Как пример, вы запускаете какой-то процесс, который может долго выполняться и при этом не выводит никакой информации на экран, то поместив этот процесс в данный скрипт во время выполнения скрипта вы каждую секунду будете видеть звездочку, как минимум вы будете знать, что ваш компьютер работает.

#!/bin/bash
#
# Timer Script with "*"
timer() {
# "while sleep 1" здесь мы можем поменять частоту появления звездочек
# '* 'можно поменять звездочку на какой либо другой знак
while sleep 1; do echo -n '* ' >&2; done
}
timer &
timer_pid=$!
<Запускаймая нами программа или скрипт>
kill $timer_pid



Количество просмотров :4503

Редирект на другую страницу с таймером

Ну, и вдогонку к предыдущему посту, небольшой Java скрипт для ридеректа на другую страницу с таймером.

Сам скрипт расположите в <head>:

<script language='JavaScript'>
var time = 15; //How long (in seconds) to countdown
var page = "yourpage.htm"; //The page to redirect to
function countDown(){
time--;
gett("container").innerHTML = time;
if(time == -1){
window.location = page;
}
}
function gett(id){
if(document.getElementById) return document.getElementById(id);
if(document.all) return document.all.id;
if(document.layers) return document.layers.id;
if(window.opera) return window.opera.id;
}
function init(){
if(gett('container')){
setInterval(countDown, 1000);
gett("container").innerHTML = time;
}
else{
setTimeout(init, 50);
}
}
document.onload = init();
</SCRIPT>

И в <body> используйте :

<span id='container'></span>



Количество просмотров :9920

PhP авторизация через LDAP

Возникла у меня необходимость в аутентификации через LDAP, да еще и в PhP реализации. Основными условиями было проверка логина и пароля пользователя, плюс он должен был быть в определенной группе в AD. Если оба условия выполняются, то дается доступ к определенному контенту. Вот к чему я пришел:

Читать продолжении статьи: PhP авторизация через LDAP »


Количество просмотров :53720

Полноэкранный оконный менеджер Screen для Linux

Очень часто бывает так, что из за обрыва ssh сессии вы можете потерять все наработки сделанные на сервере. Но, есть способ сохранить нервы, для этого необходимо использовать утилитку Screen.

Основные возможности Screen, это логирование, многооконность и поддержка сессий при работе с удаленным сервером через ssh.

Начнем с установки:

yum install screen

После чего просто запустите команду:

screen

Читать продолжении статьи: Полноэкранный оконный менеджер Screen для Linux »


Количество просмотров :2461

Сброс настроек TCP/IP на исходные в Windows XP и Windows Server 2003 SP2

Иногда, криво установленные драйвера или злобные вирусы могут создать проблемы с TCP/IP и Winsock. Для того что бы сбросить параметры на исходные, необходимо выполнить две команды:

netsh winsock reset
netsh int ip reset %temp%\reset.log

Затем перезапустить компьютер.


Количество просмотров :3995

Yum и apt-get через прокси сервер

Простые вещи, но их как раз таки и проще всего забыть. 

Yum через прокси.
Редактируем фаил /etc/yum.conf. Добавляем туда:

proxy=http://172.16.1.1:8080
proxy_username=username
proxy_password=password

Где 172.16.1.1:8080 адрес прокси сервера, proxy_username, proxy_password — логин и пароль соответственно. Если для доступа к прокси серверу не требуется аутентификация, то вы можете добавить только одну строку:

proxy=http://172.16.1.1:8080

Apt-get через прокси.
В директории apt необходимо создать файл proxy и добавить туда следующее:

cat << END >> /etc/apt/apt.conf.d/proxy
Acquire::http::Proxy «http://user:pass@172.16.1.1:8080/»;
Acquire::ftp::Proxy «ftp://user:pass@172.16.1.1:8080/»;
Acquire::http::Timeout «120»;
END

Соответственно, если пароля и логина нет, то:

cat << END >> /etc/apt/apt.conf.d/proxy
Acquire::http::Proxy «http://172.16.1.1:8080/»;
Acquire::ftp::Proxy «ftp://172.16.1.1:8080/»;
Acquire::http::Timeout «120»;
END

Количество просмотров :19926

Web интерфейс для транспорта Postfix

В общем, надоело мне добавлять в транспорт пользователей руками, а лень, как известно это двигатель прогресса, поэтому, я решил написать небольшой Web UI. Выглядит он очень простенько, позволяет добавлять или удалять записи и выводит те, который уже есть в базе. Естественно, таблица транспорта должна быть в MySQL.

Если вам нужен интерфейс для управления Postfix-ом, обратите свое внимание на PostfixAdmin

Читать продолжении статьи: Web интерфейс для транспорта Postfix »


Количество просмотров :10100

Настройка OpenVPN. Бридж между двумя локальными сетями

Очень хорошая статья, когда-то сохранил ее себе и похоже не зря, изначально, она была взята отсюда, но, сейчас ее там к сожалению нет. Поэтому, я решил опубликовать ее на своем сайте.

Читать продолжении статьи: Настройка OpenVPN. Бридж между двумя локальными сетями »


Количество просмотров :13033