├── .DS_Store
├── README.md
├── assets
├── css
│ ├── .DS_Store
│ ├── bootstrap.min.css
│ ├── bootstrap.min.css.map
│ ├── bootstrap
│ │ ├── bootstrap-grid.css
│ │ └── bootstrap-reboot.css
│ ├── owl.carousel.min.css
│ └── style.css
├── fonts
│ ├── .DS_Store
│ └── icomoon
│ │ ├── Read Me.txt
│ │ ├── demo-files
│ │ ├── demo.css
│ │ └── demo.js
│ │ ├── demo.html
│ │ ├── fonts
│ │ ├── icomoon.eot
│ │ ├── icomoon.svg
│ │ ├── icomoon.ttf
│ │ └── icomoon.woff
│ │ ├── selection.json
│ │ └── style.css
├── images
│ ├── .DS_Store
│ ├── bg_1.jpg
│ └── undraw_remotely_2j6y.svg
├── js
│ ├── bootstrap.min.js
│ ├── jquery-3.3.1.min.js
│ ├── main.js
│ ├── owl.carousel.min.js
│ └── popper.min.js
├── main.html
└── scss
│ ├── .DS_Store
│ ├── bootstrap
│ ├── _alert.scss
│ ├── _badge.scss
│ ├── _breadcrumb.scss
│ ├── _button-group.scss
│ ├── _buttons.scss
│ ├── _card.scss
│ ├── _carousel.scss
│ ├── _close.scss
│ ├── _code.scss
│ ├── _custom-forms.scss
│ ├── _dropdown.scss
│ ├── _forms.scss
│ ├── _functions.scss
│ ├── _grid.scss
│ ├── _images.scss
│ ├── _input-group.scss
│ ├── _jumbotron.scss
│ ├── _list-group.scss
│ ├── _media.scss
│ ├── _mixins.scss
│ ├── _modal.scss
│ ├── _nav.scss
│ ├── _navbar.scss
│ ├── _pagination.scss
│ ├── _popover.scss
│ ├── _print.scss
│ ├── _progress.scss
│ ├── _reboot.scss
│ ├── _root.scss
│ ├── _spinners.scss
│ ├── _tables.scss
│ ├── _toasts.scss
│ ├── _tooltip.scss
│ ├── _transitions.scss
│ ├── _type.scss
│ ├── _utilities.scss
│ ├── _variables.scss
│ ├── bootstrap-grid.scss
│ ├── bootstrap-reboot.scss
│ ├── bootstrap.scss
│ ├── mixins
│ │ ├── _alert.scss
│ │ ├── _background-variant.scss
│ │ ├── _badge.scss
│ │ ├── _border-radius.scss
│ │ ├── _box-shadow.scss
│ │ ├── _breakpoints.scss
│ │ ├── _buttons.scss
│ │ ├── _caret.scss
│ │ ├── _clearfix.scss
│ │ ├── _deprecate.scss
│ │ ├── _float.scss
│ │ ├── _forms.scss
│ │ ├── _gradients.scss
│ │ ├── _grid-framework.scss
│ │ ├── _grid.scss
│ │ ├── _hover.scss
│ │ ├── _image.scss
│ │ ├── _list-group.scss
│ │ ├── _lists.scss
│ │ ├── _nav-divider.scss
│ │ ├── _pagination.scss
│ │ ├── _reset-text.scss
│ │ ├── _resize.scss
│ │ ├── _screen-reader.scss
│ │ ├── _size.scss
│ │ ├── _table-row.scss
│ │ ├── _text-emphasis.scss
│ │ ├── _text-hide.scss
│ │ ├── _text-truncate.scss
│ │ ├── _transition.scss
│ │ └── _visibility.scss
│ ├── utilities
│ │ ├── _align.scss
│ │ ├── _background.scss
│ │ ├── _borders.scss
│ │ ├── _clearfix.scss
│ │ ├── _display.scss
│ │ ├── _embed.scss
│ │ ├── _flex.scss
│ │ ├── _float.scss
│ │ ├── _overflow.scss
│ │ ├── _position.scss
│ │ ├── _screenreaders.scss
│ │ ├── _shadows.scss
│ │ ├── _sizing.scss
│ │ ├── _spacing.scss
│ │ ├── _stretched-link.scss
│ │ ├── _text.scss
│ │ └── _visibility.scss
│ └── vendor
│ │ └── _rfs.scss
│ └── style.scss
├── close_session.php
├── exercises
├── phpinfo.php
├── server_variables.php
└── session_variables.php
├── index.php
├── panel
├── .babelrc
├── .eslintrc
├── .github
│ └── ISSUE_TEMPLATE
│ │ ├── bug_report.md
│ │ ├── config.yml
│ │ └── feature_request.md
├── .gitignore
├── .nvmrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── package.json
├── postcss.config.js
├── src
│ ├── fonts
│ │ └── .gitkeep
│ ├── img
│ │ ├── avatars
│ │ │ ├── avatar-2.jpg
│ │ │ ├── avatar-3.jpg
│ │ │ ├── avatar-4.jpg
│ │ │ ├── avatar-5.jpg
│ │ │ └── avatar.jpg
│ │ ├── icons
│ │ │ └── icon-48x48.png
│ │ └── photos
│ │ │ ├── unsplash-1.jpg
│ │ │ ├── unsplash-2.jpg
│ │ │ └── unsplash-3.jpg
│ ├── js
│ │ ├── app.js
│ │ └── modules
│ │ │ ├── bootstrap.js
│ │ │ ├── chartjs.js
│ │ │ ├── feather.js
│ │ │ ├── flatpickr.js
│ │ │ ├── sidebar.js
│ │ │ ├── theme.js
│ │ │ └── vector-maps.js
│ └── scss
│ │ ├── 1-variables
│ │ └── _app.scss
│ │ ├── 2-mixins
│ │ └── _button.scss
│ │ ├── 3-components
│ │ ├── _avatar.scss
│ │ ├── _buttons.scss
│ │ ├── _card.scss
│ │ ├── _chart.scss
│ │ ├── _content.scss
│ │ ├── _dropdown.scss
│ │ ├── _feather.scss
│ │ ├── _footer.scss
│ │ ├── _hamburger.scss
│ │ ├── _list-group.scss
│ │ ├── _main.scss
│ │ ├── _navbar.scss
│ │ ├── _reboot.scss
│ │ ├── _sidebar.scss
│ │ ├── _sizing.scss
│ │ ├── _stat.scss
│ │ ├── _tables.scss
│ │ ├── _type.scss
│ │ └── _wrapper.scss
│ │ ├── 4-utilities
│ │ └── _cursors.scss
│ │ ├── 5-vendor
│ │ ├── _flatpickr.scss
│ │ └── _simplebar.scss
│ │ └── app.scss
├── static
│ ├── charts-chartjs.html
│ ├── css
│ │ ├── app.css
│ │ └── app.css.map
│ ├── fonts
│ │ └── .gitkeep
│ ├── icons-feather.html
│ ├── img
│ │ ├── avatars
│ │ │ ├── avatar-2.jpg
│ │ │ ├── avatar-3.jpg
│ │ │ ├── avatar-4.jpg
│ │ │ ├── avatar-5.jpg
│ │ │ └── avatar.jpg
│ │ ├── icons
│ │ │ └── icon-48x48.png
│ │ └── photos
│ │ │ ├── unsplash-1.jpg
│ │ │ ├── unsplash-2.jpg
│ │ │ └── unsplash-3.jpg
│ ├── js
│ │ ├── app.js
│ │ ├── app.js.LICENSE.txt
│ │ └── app.js.map
│ ├── maps-google.html
│ ├── pages-blank.html
│ ├── pages-profile.html
│ ├── panel.php
│ ├── ui-buttons.html
│ ├── ui-cards.html
│ ├── ui-forms.html
│ └── ui-typography.html
└── webpack.config.js
├── sessioncontrol.php
└── validate.php
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/.DS_Store
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PHP Server Environment
2 |
3 | A project that works with Sessions in PHP can be found in this repository. We do this by using a session record that contains a username and password that must be validated in order to access the website. The user can log out to return to the registration page once inside.
4 |
5 |
6 | **Login Page**
7 | 
8 |
9 |
10 |
11 | If the user doesn't exist, the website will display an error message:
12 | 
13 |
14 |
15 | **Dashboard Page**
16 |
17 | 
18 |
19 |
20 | **Logout**
21 | 
--------------------------------------------------------------------------------
/assets/css/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/css/.DS_Store
--------------------------------------------------------------------------------
/assets/css/bootstrap/bootstrap-reboot.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
3 | * Copyright 2011-2019 The Bootstrap Authors
4 | * Copyright 2011-2019 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | -webkit-box-sizing: border-box;
12 | box-sizing: border-box; }
13 |
14 | html {
15 | font-family: sans-serif;
16 | line-height: 1.15;
17 | -webkit-text-size-adjust: 100%;
18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
19 |
20 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
21 | display: block; }
22 |
23 | body {
24 | margin: 0;
25 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
26 | font-size: 1rem;
27 | font-weight: 400;
28 | line-height: 1.5;
29 | color: #212529;
30 | text-align: left;
31 | background-color: #fff; }
32 |
33 | [tabindex="-1"]:focus {
34 | outline: 0 !important; }
35 |
36 | hr {
37 | -webkit-box-sizing: content-box;
38 | box-sizing: content-box;
39 | height: 0;
40 | overflow: visible; }
41 |
42 | h1, h2, h3, h4, h5, h6 {
43 | margin-top: 0;
44 | margin-bottom: 0.5rem; }
45 |
46 | p {
47 | margin-top: 0;
48 | margin-bottom: 1rem; }
49 |
50 | abbr[title],
51 | abbr[data-original-title] {
52 | text-decoration: underline;
53 | -webkit-text-decoration: underline dotted;
54 | text-decoration: underline dotted;
55 | cursor: help;
56 | border-bottom: 0;
57 | text-decoration-skip-ink: none; }
58 |
59 | address {
60 | margin-bottom: 1rem;
61 | font-style: normal;
62 | line-height: inherit; }
63 |
64 | ol,
65 | ul,
66 | dl {
67 | margin-top: 0;
68 | margin-bottom: 1rem; }
69 |
70 | ol ol,
71 | ul ul,
72 | ol ul,
73 | ul ol {
74 | margin-bottom: 0; }
75 |
76 | dt {
77 | font-weight: 700; }
78 |
79 | dd {
80 | margin-bottom: .5rem;
81 | margin-left: 0; }
82 |
83 | blockquote {
84 | margin: 0 0 1rem; }
85 |
86 | b,
87 | strong {
88 | font-weight: bolder; }
89 |
90 | small {
91 | font-size: 80%; }
92 |
93 | sub,
94 | sup {
95 | position: relative;
96 | font-size: 75%;
97 | line-height: 0;
98 | vertical-align: baseline; }
99 |
100 | sub {
101 | bottom: -.25em; }
102 |
103 | sup {
104 | top: -.5em; }
105 |
106 | a {
107 | color: #6c63ff;
108 | text-decoration: none;
109 | background-color: transparent; }
110 | a:hover {
111 | color: #2417ff;
112 | text-decoration: underline; }
113 |
114 | a:not([href]):not([tabindex]) {
115 | color: inherit;
116 | text-decoration: none; }
117 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
118 | color: inherit;
119 | text-decoration: none; }
120 | a:not([href]):not([tabindex]):focus {
121 | outline: 0; }
122 |
123 | pre,
124 | code,
125 | kbd,
126 | samp {
127 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
128 | font-size: 1em; }
129 |
130 | pre {
131 | margin-top: 0;
132 | margin-bottom: 1rem;
133 | overflow: auto; }
134 |
135 | figure {
136 | margin: 0 0 1rem; }
137 |
138 | img {
139 | vertical-align: middle;
140 | border-style: none; }
141 |
142 | svg {
143 | overflow: hidden;
144 | vertical-align: middle; }
145 |
146 | table {
147 | border-collapse: collapse; }
148 |
149 | caption {
150 | padding-top: 0.75rem;
151 | padding-bottom: 0.75rem;
152 | color: #6c757d;
153 | text-align: left;
154 | caption-side: bottom; }
155 |
156 | th {
157 | text-align: inherit; }
158 |
159 | label {
160 | display: inline-block;
161 | margin-bottom: 0.5rem; }
162 |
163 | button {
164 | border-radius: 0; }
165 |
166 | button:focus {
167 | outline: 1px dotted;
168 | outline: 5px auto -webkit-focus-ring-color; }
169 |
170 | input,
171 | button,
172 | select,
173 | optgroup,
174 | textarea {
175 | margin: 0;
176 | font-family: inherit;
177 | font-size: inherit;
178 | line-height: inherit; }
179 |
180 | button,
181 | input {
182 | overflow: visible; }
183 |
184 | button,
185 | select {
186 | text-transform: none; }
187 |
188 | select {
189 | word-wrap: normal; }
190 |
191 | button,
192 | [type="button"],
193 | [type="reset"],
194 | [type="submit"] {
195 | -webkit-appearance: button; }
196 |
197 | button:not(:disabled),
198 | [type="button"]:not(:disabled),
199 | [type="reset"]:not(:disabled),
200 | [type="submit"]:not(:disabled) {
201 | cursor: pointer; }
202 |
203 | button::-moz-focus-inner,
204 | [type="button"]::-moz-focus-inner,
205 | [type="reset"]::-moz-focus-inner,
206 | [type="submit"]::-moz-focus-inner {
207 | padding: 0;
208 | border-style: none; }
209 |
210 | input[type="radio"],
211 | input[type="checkbox"] {
212 | -webkit-box-sizing: border-box;
213 | box-sizing: border-box;
214 | padding: 0; }
215 |
216 | input[type="date"],
217 | input[type="time"],
218 | input[type="datetime-local"],
219 | input[type="month"] {
220 | -webkit-appearance: listbox; }
221 |
222 | textarea {
223 | overflow: auto;
224 | resize: vertical; }
225 |
226 | fieldset {
227 | min-width: 0;
228 | padding: 0;
229 | margin: 0;
230 | border: 0; }
231 |
232 | legend {
233 | display: block;
234 | width: 100%;
235 | max-width: 100%;
236 | padding: 0;
237 | margin-bottom: .5rem;
238 | font-size: 1.5rem;
239 | line-height: inherit;
240 | color: inherit;
241 | white-space: normal; }
242 |
243 | progress {
244 | vertical-align: baseline; }
245 |
246 | [type="number"]::-webkit-inner-spin-button,
247 | [type="number"]::-webkit-outer-spin-button {
248 | height: auto; }
249 |
250 | [type="search"] {
251 | outline-offset: -2px;
252 | -webkit-appearance: none; }
253 |
254 | [type="search"]::-webkit-search-decoration {
255 | -webkit-appearance: none; }
256 |
257 | ::-webkit-file-upload-button {
258 | font: inherit;
259 | -webkit-appearance: button; }
260 |
261 | output {
262 | display: inline-block; }
263 |
264 | summary {
265 | display: list-item;
266 | cursor: pointer; }
267 |
268 | template {
269 | display: none; }
270 |
271 | [hidden] {
272 | display: none !important; }
273 |
--------------------------------------------------------------------------------
/assets/css/owl.carousel.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Owl Carousel v2.3.4
3 | * Copyright 2013-2018 David Deutsch
4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
5 | */
6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
--------------------------------------------------------------------------------
/assets/css/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Roboto", sans-serif;
3 | background-color: #f8fafb; }
4 |
5 | p {
6 | color: #b3b3b3;
7 | font-weight: 300; }
8 |
9 | h1, h2, h3, h4, h5, h6,
10 | .h1, .h2, .h3, .h4, .h5, .h6 {
11 | font-family: "Roboto", sans-serif; }
12 |
13 | a {
14 | -webkit-transition: .3s all ease;
15 | -o-transition: .3s all ease;
16 | transition: .3s all ease; }
17 | a:hover {
18 | text-decoration: none !important; }
19 |
20 | .content {
21 | padding: 7rem 0; }
22 |
23 | h2 {
24 | font-size: 20px; }
25 |
26 | @media (max-width: 991.98px) {
27 | .content .bg {
28 | height: 500px; } }
29 |
30 | .content .contents, .content .bg {
31 | width: 50%; }
32 | @media (max-width: 1199.98px) {
33 | .content .contents, .content .bg {
34 | width: 100%; } }
35 | .content .contents .form-group, .content .bg .form-group {
36 | overflow: hidden;
37 | margin-bottom: 0;
38 | padding: 15px 15px;
39 | border-bottom: none;
40 | position: relative;
41 | background: #edf2f5;
42 | border-bottom: 1px solid #e6edf1; }
43 | .content .contents .form-group label, .content .bg .form-group label {
44 | position: absolute;
45 | top: 50%;
46 | -webkit-transform: translateY(-50%);
47 | -ms-transform: translateY(-50%);
48 | transform: translateY(-50%);
49 | -webkit-transition: .3s all ease;
50 | -o-transition: .3s all ease;
51 | transition: .3s all ease; }
52 | .content .contents .form-group input, .content .bg .form-group input {
53 | background: transparent; }
54 | .content .contents .form-group.first, .content .bg .form-group.first {
55 | border-top-left-radius: 7px;
56 | border-top-right-radius: 7px; }
57 | .content .contents .form-group.last, .content .bg .form-group.last {
58 | border-bottom-left-radius: 7px;
59 | border-bottom-right-radius: 7px; }
60 | .content .contents .form-group label, .content .bg .form-group label {
61 | font-size: 12px;
62 | display: block;
63 | margin-bottom: 0;
64 | color: #b3b3b3; }
65 | .content .contents .form-group.focus, .content .bg .form-group.focus {
66 | background: #fff; }
67 | .content .contents .form-group.field--not-empty label, .content .bg .form-group.field--not-empty label {
68 | margin-top: -20px; }
69 | .content .contents .form-control, .content .bg .form-control {
70 | border: none;
71 | padding: 0;
72 | font-size: 20px;
73 | border-radius: 0; }
74 | .content .contents .form-control:active, .content .contents .form-control:focus, .content .bg .form-control:active, .content .bg .form-control:focus {
75 | outline: none;
76 | -webkit-box-shadow: none;
77 | box-shadow: none; }
78 |
79 | .content .bg {
80 | background-size: cover;
81 | background-position: center; }
82 |
83 | .content a {
84 | color: #888;
85 | text-decoration: underline; }
86 |
87 | .content .btn {
88 | height: 54px;
89 | padding-left: 30px;
90 | padding-right: 30px; }
91 |
92 | .content .forgot-pass {
93 | position: relative;
94 | top: 2px;
95 | font-size: 14px; }
96 |
97 | .social-login a {
98 | text-decoration: none;
99 | position: relative;
100 | text-align: center;
101 | color: #fff;
102 | margin-bottom: 10px;
103 | width: 50px;
104 | height: 50px;
105 | border-radius: 50%;
106 | display: inline-block; }
107 | .social-login a span {
108 | position: absolute;
109 | top: 50%;
110 | left: 50%;
111 | -webkit-transform: translate(-50%, -50%);
112 | -ms-transform: translate(-50%, -50%);
113 | transform: translate(-50%, -50%); }
114 | .social-login a:hover {
115 | color: #fff; }
116 | .social-login a.facebook {
117 | background: #3b5998; }
118 | .social-login a.facebook:hover {
119 | background: #344e86; }
120 | .social-login a.twitter {
121 | background: #1da1f2; }
122 | .social-login a.twitter:hover {
123 | background: #0d95e8; }
124 | .social-login a.google {
125 | background: #ea4335; }
126 | .social-login a.google:hover {
127 | background: #e82e1e; }
128 |
129 | .control {
130 | display: block;
131 | position: relative;
132 | padding-left: 30px;
133 | margin-bottom: 15px;
134 | cursor: pointer;
135 | font-size: 14px; }
136 | .control .caption {
137 | position: relative;
138 | top: .2rem;
139 | color: #888; }
140 |
141 | .control input {
142 | position: absolute;
143 | z-index: -1;
144 | opacity: 0; }
145 |
146 | .control__indicator {
147 | position: absolute;
148 | top: 2px;
149 | left: 0;
150 | height: 20px;
151 | width: 20px;
152 | background: #e6e6e6;
153 | border-radius: 4px; }
154 |
155 | .control--radio .control__indicator {
156 | border-radius: 50%; }
157 |
158 | .control:hover input ~ .control__indicator,
159 | .control input:focus ~ .control__indicator {
160 | background: #ccc; }
161 |
162 | .control input:checked ~ .control__indicator {
163 | background: #6c63ff; }
164 |
165 | .control:hover input:not([disabled]):checked ~ .control__indicator,
166 | .control input:checked:focus ~ .control__indicator {
167 | background: #847dff; }
168 |
169 | .control input:disabled ~ .control__indicator {
170 | background: #e6e6e6;
171 | opacity: 0.9;
172 | pointer-events: none; }
173 |
174 | .control__indicator:after {
175 | font-family: 'icomoon';
176 | content: '\e5ca';
177 | position: absolute;
178 | display: none;
179 | font-size: 16px;
180 | -webkit-transition: .3s all ease;
181 | -o-transition: .3s all ease;
182 | transition: .3s all ease; }
183 |
184 | .control input:checked ~ .control__indicator:after {
185 | display: block;
186 | color: #fff; }
187 |
188 | .control--checkbox .control__indicator:after {
189 | top: 50%;
190 | left: 50%;
191 | margin-top: -1px;
192 | -webkit-transform: translate(-50%, -50%);
193 | -ms-transform: translate(-50%, -50%);
194 | transform: translate(-50%, -50%); }
195 |
196 | .control--checkbox input:disabled ~ .control__indicator:after {
197 | border-color: #7b7b7b; }
198 |
199 | .control--checkbox input:disabled:checked ~ .control__indicator {
200 | background-color: #7e0cf5;
201 | opacity: .2; }
202 |
--------------------------------------------------------------------------------
/assets/fonts/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/.DS_Store
--------------------------------------------------------------------------------
/assets/fonts/icomoon/Read Me.txt:
--------------------------------------------------------------------------------
1 | Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures.
2 |
3 | To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts
4 |
5 | You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects.
6 |
7 | You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection.
8 |
--------------------------------------------------------------------------------
/assets/fonts/icomoon/demo-files/demo.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 0;
3 | margin: 0;
4 | font-family: sans-serif;
5 | font-size: 1em;
6 | line-height: 1.5;
7 | color: #555;
8 | background: #fff;
9 | }
10 | h1 {
11 | font-size: 1.5em;
12 | font-weight: normal;
13 | }
14 | small {
15 | font-size: .66666667em;
16 | }
17 | a {
18 | color: #e74c3c;
19 | text-decoration: none;
20 | }
21 | a:hover, a:focus {
22 | box-shadow: 0 1px #e74c3c;
23 | }
24 | .bshadow0, input {
25 | box-shadow: inset 0 -2px #e7e7e7;
26 | }
27 | input:hover {
28 | box-shadow: inset 0 -2px #ccc;
29 | }
30 | input, fieldset {
31 | font-family: sans-serif;
32 | font-size: 1em;
33 | margin: 0;
34 | padding: 0;
35 | border: 0;
36 | }
37 | input {
38 | color: inherit;
39 | line-height: 1.5;
40 | height: 1.5em;
41 | padding: .25em 0;
42 | }
43 | input:focus {
44 | outline: none;
45 | box-shadow: inset 0 -2px #449fdb;
46 | }
47 | .glyph {
48 | font-size: 16px;
49 | width: 15em;
50 | padding-bottom: 1em;
51 | margin-right: 4em;
52 | margin-bottom: 1em;
53 | float: left;
54 | overflow: hidden;
55 | }
56 | .liga {
57 | width: 80%;
58 | width: calc(100% - 2.5em);
59 | }
60 | .talign-right {
61 | text-align: right;
62 | }
63 | .talign-center {
64 | text-align: center;
65 | }
66 | .bgc1 {
67 | background: #f1f1f1;
68 | }
69 | .fgc1 {
70 | color: #999;
71 | }
72 | .fgc0 {
73 | color: #000;
74 | }
75 | p {
76 | margin-top: 1em;
77 | margin-bottom: 1em;
78 | }
79 | .mvm {
80 | margin-top: .75em;
81 | margin-bottom: .75em;
82 | }
83 | .mtn {
84 | margin-top: 0;
85 | }
86 | .mtl, .mal {
87 | margin-top: 1.5em;
88 | }
89 | .mbl, .mal {
90 | margin-bottom: 1.5em;
91 | }
92 | .mal, .mhl {
93 | margin-left: 1.5em;
94 | margin-right: 1.5em;
95 | }
96 | .mhmm {
97 | margin-left: 1em;
98 | margin-right: 1em;
99 | }
100 | .mls {
101 | margin-left: .25em;
102 | }
103 | .ptl {
104 | padding-top: 1.5em;
105 | }
106 | .pbs, .pvs {
107 | padding-bottom: .25em;
108 | }
109 | .pvs, .pts {
110 | padding-top: .25em;
111 | }
112 | .unit {
113 | float: left;
114 | }
115 | .unitRight {
116 | float: right;
117 | }
118 | .size1of2 {
119 | width: 50%;
120 | }
121 | .size1of1 {
122 | width: 100%;
123 | }
124 | .clearfix:before, .clearfix:after {
125 | content: " ";
126 | display: table;
127 | }
128 | .clearfix:after {
129 | clear: both;
130 | }
131 | .hidden-true {
132 | display: none;
133 | }
134 | .textbox0 {
135 | width: 3em;
136 | background: #f1f1f1;
137 | padding: .25em .5em;
138 | line-height: 1.5;
139 | height: 1.5em;
140 | }
141 | #testDrive {
142 | display: block;
143 | padding-top: 24px;
144 | line-height: 1.5;
145 | }
146 | .fs0 {
147 | font-size: 16px;
148 | }
149 | .fs1 {
150 | font-size: 28px;
151 | }
152 | .fs2 {
153 | font-size: 24px;
154 | }
155 |
156 |
--------------------------------------------------------------------------------
/assets/fonts/icomoon/demo-files/demo.js:
--------------------------------------------------------------------------------
1 | if (!('boxShadow' in document.body.style)) {
2 | document.body.setAttribute('class', 'noBoxShadow');
3 | }
4 |
5 | document.body.addEventListener("click", function(e) {
6 | var target = e.target;
7 | if (target.tagName === "INPUT" &&
8 | target.getAttribute('class').indexOf('liga') === -1) {
9 | target.select();
10 | }
11 | });
12 |
13 | (function() {
14 | var fontSize = document.getElementById('fontSize'),
15 | testDrive = document.getElementById('testDrive'),
16 | testText = document.getElementById('testText');
17 | function updateTest() {
18 | testDrive.innerHTML = testText.value || String.fromCharCode(160);
19 | if (window.icomoonLiga) {
20 | window.icomoonLiga(testDrive);
21 | }
22 | }
23 | function updateSize() {
24 | testDrive.style.fontSize = fontSize.value + 'px';
25 | }
26 | fontSize.addEventListener('change', updateSize, false);
27 | testText.addEventListener('input', updateTest, false);
28 | testText.addEventListener('change', updateTest, false);
29 | updateSize();
30 | }());
31 |
--------------------------------------------------------------------------------
/assets/fonts/icomoon/fonts/icomoon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/icomoon/fonts/icomoon.eot
--------------------------------------------------------------------------------
/assets/fonts/icomoon/fonts/icomoon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/icomoon/fonts/icomoon.ttf
--------------------------------------------------------------------------------
/assets/fonts/icomoon/fonts/icomoon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/icomoon/fonts/icomoon.woff
--------------------------------------------------------------------------------
/assets/images/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/images/.DS_Store
--------------------------------------------------------------------------------
/assets/images/bg_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/images/bg_1.jpg
--------------------------------------------------------------------------------
/assets/js/main.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | 'use strict';
3 |
4 | $('.form-control').on('input', function() {
5 | var $field = $(this).closest('.form-group');
6 | if (this.value) {
7 | $field.addClass('field--not-empty');
8 | } else {
9 | $field.removeClass('field--not-empty');
10 | }
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/assets/main.html:
--------------------------------------------------------------------------------
1 |
2 |
For more awesome templates please visit Colorlib.
4 | 5 | 12 | -------------------------------------------------------------------------------- /assets/scss/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/scss/.DS_Store -------------------------------------------------------------------------------- /assets/scss/bootstrap/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $close-font-size + $alert-padding-x * 2; 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | padding: $alert-padding-y $alert-padding-x; 38 | color: inherit; 39 | } 40 | } 41 | 42 | 43 | // Alternate styles 44 | // 45 | // Generate contextual modifier classes for colorizing the alert. 46 | 47 | @each $color, $value in $theme-colors { 48 | .alert-#{$color} { 49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /assets/scss/bootstrap/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | @include font-size($badge-font-size); 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | @include transition($badge-transition); 17 | 18 | @at-root a#{&} { 19 | @include hover-focus { 20 | text-decoration: none; 21 | } 22 | } 23 | 24 | // Empty badges collapse automatically 25 | &:empty { 26 | display: none; 27 | } 28 | } 29 | 30 | // Quick fix for badges in buttons 31 | .btn .badge { 32 | position: relative; 33 | top: -1px; 34 | } 35 | 36 | // Pill badges 37 | // 38 | // Make them extra rounded with a modifier to replace v3's badges. 39 | 40 | .badge-pill { 41 | padding-right: $badge-pill-padding-x; 42 | padding-left: $badge-pill-padding-x; 43 | @include border-radius($badge-pill-border-radius); 44 | } 45 | 46 | // Colors 47 | // 48 | // Contextual variations (linked badges get darker on :hover). 49 | 50 | @each $color, $value in $theme-colors { 51 | .badge-#{$color} { 52 | @include badge-variant($value); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /assets/scss/bootstrap/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x; 5 | margin-bottom: $breadcrumb-margin-bottom; 6 | list-style: none; 7 | background-color: $breadcrumb-bg; 8 | @include border-radius($breadcrumb-border-radius); 9 | } 10 | 11 | .breadcrumb-item { 12 | // The separator between breadcrumbs (by default, a forward-slash: "/") 13 | + .breadcrumb-item { 14 | padding-left: $breadcrumb-item-padding; 15 | 16 | &::before { 17 | display: inline-block; // Suppress underlining of the separator in modern browsers 18 | padding-right: $breadcrumb-item-padding; 19 | color: $breadcrumb-divider-color; 20 | content: $breadcrumb-divider; 21 | } 22 | } 23 | 24 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built 25 | // without `