com web/php: Added some validation calls for the createNewsEntry: bin/createNewsEntry
| From: | Peter Cowburn | Date: | Wed, 25 Feb 2015 11:05:41 +0000 |
| Subject: | com web/php: Added some validation calls for the createNewsEntry: bin/createNewsEntry | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-26838@lists.php.net to get a copy of this message | ||
Commit: 6fbd40c2726f1f87769dca9cca00bc2e8657f476
Author: Stelian, Mocanita <stelian.mocanita@rakuten.de> Wed, 25 Feb 2015 12:05:41
+0100
Parents: 288ef1531c8f596221278eaf92bd0789564f84a4
Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=6fbd40c2726f1f87769dca9cca00bc2e8657f476
Log:
Added some validation calls for the createNewsEntry
Script now checks if the category is valid on submission.
Script now does a warning based check for the image size to avoid high-res images being pushed.
Changed paths:
M bin/createNewsEntry
Diff:
diff --git a/bin/createNewsEntry b/bin/createNewsEntry
index f639dac..9bb9563 100755
--- a/bin/createNewsEntry
+++ b/bin/createNewsEntry
@@ -53,19 +53,45 @@ $categories = array(
);
$confs = array(2, 3);
+$imageRestriction = array(
+ 'width' => 400,
+ 'height' => 400
+);
+
do {
+ $catVerified = false;
fwrite(STDOUT, "Categories:\n");
foreach($categories as $n => $category) {
fprintf(STDOUT, "\t%d: %s\t [%s]\n", $n, key($category), current($category));
}
fwrite(STDOUT, "Please select appropriate categories, seperated with space: ");
- $cat = explode(" ", rtrim(fgets(STDIN)));
+ $catInput = (string) rtrim(fgets(STDIN));
+
+ if (0 !== strlen($catInput)) {
+ $cat = explode(" ", $catInput);
+ } else {
+ fwrite(STDERR, "You have to pick at least one category\n");
+ continue;
+ }
+
+ $unknownCategories = array();
+ foreach($cat as $n) {
+ if (false === array_key_exists($n, $categories)) {
+ $unknownCategories[] = $n;
+ }
+ }
- if ($cat) {
+ if (0 === count($unknownCategories)) {
+ $catVerified = true;
+ } else {
+ fwrite(STDERR, "Unknown categories selected: " . implode(',',
$unknownCategories) . "\n");
+ }
+
+ if ($catVerified) {
break;
}
- fwrite(STDERR, "You have to pick at least one category\n");
+
} while(1);
@@ -104,8 +130,6 @@ if ($conf) {
foreach($cat as $n) {
if (isset($categories[$n])) {
ce($dom, "category", null, array("term" => key($categories[$n]),
"label" => current($categories[$n])), $item);
- } else {
- fprintf(STDERR, "Unkown category %d\n", $n);
}
}
@@ -113,11 +137,37 @@ ce($dom, "link", null, array("href" =>
"$href#id$id", "rel" => "alternate", "ty
fwrite(STDOUT, "Will a picture be accompanying this entry? ");
$yn = fgets(STDIN);
+
+
if (strtoupper($yn[0]) == "Y") {
+ $isValidImage = false;
+
do {
fwrite(STDOUT, "Enter the image name (note: the image has to exist in
'./images/news'): ");
$path = basename(rtrim(fgets(STDIN)));
- } while(!file_exists("./images/news/$path"));
+
+ if (true === file_exists("./images/news/$path")) {
+ $isValidImage = true;
+
+ if (true === extension_loaded('gd')) {
+ $imageSizes = getimagesize("../images/news/$path");
+
+ if (
+ $imageSizes[0] > $imageRestriction['width'] ||
+ $imageSizes[1] > $imageRestriction['height']
+ ) {
+ fwrite(STDOUT, "Provided image has a higher size than recommended (" .
implode(' by ', $imageRestriction) . "). Continue? ");
+ $ynImg = fgets(STDIN);
+ if (strtoupper($ynImg[0]) == "Y") {
+ break;
+ } else {
+ $isValidImage = false;
+ }
+ }
+ }
+ }
+
+ } while($isValidImage !== true);
fwrite(STDOUT, "Image title: ");
$title = rtrim(fgets(STDIN));