PHP Thread Class and Validation Add validation that checks

PHP - Thread Class and Validation

Add validation that checks:

$title and $message both have a minimum length of 3.

title has a maximum length of 32 characters.

$message has a maximum length of 52 characters.

If any of the three validation rules fail, print a status of 432 and an error message of what is wrong with the user input. The JSON response should look like:

If the user submitted a successful post, save the record using the provided Thread class. Set the timeposted set to when the item was submitted. Make the thread visible as soon as its submitted. Print a status code of 200. The JSON response should look like:

Add your code to newthread.php. Test your script by running:

ALSO convert all urls in the $message to HTML links and store the new result as message_html using the provided Thread class.

HINT: You\'ll need to modify the provided Thread class.

-------------------------------

newthread.php

------------------------

Thread.php

-------------------------------

Show changes added to newthread.php and Thread.php. Thank you

Solution

newthread.php

<?php


require_once(__DIR__ . \'/init.php\');
header(\'Content-Type: application/json\');

if ($argc != 3)
{
    throw new Exception(\'Invalid number of arguments provided\');
}

$title = $argv[1];
$message = $argv[2];

$thread = new Thread();

$err_Short_Title = array(\'status\' => 432, \'error\' => \'title field is too short\');
$err_Long_Title = array(\'status\' => 432, \'error\' => \'title field is too long\');

$err_Short_Msg = array(\'status\' => 432, \'error\' => \'message field is too short\');
$err_Long_Msg = array(\'status\' => 432, \'error\' => \'message field is too long\');

$success = array(\'status\' => 200);


/* Extract URLs from Message */


$url = \'~(?:(https?)://([^\\s<]+)|(www\\.[^\\s<]+?\\.[^\\s<]+))(?<![\\.,:])~i\';
$message_html = preg_replace($url, \'<a href=\"$0\"</a>\', $message);


//If Title and Message fit Req.
   //Echo Success and Create New Thread

if (strlen($title) >= 3 && strlen($title) <= 32 && strlen($message) >= 3 && strlen($message) <= 52) {
   //title, message, isvisible, timeposted
   $thread->newThread($title, $message, $message_html, true, date(\'D M j G:i:s Y\'));
   echo json_encode($success) . \"\ \";
} else {
   //Check Title Length
   if (strlen($title) < 3) {
       echo json_encode($err_Short_Title) . \"\ \";
   } else if (strlen($title) > 32) {
       echo json_encode($err_Long_Title) . \"\ \";
   }
   //Check Message Length
   if (strlen($message) < 3) {
       echo json_encode($err_Short_Msg) . \"\ \";
   } else if (strlen($message) > 52) {
       echo json_encode($err_Long_Msg) . \"\ \";
   }
}

threadlist.php

<?php

require_once(__DIR__ . \'/init.php\');

header(\'Content-Type: application/json\');


$thread = new Thread();
$bannedWords = \'banana apple mongoose pear duck\';

// Actual implementation below

$success = array(\'status\' => 200);
$threads = $thread->getRecentThreads(3, true);

//Reference: http://php.net/manual/en/function.explode.php
$bannedWords_array = explode (\" \", $bannedWords);

//Reference: http://www.w3schools.com/php/showphp.asp?filename=demo_loop_foreach
foreach ($threads as $thread) {
   foreach ($thread as $value) {
       $newphrase = str_replace($bannedWords_array, \'****\', $value);
       echo json_encode($newphrase) . \"\ \";
   }
}

//If prints everything out, post success 200.
echo json_encode($success) . \"\ \";

PHP - Thread Class and Validation Add validation that checks: $title and $message both have a minimum length of 3. title has a maximum length of 32 characters.
PHP - Thread Class and Validation Add validation that checks: $title and $message both have a minimum length of 3. title has a maximum length of 32 characters.

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site