Php mysql телефонный справочник

Работа с базой данных MySQL в примерах

Данные примеры используют сервер Denwer. Чтобы создать базу данных:

Запустите сервер и проверьте что «Ура, заработало!»

В разделе Утилиты запустите phpMyAdmin

Создайте новую базу с именем root

В созданной базе создайте таблицу с именем one с тремя полями

Полям дайте имена id , name , tel

Проверьте созданную таблицу

На сервере (панель слева) будут автоматически созданы файлы вашей базы.
На панели справа показано место, где вы создаёте свои скрипты

Запускать скрипты на сервере по указанному пути

Исходники файлов на PHP:

1.php — Вывод данных из базы и форма для добавления записей

3.php — Форма для редактирования записи

4.php — Сохранение отредактированной записи

Содержимое файла .htaccess

Исходники файлов на Perl:

1.pl — Вывод данных из базы и форма для добавления записей

3.pl — Форма для редактирования записи

4.pl — Сохранение отредактированной записи

subs.pl — Все подпрограммы в одном файле

# # do "subs.pl"; # HEAD(); GET2VARS(); sub doSQL()< $strSQL=shift; use DBI; $dbh = DBI->connect( "DBI:mysql:root:localhost", "root" ) or die $DBI::errstr; $sth = $dbh->prepare($strSQL) or die "$strSQL: $dbh->errstr"; $rv = $sth->execute or die $sth->errstr; # $rc = $dbh->disconnect; > sub refresh() < $url=shift; print HTML > sub urldecode < local($val)=@_; $val=~s/\+/ /g; $val=~s/%([0-9a-hA-H])/pack('C',hex($1))/ge; return $val; > sub GET2VARS < # отдаём GET в виде переменных my $query=$ENV; if($query ne '') < my @formfields=split(/[\&\;]/,$query); foreach my $stroka (@formfields)< my ($Name,$Value) = split(/=/,$stroka); $Name=urldecode($Name); $Value=urldecode($Value); chomp $Value; if ($Name !~ tr#A-Za-z0-9_<>[]##cd) < eval "\$$Name='$Value'"; >> > > sub HEAD() < print  Телефонный справочник  HTML >

Содержимое файла .htaccess

DirectoryIndex 1.pl Options +ExecCGI

Дополнительно

Содержимое файла style.css

BODY < background:#eeeeee; font-family:sans-serif; margin:10px 10%; >TABLE < border-collapse:collapse; >FORM < margin:0; >TD < padding:3px 9px; border: 1px solid #999999; background: #ffffff; >TD.key < background: #cccccc; >INPUT.in < border:0; color:#cc0000; font-size:100%; >INPUT

Источник

Корпоративный телефонный справочник с картой

Всем привет! Хочу поделиться корпоративным телефонным справочником с картой офиса. Удобен для ориентирования в большой организации. Особенно будет полезен новым сотрудникам, которые еще не запомнили кто из коллег где сидит.

Читайте также:  Цвета колеса рулетки python задача

screenshot

Источником контактов для справочника служит Active Directory, контакты из которой импортируются в базу MySQL, в дальнейшем справочик оперирует с базой MySQL.

Внутри справочника контакты делятся на два типа:

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

  • Импорт контактов и фото из AD
  • Показать/скрыть любой контакт
  • Добавлять, редактировать и удалять локальные контакты
  • Указать расположение сотрудника на схеме офиса

Карты хранятся в файлах templ/map2.png

screenshot

Поиск сотрудника на карте:

screenshot

Демо (на бесплатном хостинге может отвалиться в любой момент): http://pfzim.rf.gd/pb/
Логин: admin
Пароль: admin

P.S. Интересно услышать замечания и подсказки по улучшению дизайна и кода

Источник

Телефонный справочник из таблиц SQL Asterisk FreePBX (web-справочник, выгрузка в xml-файл для телефонов Grandstream)

1) Подключение к серверу SQL для выполнения запросов:

mysql -u freepbxuser -p после нажатия Enter будет запрошен пароль для пользователя. После ввода пароля и нажатия Enter, будет выведено приглашение MySQL: mysql>_ 
Вывод списка имеющихся баз: SHOW DATABASES; Подключение к необходимой базе: USE dbtest; Просмотр всех таблиц из базы: SHOW tables; Просмотр содержания нужной таблицы: SELECT * FROM page; Просмотр структуры таблицы: DESCRIBE testtable; 

3) Подлючение к sql из внешней сети:

CREATE USER 'ИМЯ-НОВОГО-ПОЛЬЗОВАТЕЛЯ'@'localhost' IDENTIFIED BY '. ПАРОЛЬ. '; GRANT ALL PRIVILEGES ON * . * TO 'ИМЯ-НОВОГО-ПОЛЬЗОВАТЕЛЯ'@'localhost'; GRANT SELECT ON * . * TO 'ИМЯ-НОВОГО-ПОЛЬЗОВАТЕЛЯ'@'localhost'; use mysql SELECT Host,User,Password FROM user; UPDATE user SET Host='%' WHERE User='ИМЯ-НОВОГО-ПОЛЬЗОВАТЕЛЯ' AND Host='localhost'; FLUSH PRIVILEGES; 
   70 User Manager Group  760 Иванов Иван 0 101 1  70 0   

Шаг 1. Создание php-скрипта чтения sql-таблицы Asterisk и формирования xml-файла

Создаем два файла config.php и phonebook.php, указывая необходимые параметры.

 "mysql:host=localhost;dbname=asterisk", "pb_file_gs" => "/var/www/html/phonebook/phonebook.xml", "username" => "freepbxuser", //Mysql login "password" => "пароль freepbxuser", //Mysql password "options" => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') ); 
prepare($sql); $q->execute(); $rows = $q->fetchAll(); //Грузим таблицу с группами $q2 = $db->prepare($sqlgrp); $q2->execute(); $rows2 = $q2->fetchAll(); unlink($config["pb_file_gs"]); // Удалим старый файл $fp = fopen($config["pb_file_gs"],"w+"); fputs($fp, ''); foreach($rows2 as $row) < // Пробежим по всем записям, добавляем группы fputs($fp,''); fputs($fp,''.$row['id'].''); fputs($fp,''.$row['name'].''); fputs($fp,''); > foreach($rows as $row) < // Пробежим по всем записям, подготовив XML файл нужного вида if (strlen($row['username']) === 3) < $alln = $row['displayname']; //if ($alln = '') #alln = $row['username']; $ln = strstr($alln, ' ', true); $fn = strstr($alln, ' ', false); $fn = trim($fn); $i++; fputs($fp, ''.$i.' '.$ln.' '.$fn.' '.$row['username'].' 1  ' .$row['groupid']. '  '); > > fputs($fp,''); fclose($fp); ?> 

Шаг 2. Настраиваем телефон Grandstream для чтения телефонной книги из xml-файла

Читайте также:  Required php extension dom is missing

Внимание, важно при настройке «Phonebook Management» на телефоне Grandstream GXP16xx в поле «Путь к серверу XML» (Phonebook XML Server Path) указать только путь без имени файла.

  1. В поле «Enable Phonebook XML Download» выбрать «Enabled, use HTTP»
  2. В поле «Phonebook XML Server Path» указать путь к файлу xml, например: «192.168.0.220/phonebook»

Шаг 3. Создаем web-справочник телефонной книги

  1. Сначала загрузить из xml-файла и сформировать группы контактов
  2. Обрабатывать выбор группы и отображать контакты выбранной группы.
    
ТЕЛЕФОННЫЙ СПРАВОЧНИК
Contact); $grp_cnt = count($xml->pbgroup); //Загрузка групп в список echo '
ГРУППЫ:

"; //Отображение списка контактов echo '
'; echo " "; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; //echo ""; echo ""; echo ""; echo ""; for($i = 0; $i < $conts_cnt; $i++) < $Contacts = $xml->Contact[$i]; $FirstName = $Contacts->FirstName; $LastName = $Contacts->LastName; $phonenumber = $Contacts->Phone->phonenumber; echo ""; for($ig = 0; $ig < $grp_cnt; $ig++) < $Groups = $xml->pbgroup[$ig]; if (strcasecmp($Contacts->Group, $Groups->id) == 0) < if ($_COOKIE["sgrp"] == trim($Groups->name)) < echo ""; > echo ""; echo "
ФамилияИмяНомерГруппа
echo "
"; echo '
'; ?>

Источник

PhoneBook Application using MySQL and PHP

This is a simple phone book web application which supports:

  • New contact creation
  • Existing contact deletion
  • Updating any existing contact
  • Responsive User Interface

Technologies Used

Source code

Complete source code for this project is available at GitHub

User Interface Walkthrough

Landing Page

Architecture

This is the landing page of my application which displays all existing contacts on the left with the Details pane on the right. The Update and Delete buttons are initially disabled.

Contact Details

Architecture

Upon clicking on a particular contact, the update and delete functionality gets activated. We can also see the corresponding contact details for the clicked contact.

Update Contact

Architecture

Clicking on the update button opens up a window where user can enter changed details. The changes are captured once user clicks on Save Changes button. We can add or delete phone, address or dates as required.

Contact Creation

Architecture

Similarly, to create a new contact, user has to click on create contact button and choose Save Changes button to capture the new information.

Progress Bar

Architecture

The yellow progress bar gives the user an idea of the size of contacts retrieved for each query.

ArchitectureThe search window allows user to search with various combinations. Here we are searching by Zip code. Hence all contact in that zip code are shown. ArchitectureWe now search for a combination of zip and area code. This returns the specific contact match both criteria. ArchitectureWe can also search by last name if we need the results to be more specific. ArchitectureWhile searching for address, user has to input it with hyphens. This is to help us differentiate each entry as my logic is building sql queries dynamically. ArchitectureIf there are more than one entry matching a first name, all of them are displayed. ArchitectureWe can also search by date of birth, entered in the specified format. ArchitectureWe can search by city and state as shown above.

How to run the project

Install MAMP/WAMP/LAMP stack

Setup MySQL database

  • Create database inside MySQL named ‘dbproject’.
  • Execute the ‘Create.SQL’ file on the previously created database.
  • Import the CSV file (contact.csv) using MySQL workbench.

PHP Back-end setup

  • Copy all the PHP files and index.html file from the root of the project into the htdocs folder of Apache installation. Learn more

Front-end

Technical details

This web application is written in PHP as back-end programming language and MySQL as the database. Bootstrap 4 is used to implement responsive UI. jQuery is used to handle the dynamic web page changes.

Backend is implemented as REST APIs. Each PHP file listens for requests on an endpoint and either serves the appropriate data or processes requested operation.

  1. contact_details.php API — Returns the Name, Address and Dates data for a contact in JSON format idenitified by Contact_ID.
  2. Data creation APIs — These are set of APIs which creates the object and inserts into respective tables.

Updated: June 10, 2020

You May Also Enjoy

Increase Minecraft FPS on Macbook Pro M1 chip

January 6, 2023 6 minute read

How to increase Minecraft FPS and improve performance on Apple MacBook Pro with M1 Chip

Fix AVD emulator process has terminated

January 6, 2023 2 minute read

Fix AVD Emulator process has terminated issue on Windows 11

Setup Algolia Search for Jekyll Github pages blog on Github

January 6, 2023 4 minute read

Setup Algolia search on GitHub for a Jekyll blog

Monitoring power usage and efficiency of M1 Mac CPU/GPU

December 19, 2022 13 minute read

Monitoring power usage and efficiency of M1 Mac’s CPU/GPU Intro I recently got the 2021 Macbook Pro 16 inch with M1 Pro chip. It has been absolute beast for.

Источник

Оцените статью