odan.github.io
blog posts about web development, php, dotnet
At a glance
- Category
- Development
- Language
- English
- Paid-content signal
- No paid content foundObserved
- Registered
- Unknown
- Hosting
- FastlyInferred
- HTTPS certificate trusted
- PassedObserved
- Last updated
Related questions
More questions →What Is PHP and What Is It Used For?
PHP is a server-side scripting language used mainly to build dynamic websites and web applications. When a visitor requests a PHP page, the web server runs the PHP code first, then sends the resulting HTML to the browser. You would use PHP when a page needs to change based on user input, stored data, or a database — for example, a login form, a product listing, or a contact form that saves messages. You don't need PHP for a purely static site.
How PHP actually runs
PHP is not executed by the browser. It runs on the web server, which means visitors never see your PHP source code — only the output it produces.
A typical request works like this:
- The browser requests a URL such as
example.com/greet.php. - The web server (commonly Apache) recognizes the
.phpextension and hands the file to the PHP interpreter. - PHP executes the code, which may read a database, check a session, or process form data.
- PHP outputs HTML (or JSON, or an image), and the server sends that output back to the browser.
This is the key difference from JavaScript: JavaScript runs in the browser after the page arrives, while PHP runs on the server before the page is sent.
Common things PHP is used for
- Generating dynamic pages — inserting different content depending on the user, the time, or the URL.
- Handling form submissions — receiving data from an HTML form, validating it, and responding.
- Connecting to databases — reading and writing records in MariaDB or MySQL, which is how most PHP applications store users, posts, and orders.
- Managing sessions and cookies — keeping a user logged in across multiple pages.
- Building APIs — returning JSON so a front-end or mobile app can fetch data.
- Content management systems — WordPress, a widely used CMS, is written in PHP.
A minimal PHP example
<?php
$name = "World";
echo "Hello, " . $name . "!";
?>
When the server runs this, the browser receives only:
Hello, World!
The <?php ... ?> tags mark where PHP code begins and ends. echo sends output to the page. Variables start with $. You can mix PHP blocks with regular HTML in the same file, which is why PHP is convenient for templating.
How PHP fits with Apache and MariaDB
PHP rarely works alone. In a typical stack:
| Component | Role |
|---|---|
| Apache | Web server that receives requests and passes .php files to PHP |
| PHP | Executes application logic and produces output |
| MariaDB / MySQL | Stores the data the PHP code reads and writes |
This combination is often called a LAMP-style stack (Linux, Apache, MySQL/MariaDB, PHP), with variations across operating systems.
Getting started locally with XAMPP
To run PHP on your own machine without configuring each piece separately, you can use an integrated package. XAMPP is one option: according to Apache Friends, it is "a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl," and it is described as a popular PHP development environment.
The general setup path:
- Download the XAMPP installer for your operating system (Windows, Linux, or OS X versions are listed on the site).
- Run the installer and start the Apache and MySQL/MariaDB modules from the control panel.
- Place your
.phpfiles in the web root directory (commonlyhtdocs). - Open a browser and visit
localhostfollowed by your file path, such aslocalhost/greet.php. - Verify it worked: if you see "Hello, World!" instead of the raw code, PHP is executing correctly.
Common snags: if the browser shows the PHP source code as plain text, the file likely isn't being processed by PHP — check the file extension and that Apache is running. If the page won't load at all, confirm the server is started and the port isn't already in use.
Where PHP is used today
PHP remains widely deployed because it is easy to host, has extensive documentation, and powers a large share of existing websites and CMS platforms. It is a practical choice when you want to build server-rendered web pages, work with an existing PHP codebase, or use a PHP-based CMS. If your goal is a purely static site or a browser-only interface, PHP may be unnecessary.
To decide whether to learn it: choose PHP if you want to build or maintain dynamic, database-driven websites and value a large hosting ecosystem. If you only need client-side interactivity, JavaScript alone may cover your needs.
Website Overview
Identifiable technologies and additional version or configuration signals make the service easier to fingerprint, which may help targeted scanners narrow their checks. Page metadata, canonical configuration and social previews work together to provide more consistent search and sharing presentation.
Domain and Registration
Unknown
DNS and Email
Nameservers are provided by Amazon Route 53, indicating managed DNS hosting. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses. No MX record was found. A conventional explicit inbound-mail route is not configured. The lowest observed DNS TTL is 746 seconds.
TLS and Certificates
The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.
HTTP and Browser Security
The checked browser-security headers were not detected, leaving fewer explicit browser-side safeguards. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The x-cache, x-served-by, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.
Technology Stack Analysis
The public page identifies Jekyll 3.10.0, Fastly, with exact versions exposed for 1 technologies. These details can narrow vulnerability checks, although exposure alone is not a vulnerability.
Search and Social Sharing
The Generator tag identifies Jekyll v3.10.0, making the publishing system easier to fingerprint. Open Graph is partially configured; og:image is missing. Twitter Card metadata is configured. The title has 26 characters, within a common display range. A meta description is present, with 45 characters.
Hosting and Email
Registration details
Unknown
DNS records
| Type | Name | Value | TTL | Priority |
|---|---|---|---|---|
| A | odan.github.io | 185.199.108.153 | 3600 | — |
| A | odan.github.io | 185.199.109.153 | 3600 | — |
| A | odan.github.io | 185.199.110.153 | 3600 | — |
| A | odan.github.io | 185.199.111.153 | 3600 | — |
| AAAA | odan.github.io | 2606:50c0:8000::153 | 3600 | — |
| AAAA | odan.github.io | 2606:50c0:8001::153 | 3600 | — |
| AAAA | odan.github.io | 2606:50c0:8002::153 | 3600 | — |
| AAAA | odan.github.io | 2606:50c0:8003::153 | 3600 | — |
| NS | github.io | dns1.p05.nsone.net | 746 | — |
| NS | github.io | dns2.p05.nsone.net | 746 | — |
| NS | github.io | dns3.p05.nsone.net | 746 | — |
| NS | github.io | dns4.p05.nsone.net | 746 | — |
| NS | github.io | ns-1339.awsdns-39.org | 746 | — |
| NS | github.io | ns-1622.awsdns-10.co.uk | 746 | — |
| NS | github.io | ns-393.awsdns-49.com | 746 | — |
| NS | github.io | ns-692.awsdns-22.net | 746 | — |
| TXT | github.io | v=spf1 a -all | 2037 | — |
| CAA | github.io | 0 issue "digicert.com" | 3600 | — |
| CAA | github.io | 0 issue "letsencrypt.org" | 3600 | — |
| CAA | github.io | 0 issue "sectigo.com" | 3600 | — |
| CAA | github.io | 0 issuewild "digicert.com" | 3600 | — |
| CAA | github.io | 0 issuewild "letsencrypt.org" | 3600 | — |
| CAA | github.io | 0 issuewild "sectigo.com" | 3600 | — |
TLS and certificates
HTTP response headers
| Header | Value |
|---|---|
| content-type | text/html; charset=utf-8 |
| cache-control | max-age=600 |
| server | GitHub.com |
| access-control-allow-origin | * |
Identified technologies
Pages, Search and Sharing
| Meta description | blog posts about web development, php, dotnet |
|---|---|
| Canonical URL | https://odan.github.io/ |
| Language | English (default) |
| Twitter Card | summary |
Social Sharing Preview
8 fieldsrobots.txt (opens in a new tab)
HTTP 404No robots.txt found
Sitemaps
0No sitemaps found
User reviews (0)