→ Безотрадный reg php language alias. Apache

Безотрадный reg php language alias. Apache

Типичная ситуация: HTTP-клиент запрашивает с сервера контент, который либо не существует на данном сервере, либо располагается по другому URL. Причин такому стечению обстоятельств может быть несколько. Вы, например, могли переместить контент в пределах сервера (а то и вообще за его пределы) или же вам понадобилось реорганизовать логическую структуру адресов вашего проекта. При обычных условиях запрос несуществующего контента приведёт к тому, что сервер сообщит об ошибке, однако в Apache имеется полезный модуль mod_alias , предоставляющий возможность создавать синонимы URL (aliasing — алиасинг ), а также выполнять перенаправление клиентов на другой URL (redirect — редирект ).

Псевдонимы (алиасы) позволяют серверу преобразовывать один URL в другой, таким образом перенаправляя клиентов на нужный контент, при этом без физической операции перенаправления: для клиента подобная операция совершенно прозрачна. Это очень полезная возможность, если, например, вы задумали очеловечить URL-адреса страниц вашего проекта с целью SEO-оптимизации или ещё зачем-то.

При помощи алиасов вы также можете организовать доступ к файлам, находящимся за пределами Document Root сервера, таким образом предоставив прямой доступ к любой части ФС сервера, не прибегая к использованию CGI-сценариев. Используя редирект, вы получаете возможность физически перенаправлять клиентов на нужные URL.

Директива Alias

Директива Alias позволяет незаметно для клиентов связывать запрашиваемые URL с любой частью файловой системы сервера. Например:

Директива в примере выше приведёт к тому, что Apache перед тем, как выполнять поиск контента в файловой системе, в строке запроса заменит /images/ на /ftp/public/images/ . Таким образом запрос URL http://www.example-domain.com/images/example-image.jpg заставит искать Apache файл example-image.jpg в физическом каталоге /ftp/public/images/ вместо каталога DOCUMENT_ROOT/images .

Обратите внимание на то, что завершающий слеш имеет значение. Приведённый выше пример не сработал бы, если б мы опустили завершающий слеш в первом параметре Alias . Также, алиасинг не сработал бы в случае, если бы клиент запросил URL, в котором после /images отсутствовал завершающий слеш.

Директива AliasMatch

Директива AliasMatch работает так же, как и Alias, при этом позволяя использовать регулярные выражения для определения исходных URL:

AliasMatch /images/(.*)$ /ftp/public/images/$1

В этом примере показано, как мы можете легко связать относительную часть запрашиваемого URL с частью физической файловой системы. Переменная $1 связана с первым соответствием, обнаруженным в скобках регулярного выражения, $2 — со вторым, и так далее. Таким образом, в примере выше, запрос URL http://www.example-site.com/some_dir/images/img1.jpg приведёт к получению файла /ftp/public/images/img1.jpg . Используя эту директиву вы можете, например, хранить все изображения в одном дереве каталогов, независимо от относительного положения подстроки /images/ в строке запроса.

Существенной разницей между Alias и AliasMatch является их поведение. Разница заключается в том, что Alias копирует оставшуюся часть строки запроса после вычитания из неё первого параметра директивы, в то время как AliasMatch — нет. То есть:

Alias /images/ /ftp/public/images/

совершенно не эквивалентна

AliasMatch /images/ /ftp/public/images/

поскольку вторая будет транслировать все запросы, содержащие подстроку /images/ к каталогу /ftp/public/images/ , не добавляя при перезаписи имён файлов. Чтобы получить то, что нужно, вам понадобится следующая инструкция:

AliasMatch ^/images/(.*)$ /ftp/public/images/$1

Директива ScriptAlias

Назначение этой директивы такое же, как и Alias , однако при этом Apache считает конечный каталог таким, который хранит исполняемые CGI-сценарии. То есть после трансляции запроса и определения конечного пути запрашиваемого файла, Apache попытается выполнить последний, как CGI-сценарий.

ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/

В приведённом примере запрос http://www.example-site.com/cgi-bin/some_cgi_script приведёт к выполнению сценария, расположенного в файле /usr/local/apache2/cgi-bin/some_cgi_script . Альтернативный вариант такой конфигурации можно можно описать следующим набором инструкций:

Alias /cgi-bin/ /usr/local/apache2/cgi-bin/ SetHandler cgi-script Options +ExecCGI

Директива ScriptAliasMatch

Данная директива аналогична предыдущей, однако умеет работать с регулярными выражениями, как и AliasMatch .

Директива Redirect

mod_alias ко всему прочему позволяет явно сообщать клиентам о том, что запрошенный ими URL является некорректным, сообщая другой URL, по которому можно отыскать требуемый контент. Для управления такими перенаправлениями используется директива Redirect .

Эта директива работает подобно Alias , только вместо того, чтобы выполнять перенаправление внутри сервера, она отправляет команду перенаправления клиенту. Опциональным параметром директивы является тип перенаправления, сообщаемый клиенту кодом HTTP-статуса ответа (об этом чуть ниже).

Redirect permanent /images http://www.another-example-site.com/images

В приведённом примере запрос URL http://www.example-site.com/images/img1.gif приведёт к перенапрвлению на http://www.another-example-site.com/images/img1.gif .

Если запрашиваемый URL содержит query string , то она будет оставлена без изменений, только если это явно не определно последним параметром директивы Redirect .

Например, правило, рассмотренное выше, запрос URL http://www.example-site.com/images?img-name=1.gif перенаправит к http://www.another-example-site.com/images?img-name=1.gif . Однако, если мы перепишем правило следующим образом:

Redirect permanent /images http://www.another-example-site.com/images?q=new-value

то тот же запрос будет перенаправлен на http://www.another-example-site.com/images?q=new-value .

Теперь о типах перенаправления. Для того, чтобы сообщить клиенту о необходимости перенаправления на другой URL, сервер использует HTTP статус-коды . При помощи директивы Redirect можно определить один из четырёх HTTP-кодов перенаправления (в скобках указано символическое имя, которое можно использовать вместо номера кода).

301 (permanent) . Ресурс переехал на новый адрес. Клиенты и прокси-серверы должны обновить информацию в своих кешах (только если HTTP-заголовки Cache-Control и Expires не препятствуют этому) и в будущем всегда использовать новый адрес ресурса.

302 (temp) . Адрес ресурса временно изменён. Клиенты и прокси-серверы НЕ должны обновлять информацию в своём кеше и в будущем всегда проверять предыдущий адрес ресурса, прежде чем выполнять перенаправление (только если HTTP-заголовки Cache-Control и Expires не препятствуют этому).

303 (seeother) . Ресурс был замещён другим ресурсом и клиент должен выполнить перенаправление, используя метод GET, независимо от того, какой метод использовался для запроса оригинального ресурса.

410 (gone) . Ресурс был удалён и более недоступен.

Если статус-аргумент будет опущен, то по умолчанию будет использоваться 302-редирект. На самом деле вы можете использовать любой HTTP-статус, а не только четыре из представленных выше. Помните только, что если вы используете HTTP-статус, не попадающий в диапазон 300-399, последний аргумент директивы должен быть опущен.

Директива RedirectMatch

Эта директива, как уже все догадались, работает подобно предыдущей, но позволяет пользоваться регулярными выражениями при определении условий, предоставляя больше гибкости в настройке поведения редиректа. Ради примера давайте рассмотрим следующее правило:

RedirectMatch (.*)\.gif$ http://www.example-site.com$1.gif

Здесь все запросы адресов, оканчивающихся.gif , будут перенаправлены в корень другого сервера.

Так же, как и предыдущая директва, RedirectMatch принимает опциональный параметр HTTP статус-кода. В примере выше он не указан, и поэтому будет использоваться код 302.

Также, в семействе Redirect* есть ещё две директивы: RedirectPermanent и RedirectTemp , которые семантически эквиваленты выражениям Redirect permanent и Redirect temp соответственно.

Порядок обработки директив

Если вы не хотите получить неожиданного поведения сервера при работе с редиректом и алиасингом, вы должны знать о том, что инструкции редиректа обрабатываются перед инструкциями алиасинга , если они были одновременно обнаружены в одном и том же контексте (например в пределах оного и того же контейнера или ).

Когда сервер получает запрос, подходящий под условие Redirect или RedirectMatch , то инструкции этих директив будут обработаны прежде, чем инструкции директив Alias и AliasMatch . Это означает то, что в подобных ситуациях директивы Alias* никогда не будут срабатывать, поскольку будет выпоняться редирект.

Второй момент, о котором всегда всегда помнить, это то, что директивы Alias* и Redirect* применяются в том порядке, в котором они появляются . По этой причине зачастую более разумно определять более общие правила в последнюю очередь. Например инструкции:

Alias /sub-dir1/sub-dir2 /dir3 Alias /sub-dir1 /dir4

НЕ будут работать так же, как и:

Alias /sub-dir1 /dir4 Alias /sub-dir1/sub-dir2 /dir3

поскольку Alias /sub-dir1 /dir4 будет срабатывать всегда до того, как дойдёт очередь до Alias /sub-dir1/sub-dir2 /dir3 .

  • Перевод

Bash-алиасы («псевдонимы») - это ярлыки к файлам, позволяющие ссылаться на другую команду через более запоминающиеся слова, сокращения или символы. Например, если вы используете Git, вы можете запускать git-статус много раз в течение дня, поэтому, чтобы сэкономить время и количество нажатий клавиш, вы можете присвоить ему алиас, который вызовет правильную команду.

Я видел много необычных псевдонимов за эти годы, и многие из них уникальны для человека. Ярлыки, имеющие смысл для одного, могут совершенно запутать другого. Вот что их делает такими забавными.

Nah="git reset --hard;git clean -df"
Это реально продемонстрировать: представьте что начали работать над новой функцией и, возможно, добавили несколько новых файлов, а после обеда решили, что все сделали неверно. Запустив команду " nah ", вы вернете код к предыдущему состоянию, удалив все внесенные изменения. Это очень удобно и полезно!

Как создать собственные алиасы Для тех, кто не создает псевдонимы bash, процесс довольно прост. Вначале текстовым редактором откройте файл ~/.bashrc , находящийся в вашем домашнем каталоге. Затем раскомментируйте или добавьте следующие строки:

If [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Команда как бы говорит о необходимости загрузке файла ~/.bash_aliases , если он существует, поэтому вы можете помещать в него все свои алиасы (псевдонимы) и облегчать их совместное использование. Наконец, создайте файл ~/.bash_aliases и добавьте следующее в качестве своего первого псевдонима:

Alias art="php artisan"
Сохраните изменения и выполните в терминале команду:

Source ~/.bashrc
Теперь вы имеете возможность использовать алиас " art ".

Просто помните, что каждый раз после изменения файла ~/.bash_aliases вам необходимо запускать эту команду, либо перезапустить терминал для применения изменений.

Псевдонимы для Laravel от сообщества Ниже приведен список алиасов, использующихся сообществом Laravel:WaveHack # Laravel artisan() { if [ -f bin/artisan ]; then php bin/artisan "$@" else php artisan "$@" fi } alias serve="artisan serve" alias tinker="artisan tinker" # Misc PHP t() { if [ -f vendor/bin/phpunit ]; then vendor/bin/phpunit "$@" else phpunit "$@" fi } bmadigan nah="git reset --hard;git clean -df" vm="ssh [email protected] -p 2222" Tainmar pa="php artisan" Mohamed Said alias dracarys="git reset --hard && git clean -df" alias copyssh="pbcopy < $HOME/.ssh/id_rsa.pub" alias reloadcli="source $HOME/.zshrc" alias zshrc="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/.zshrc " alias shrug="echo "¯\_(ツ)_/¯" | pbcopy"; alias fight="echo "(ง"̀-"́)ง" | pbcopy"; *** This one opens a PR from the current branch function openpr() { br=`git branch | grep "*"` repo=$1 parentBranch=$2 open -a /Applications/Google\ Chrome.app https://github.com/${repo/* /}/compare/${parentBranch/* /}...themsaid:${br/* /}\?expand\=1 } Jeffrey Way alias gl="git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset" --abbrev-commit" alias wip="git add . && git commit -m "wip"" alias nah="git reset --hard && git clean -df" alias p="phpunit" alias pf="phpunit --filter " alias art="php artisan" alias migrate="php artisan migrate" Bill Mitchell alias a="php artisan" alias pu="vendor/bin/phpunit" alias puf="vendor/bin/phpunit --filter " alias pug="vendor/bin/phpunit --group " alias cdo="composer dump-autoload -o" alias serve="php artisan serve" Jesús Amieiro alias pa="php artisan" alias par:l="php artisan route:list" alias pam="php artisan migrate" alias pam:r="php artisan migrate:refresh" alias pam:rs="php artisan migrate:refresh --seed" alias cu="composer update" alias ci="composer install" alias cda="composer dump-autoload -o" alias vu="cd ~/Homestead && vagrant up" alias vs="vagrant suspend" alias vssh="vagrant ssh" Piotr alias artisan = "php artisan" alias db-reset="php artisan migrate:reset && php artisan migrate --seed" freekmurze alias a="php artisan" paulredmond alias _="sudo" alias art="php artisan" alias tinker="php artisan tinker" alias ll="ls -lh" alias la="ls -lAh" alias c="composer" alias iphp="psysh" # repl alias g="git" alias gs="git status" alias d="docker" alias dc="docker-compose" alias dm="docker-machine" alias k="kubectl" alias publicip="dig +short myip.opendns.com @resolver1.opendns.com" alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome" # Show file and folder permissions as octal # Usage: `octal file.txt` or `octal my/path` alias octal="stat -f "%A %a %N"" # Mac conveniences for Linux alias pbcopy="xclip -selection clipboard" alias pbpaste="xclip -selection clipboard -o" if type "xdg-open" &> /dev/null; then alias open="xdg-open" fi TJ Miller nah: aliased to git reset --hard && git clean -fd aa: aliased to php artisan sebastiaanluca # Hub (extend git commands) alias git=hub # Directories alias ll="ls -FGlAhp" alias ..="cd ../" alias ...="cd ../../" alias ....="cd ../../../" alias .....="cd ../../../../" alias df="df -h" alias diskusage="df" alias fu="du -ch" alias folderusage="fu" alias tfu="du -sh" alias totalfolderusage="tfu" alias finder="open -a "Finder" ." # Vagrant alias vagrantgo="vagrant up && vagrant ssh" alias vgo="vagrantgo" alias vhalt="vagrant halt" alias vreload="vagrant reload && vgo" # PHP alias c="composer" alias cr="composer require" alias cda="composer dumpautoload" alias co="composer outdated --direct" alias update-global-composer="cd ~/.composer && composer update" alias composer-update-global="update-global-composer" alias a="php artisan" alias pa="php artisan" alias phpa="php artisan" alias art="php artisan" alias arti="php artisan" alias test="vendor/bin/phpunit" alias y="yarn" alias yr="yarn run" # Homestead alias edithomestead="open -a "Visual Studio Code" ~/Homestead/Homestead.yaml" alias homesteadedit="edithomestead" alias dev-homestead="cd ~/Homestead && vgo" alias homestead-update="cd ~/Homestead && vagrant box update && git pull origin master" alias update-homestead="homestead-update" # Various alias editaliases="open -a "Visual Studio Code" ~/.bash_aliases" alias showpublickey="cat ~/.ssh/id_ed25519.pub" alias ip="curl icanhazip.com" alias localip="ifconfig | grep -Eo "inet (addr:)?(*\.){3}*" | grep -Eo "(*\.){3}*" | grep -v "127.0.0.1"" alias copy="rsync -avv --stats --human-readable --itemize-changes --progress --partial" # Functions mkcdir () { mkdir -p -- "$1" && cd -P -- "$1" } function homestead() { (cd ~/Homestead && vagrant $*) } Alexander Melihov alias ars="php artisan serve" alias art="php artisan tinker" jordonbaade alias l="php artisan" Deleu alias unit="php vendor/phpunit/phpunit/phpunit" alias unitreport="php -d xdebug.profiler_enable=On vendor/phpunit/phpunit/phpunit --coverage-html=./public/report" alias laravel-installer="composer create-project --prefer-dist laravel/laravel" curieuxmurray alias artisan="php artisan" alias cclear="php artisan cache:clear" # now with 5.5 alias fresh="artisan migrate:fresh --seed" wilburpowery alias pf="phpunit --filter" alias artisan="php artisan" alias tinker="php artisan tinker" waunakeesoccer1 alias mfs="php artisan migrate:fresh --seed" От переводчика Сам же я пользуюсь следующими алиасами:

Alias art="php artisan" alias da="composer dumpauto" alias migrate="php artisan migrate"

Алиасы в Windows В операционной системе Windows псевдонимы задаются при помощи команды doskey . Например:
doskey art=php artisan $*

Но есть одно «НО»: при последующем открытии командной строки Windows она «забудет» их. Исправить эту проблему очень легко.

Для удобства переходим в папку с Вашей учетной записью %USERPROFILE% и создаем в нем файл dos_aliases.bat .

Внутри файла прописываем нужные нам команды, например:

Doskey art=php artisan $*

«Доллар со звездочкой» дают алиасу понимание того, что ему могут быть переданы какие-либо аргументы и/или параметры, например, art -V для вывода версии ядра движка.

Далее, в стартовом меню найдем командную строку (cmd.exe), щелкнем по ней правой кнопкой мыши и создадим ярлык, сохранив его на рабочий стол. Далее по этому ярлыку щелкаем правой кнопкой мыши, выбрав «Свойства» в выпадающем меню (по-английски «Properties» или «Eigenschaften» по-немецки), затем в поле «Цель» («Target» по-английски, или «Ziel» по-немецки в зависимости от используемой локализации ОС), где видим строку %windir%\system32\cmd.exe , дописываем /k %USERPROFILE%\dos_aliases.bat . Таким образом, мы заставляем подгружать наш файл при каждом запуске командной строки, открывая ее по этому ярлыку.

Полностью строка будет выглядеть так:
%windir%\system32\cmd.exe /k %USERPROFILE%\dos_aliases.bat

После этого сохраняемся и запускаем командную строку используя отредактированный нами ярлык. Вуаля!

OpenServer Для тех, кто использует консоль из состава OpenServer, дела обстоят еще проще: конфигурация консоли хранится в файле %ConEmuBaseDir%\CmdInit.cmd .

Конечно, если ввести в путь, то операционная система будет ругаться. Это потому, что она не знает о существовании этого пути - он используется внутри окружения OpenServer дабы не захламлять систему.

Итак, нужный нам файл мы найдем в папке с установленным OpenServer: \modules\conemu\ConEmu\CmdInit.bat .

Открываем его текстовым редактором и в нижней части файла дописываем нашу команду:

Doskey art=php artisan $*

Сохраняем и запускаем консоль. Profit!

По аналогии можете добавить абсолютно любые команды, которые упростят Вам жизнь сократив время на их ввод.

Windows PowerShell Запускаем оболочку Windows PowerShell от имени администратора и проверяем права на запуск отдельных скриптов с расширением `ps1`, выполнив команду:

Get-ExecutionPolicy

По-умолчанию установлена политика `Restricted`, запрещающая выполнение любых скриптов. Мы заменим ее на `RemoteSigned`, разрешающую запускать все скрипты за исключением скачанных из сети:

Set-ExecutionPolicy RemoteSigned

New-Item -type file $PROFILE

В данном моменте возможно появление ошибки, так как в папке «Мои документы» не найдена директория "WindowsPowerShell " - создадим ее… да, вручную. После повторим команду.

Переходим в папку `%USERPROFILE%\Documents\WindowsPowerShell` и открываем файл `Microsoft.PowerShell_profile.ps1` текстовым редактором. В него мы и будем вписывать свои команды.

Во-первых, сразу прописал переход в нужный каталог:

Cd "f:\dev\domains\"

А ниже размещены такие алиасы, как:
art = php artisan migrate = php artisan migrate down = php artisan down up = php artisan up cclear = php artisan cache:clear da = composer dumpauto docup = docker-compose up -d nginx mysql redis beanstalkd docdown = docker-compose kill doc = docker-compose exec workspace bash

Для того чтобы в PowerShell задать команду с параметром, нужно использовать функцию, внутри которой и будут принимаемые аргументы передаваться дальше. Таким образом, алиас команды`art` в оболочке PowerShell принимает вид:

Function Call-Art { php artisan $args } New-Alias -Name art -Value Call-Art

И завершу статью полным списком своих алиасов в оболочке Windows PowerShell:

# Set Main Directory cd "f:\dev\domains\" # Artisan Commands. function Call-Art { php artisan $args } New-Alias -Name art -Value Call-Art # Run the database migrations. function Call-Art-Migrate { php artisan migrate } New-Alias -Name migrate -Value Call-Art-Migrate # Put the application into maintenance mode. function Call-Art-Down { php artisan down } New-Alias -Name down -Value Call-Art-Down # Bring the application out of maintenance mode. function Call-Art-Up { php artisan up } New-Alias -Name up -Value Call-Art-Up # Flush the application cache function Call-Art-Cache-Clear { php artisan cache:clear } New-Alias -Name cclear -Value Call-Art-Cache-Clear # Composer Dump-Autoload. function Call-Composer-Dump-Autoload { composer dumpauto } New-Alias -Name da -Value Call-Composer-Dump-Autoload # Start the Docker function Call-Start-Docker { docker-compose up -d nginx mysql redis beanstalkd } New-Alias -Name docup -Value Call-Start-Docker # Kill the Docker function Call-Kill-Docker { docker-compose kill } New-Alias -Name docdown -Value Call-Kill-Docker # Enter the Docker function Call-Enter-Docker { docker-compose exec workspace bash } New-Alias -Name doc -Value Call-Enter-Docker

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

Для того чтобы создать псевдоним (алиас) пути используется метод Yii::setAlias() :

// псевдоним пути к папке Yii::setAlias("@myalias", "/path/to/myfolder");
// псевдоним пути к папке на основе другого псевдонима Yii::setAlias("@img", "@myalias/path/to/img");
// псевдоним URL Yii::setAlias("@mysite", "http://mysite.com");

Псевдонимы путей в yii2 можно задать в файле конфигураций приложения с помощью свойства aliases , пример:

Return [ // ... "aliases" => [ "@myalias" => "/path/to/myfolder", "@mysite" => "http://mysite.com" ], ];

Как получить псевдоним (алиас) пути в Yii 2

Для того чтобы получить псевдоним пути в yii2 используеться метод Yii::getAlias() :

Echo Yii::getAlias("@myalias"); // вернет: /path/to/myfolder echo Yii::getAlias("@mysite"); // вернет: http://mysite.com echo Yii::getAlias("@myalias/other/folder/index.php"); // вернет: /path/to/myfolder/other/folder/index.php

Дополнительно о псевдонимах путей в Yii 2Имя псевдонима

Имя псевдонима может содержать /, при этом метод Yii::getAlias() определит какая часть является именем псевдонима, а какая добавочным путем, например:

Yii::setAlias("@test", "/path/to/test"); Yii::setAlias("@test/val", "/path/to/val"); Yii::getAlias("@test/folder/index.php"); // вернет: /path/to/test/folder/index.php Yii::getAlias("@test/val/index.php"); // вернет: /path/to/val/index.php

Если бы в строке 2 небыл определен алиас @test/val , то строка 4 вернула бы /path/to/test/val/index.php

Псевдонимы расширений

При установке расширения с помощью composer, для него автоматически задается псевдоним (путь к корневой директории расширения). Например при установке imperavi redactor (vova07/yii2-imperavi-widget), вам будет доступен псевдоним пути @vova07/imperavi (@vendor/vova07/yii2-imperavi-widget/src)

Псевдонимы (алиасы) путей в Yii 2 basic приложении

Список основных, заранее заданных псевдонимов (алиасов) путей в yii2 basic:

  • @web: Базовый URL приложения
  • @webroot: Webroot приложения
Псевдонимы (алиасы) путей в Yii 2 advanced приложении

Список основных, заранее заданных псевдонимов (алиасов) путей в yii2 advanced:

  • @app: Корневой каталог приложения
  • @vendor: Папка vendor, под @app
  • @runtime: Путь к временным файлам приложения runtime/cache
  • @web: Базовый URL приложения
  • @webroot: Каталог с тестами приложения
  • @tests: Каталог с тестами приложения
  • @common: Псевдоним (алиас) для common (общей) директории под @app
  • @frontend: Псевдоним (алиас) для frontend директории, под @app
  • @backend: Псевдоним (алиас) для backend директории, под @app
  • @console: Псевдоним (алиас) для console директории, под @app

Доброго времени суток друзья! Давай с Вами рассмотрим регистрацию пользователей на PHP. Для начала давайте определим условия для нашей регистрации пользователей:

  • Пароль шифруем при помощи алгоритма MD5
  • Пароль будем "солить"
  • Проверка на занятость Логина
  • Активация пользователя письмом.
  • Запись и хранение данных в СУБД MySQL

Для написание данного скрипта нам нужно понять, что такое регистрация пользователя. Регистрация пользователя - это получения данных реального пользователя, обработка и хранение данных.

Если объяснять простыми словами то регистрация это всего лишь запись и хранение определенных данных по которым мы можем авторизировать пользователя в нашем случае - это Логин и Пароль.

Авторизация — предоставление определённому лицу или группе лиц прав на выполнение определённых действий, а также процесс проверки данных прав при попытке выполнения этих действий. Проше говоря с помощью авторизации мы можем разграничить доступ к тому или иному контенту на нашем сайте.

Рассмотрим структуру каталогов скриптов для реализации нашей регистрации с авторизацией. Нам нужно разбить скрипты на логические составляющие. Модули регистрации и авторизации мы поместив в отдельный каталог. Так же в отдельные каталоги мы поместим подключение к базе данных MySQL , файл с пользовательскими функциями, файл стилей CSS и наш шаблон HTML . Данная структура позволяет быстро ориентироваться в скриптах. Представьте себе, что у Вас большой сайт с кучей модулями и т.д. и если не будет порядка, то будет очень сложно что-то отыскать в таком бардаке.

Так как мы будем хранить все данные в СУБД MySQL , то давайте создадим не большую таблицу в которой будем хранить данные о регистрации.

Для начала нужно создать таблицу в базе данных. Таблицу назовем bez_reg где bez - это префикс таблицы, а reg название таблицы.

Структура таблицы: bez_reg -- -- Структура таблицы `bez_reg` -- CREATE TABLE IF NOT EXISTS `bez_reg` (`id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(200) NOT NULL, `pass` varchar(32) NOT NULL, `salt` varchar(32) NOT NULL, `active_hex` varchar(32) NOT NULL, `status` int(1) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Теперь создадим основные скрипты для дальнейшей работы. Файл INDEX.PHP

Файл CONFIG.PHP

less/reg/?mode=auth">Войти

  •  

     

  • Это интересно: