From d4359b133edd90e6f842a3a711f7f890641bbeec Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Fri, 29 Sep 2017 12:49:31 +0200 Subject: [PATCH] Report error in settings.php when max length of 64K is exceeded. Fixes #49. --- php/settings.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/php/settings.php b/php/settings.php index 7c45a3e..fd25f56 100644 --- a/php/settings.php +++ b/php/settings.php @@ -148,7 +148,22 @@ else if(isset($_REQUEST['w'])){ // write to a record else{ $row = mysqli_fetch_assoc($result); $newtext = $row['text'] . $given_text; - if($row['count']+1 == $given_count){ + if (strlen($newtext) > 65535) { + $sql = "UPDATE $avpos_table" + . ' SET text = ' . StrSQL("64K limit exceeded.\n" + . "The text that was generated can't" + . " be saved as a notecard because it's" + . " too long.") + . ', count = ' . IntSQL(10000+$given_count) + . ', timestamp = NOW()' + . ' WHERE webkey = ' . StrSQL($given_webkey); + mysqli_query($link,$sql) or email_death("ERR03: " . mysqli_error($link)); + $response = "NOTECARD TOO LONG"; + } + else if (startsWith($newtext, '64K limit exceeded')) { + $response = "NOTECARD TOO LONG"; + } + else if($row['count']+1 == $given_count){ $response = "ADDING"; if(endsWith($_REQUEST['t'],"\n\nend")){