From 5aa1390d9c36444ed215a52b0bba233a0b7bf858 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Thu, 6 Feb 2025 15:41:04 -0700 Subject: [PATCH] completed validation assignment --- validation/composer.json | 10 ++++ validation/css/.gitkeep | 0 validation/css/styles.css | 109 +++++++++++++++++++++++++++++++++++++ validation/img/.gitkeep | 0 validation/img/success.jpg | Bin 0 -> 25510 bytes validation/index.php | 40 ++++++++++++++ validation/js/.gitkeep | 0 validation/js/index.js | 0 validation/process.php | 37 +++++++++++++ 9 files changed, 196 insertions(+) create mode 100644 validation/composer.json create mode 100644 validation/css/.gitkeep create mode 100644 validation/css/styles.css create mode 100644 validation/img/.gitkeep create mode 100644 validation/img/success.jpg create mode 100644 validation/index.php create mode 100644 validation/js/.gitkeep create mode 100644 validation/js/index.js create mode 100644 validation/process.php diff --git a/validation/composer.json b/validation/composer.json new file mode 100644 index 0000000..084c369 --- /dev/null +++ b/validation/composer.json @@ -0,0 +1,10 @@ +{ + "name": "violet/validation", + "type": "project", + "autoload": { + "psr-4": { + "Violet\\Validation\\": "src/" + } + }, + "require": {} +} diff --git a/validation/css/.gitkeep b/validation/css/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/validation/css/styles.css b/validation/css/styles.css new file mode 100644 index 0000000..5b5bb35 --- /dev/null +++ b/validation/css/styles.css @@ -0,0 +1,109 @@ +* { + margin: 0; + padding: 0; +} + +body { + /* Positioning */ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + /* Styling */ + background-color: #bbedbe; +} + +h1 { + /* Positioning */ + width: 80%; + padding: 2vw; + + /* Font */ + font-size: 8vw; + text-align: center; +} + +h3 { + font-size: 4vw; +} + +h1, +h3, +p, +input { + color: #0e3610; +} + +form { + width: 60%; + padding: 2.5vw 5vw 2.5vw 5vw; + + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.row { + width: 100%; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} + +input { + /* Input Shape */ + width: 50%; + padding: 1vw; + margin: 1vw; + border: none; + border-radius: 18px; + + /* Styling */ + background-color: #f1fbf2; + + /* Font */ + font-size: 1vw; + font-weight: 400; +} + +button { + /* Button Shape */ + width: 40%; + padding: 1vw; + margin: 1vw; + border: none; + border-radius: 18px; + + /* Font */ + color: white; + font-size: 1vw; + font-weight: 600; + + /* Transition for hover */ + transition-duration: 500ms; + + background-color: #1c6b20; +} + +.card { + padding: 2vw; + background-color: gray; + border-radius: 18px; +} + +.error { + color: white; + background-color: red; +} + +.success { + color: white; + background-color: #0e3610; +} + +.reset { + background-color: red; +} diff --git a/validation/img/.gitkeep b/validation/img/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/validation/img/success.jpg b/validation/img/success.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb20880ceef9b9be2423afdc5c912ec2533f4fe5 GIT binary patch literal 25510 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 literal 0 HcmV?d00001 diff --git a/validation/index.php b/validation/index.php new file mode 100644 index 0000000..e7dd51c --- /dev/null +++ b/validation/index.php @@ -0,0 +1,40 @@ + + + + + + + Validation + + + + + +

Validation Assignment

+ +
+ > +
+ + +
+
+ + +

Invalid Format

+

You entered: ' . $error . '

+

Phone number must be formatted as (xxx)xxx-xxxx.

+ + '; +} +?> + + + diff --git a/validation/js/.gitkeep b/validation/js/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/validation/js/index.js b/validation/js/index.js new file mode 100644 index 0000000..e69de29 diff --git a/validation/process.php b/validation/process.php new file mode 100644 index 0000000..c1c548f --- /dev/null +++ b/validation/process.php @@ -0,0 +1,37 @@ + + + + + Dummy Title + + + + + +

Validation Assignment

+ + + + + + + +

Thank You!

+

You entered: ' . $number . ', a valid phone number.

+ + +'; + } else { + header('Location: .?error=' . $number); + } +} +?>