2016-08-09 11:54:42 +02:00
< ? php
use PrivateBin\I18n ;
?> <!DOCTYPE html>
2016-07-19 14:02:26 +02:00
< html lang = " en " >
< head >
< meta charset = " utf-8 " />
< meta name = " robots " content = " noindex " />
2018-11-21 23:32:06 +01:00
< meta name = " google " content = " notranslate " >
2017-01-01 16:33:11 +01:00
< title >< ? php echo I18n :: _ ( $NAME ); ?> </title>
2016-08-09 11:54:42 +02:00
< link type = " text/css " rel = " stylesheet " href = " css/privatebin.css?<?php echo rawurlencode( $VERSION ); ?> " />
< ? php
if ( $SYNTAXHIGHLIGHTING ) :
?>
< link type = " text/css " rel = " stylesheet " href = " css/prettify/prettify.css?<?php echo rawurlencode( $VERSION ); ?> " />
< ? php
if ( strlen ( $SYNTAXHIGHLIGHTINGTHEME )) :
?>
< link type = " text/css " rel = " stylesheet " href = " css/prettify/<?php echo rawurlencode( $SYNTAXHIGHLIGHTINGTHEME ); ?>.css?<?php echo rawurlencode( $VERSION ); ?> " />
< ? php
2016-07-26 08:19:35 +02:00
endif ;
2016-08-09 11:54:42 +02:00
endif ;
?>
2019-06-16 09:30:59 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/jquery-3.4.1.js " integrity = " sha512-bnIvzh6FU75ZKxp0GXLH9bewza/OIw6dLVh9ICg0gogclmYGguQJWl8U30WpbsGTqbIiAwxTsbe76DErLq5EDQ== " crossorigin = " anonymous " ></ script >
2016-08-16 11:11:03 +02:00
< ? php
2018-07-21 08:44:04 +02:00
if ( $QRCODE ) :
?>
2019-06-16 10:13:53 +02:00
< script async type = " text/javascript " data - cfasync = " false " src = " js/kjua-0.6.0.js " integrity = " sha512-GEEIHvphDt1NmaxzX8X1ZkBiGKXCv+Ofzwi8SMEH5wQVWqdGIvBO/fnxxKZ90RU1bVp6srS68nHIpZo6iVcG9g== " crossorigin = " anonymous " ></ script >
2018-07-21 08:44:04 +02:00
< ? php
endif ;
2016-08-16 11:11:03 +02:00
if ( $ZEROBINCOMPATIBILITY ) :
?>
2018-06-30 17:55:59 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/base64-1.7.js " integrity = " sha512-JdwsSP3GyHR+jaCkns9CL9NTt4JUJqm/BsODGmYhBcj5EAPKcHYh+OiMfyHbcDLECe17TL0hjXADFkusAqiYgA== " crossorigin = " anonymous " ></ script >
2016-08-16 11:11:03 +02:00
< ? php
endif ;
?>
2019-05-11 10:39:42 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/zlib-1.2.11.js " integrity = " sha512-Yey/0yoaVmSbqMEyyff3DIu8kCPwpHvHf7tY1AuZ1lrX9NPCMg87PwzngMi+VNbe4ilCApmePeuKT869RTcyCQ== " crossorigin = " anonymous " ></ script >
2019-05-08 19:00:22 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/base-x-3.0.5.1.js " integrity = " sha512-/zL3MWKMtl1IBF0URx3laql2jUw+rWfFFabNlILY/Qm+hUsQR/XULjUyNHkW/FkrV7A0sMQ7tsppH7sj5ht8wA== " crossorigin = " anonymous " ></ script >
2018-06-30 17:55:59 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/rawinflate-0.3.js " integrity = " sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ== " crossorigin = " anonymous " ></ script >
2016-08-09 11:54:42 +02:00
< ? php
if ( $SYNTAXHIGHLIGHTING ) :
?>
2018-07-01 19:17:05 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/prettify.js?<?php echo rawurlencode( $VERSION ); ?> " integrity = " sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg== " crossorigin = " anonymous " ></ script >
2016-08-09 11:54:42 +02:00
< ? php
endif ;
if ( $MARKDOWN ) :
?>
2019-08-17 10:04:54 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/showdown-1.9.1.js " integrity = " sha512-VeINC2WUWLyxgeQ56SsYFjQ5+d7RLvLPYOEYDFtEDd3AyVsgIsHYsWZ6WwgALwB6YR6qrVEM3IH4Bck96IfbMw== " crossorigin = " anonymous " ></ script >
2016-08-09 11:54:42 +02:00
< ? php
2016-07-19 14:02:26 +02:00
endif ;
2016-08-09 11:54:42 +02:00
?>
2019-06-23 12:15:36 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/purify-1.0.11.js " integrity = " sha512-p7UyJuyBkhMcMgE4mDsgK0Lz70OvetLefua1oXs1OujWv9gOxh4xy8InFux7bZ4/DAZsTmO4rgVwZW9BHKaTaw== " crossorigin = " anonymous " ></ script >
making webassembly optional, ensuring retry button works when wrong password is provided
Tested configurations:
- browser with WASM support (Firefox 68.0.2)
- creates paste with zlib compression, no password
- creates paste with zlib compression, with password
- reads paste with zlib compression, no password
- reads paste with zlib compression, with password + retry button works
- reads paste without compression, no password
- reads paste without compression, with password + retry button works
- browser without WASM support (Chromium 76.0.3809.100, started via `chromium-browser --js-flags=--noexpose_wasm`)
- creates paste without compression, no password, but shows WASM warning
- creates paste without compression, with password, but shows WASM warning
- fails to read paste with zlib compression, no password + shows WASM error
- fails to read paste with zlib compression, with password + shows WASM error
- reads paste without compression, no password
- reads paste without compression, with password + retry button works
2019-09-08 08:21:54 +02:00
< script type = " text/javascript " data - cfasync = " false " src = " js/privatebin.js?<?php echo rawurlencode( $VERSION ); ?> " integrity = " sha512-tTyV/T13WEwhn9bKY1N0PVu5UFctbDY1qosTTrslVq0R3vPTPjjxSMbUZ3FZBf01rXu39HPV/ibQiD2fOEjYcA== " crossorigin = " anonymous " ></ script >
2019-06-17 21:09:21 +02:00
<!-- [ if IE ] >
< style type = " text/css " > body { padding - left : 60 px ; padding - right : 60 px ;} #ienotice {display:block;}</style>
2016-07-19 14:02:26 +02:00
<! [ endif ] -->
2017-01-08 10:13:12 +01:00
< link rel = " apple-touch-icon " href = " img/apple-touch-icon.png?<?php echo rawurlencode( $VERSION ); ?> " sizes = " 180x180 " />
< link rel = " icon " type = " image/png " href = " img/favicon-32x32.png?<?php echo rawurlencode( $VERSION ); ?> " sizes = " 32x32 " />
< link rel = " icon " type = " image/png " href = " img/favicon-16x16.png?<?php echo rawurlencode( $VERSION ); ?> " sizes = " 16x16 " />
2016-07-19 14:02:26 +02:00
< link rel = " manifest " href = " manifest.json?<?php echo rawurlencode( $VERSION ); ?> " />
2017-01-08 10:13:12 +01:00
< link rel = " mask-icon " href = " img/safari-pinned-tab.svg?<?php echo rawurlencode( $VERSION ); ?> " color = " #ffcc00 " />
< link rel = " shortcut icon " href = " img/favicon.ico " >
2016-07-19 14:02:26 +02:00
< meta name = " msapplication-config " content = " browserconfig.xml " >
< meta name = " theme-color " content = " #ffe57e " />
</ head >
2019-06-23 19:45:40 +02:00
< body data - compression = " <?php echo rawurlencode( $COMPRESSION ); ?> " >
2016-07-19 14:02:26 +02:00
< header >
< div id = " aboutbox " >
2017-01-01 16:33:11 +01:00
< ? php echo I18n :: _ ( '%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href="https://privatebin.info/">project page</a>.' , I18n :: _ ( $NAME )); ?> <br />
2016-08-09 11:54:42 +02:00
< ? php
if ( strlen ( $NOTICE )) :
?>
2016-07-19 14:02:26 +02:00
< span class = " blink " > ▶ </ span > < ? php echo htmlspecialchars ( $NOTICE );
2016-08-09 11:54:42 +02:00
endif ;
?>
2016-07-19 14:02:26 +02:00
</ div >
2017-01-01 16:33:11 +01:00
< h1 class = " title reloadlink " >< ? php echo I18n :: _ ( $NAME ); ?> </h1><br />
2016-08-09 11:54:42 +02:00
< h2 class = " title " >< ? php echo I18n :: _ ( 'Because ignorance is bliss' ); ?> </h2><br />
2016-07-19 14:02:26 +02:00
< h3 class = " title " >< ? php echo $VERSION ; ?> </h3>
2017-01-08 09:40:13 +01:00
< noscript >< div id = " noscript " class = " nonworking " >< ? php echo I18n :: _ ( 'JavaScript is required for %s to work.<br />Sorry for the inconvenience.' , I18n :: _ ( $NAME )); ?> </div></noscript>
2019-06-17 21:09:21 +02:00
< div id = " oldnotice " class = " nonworking " >< ? php echo I18n :: _ ( '%s requires a modern browser to work.' , I18n :: _ ( $NAME )); ?> </div>
< div id = " ienotice " class = " nonworking " >< ? php echo I18n :: _ ( 'Still using Internet Explorer? Do yourself a favor, switch to a modern browser:' ), PHP_EOL ; ?>
2016-07-19 14:02:26 +02:00
< a href = " https://www.mozilla.org/firefox/ " > Firefox </ a > ,
< a href = " https://www.opera.com/ " > Opera </ a > ,
2017-03-05 11:10:52 +01:00
< a href = " https://www.google.com/chrome " > Chrome </ a > …
2016-07-19 14:02:26 +02:00
</ div >
2019-06-17 21:40:37 +02:00
< ? php
if ( $HTTPWARNING ) :
?>
2019-06-21 19:03:45 +02:00
< div id = " httpnotice " class = " errorMessage " >
< ? php echo I18n :: _ ( 'This website is using an insecure connection! Please only use it for testing.' ); ?>
2019-06-22 07:52:18 +02:00
< span class = " small " >< ? php echo I18n :: _ ( 'For more information <a href="%s">see this FAQ entry</a>.' , 'https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-it-show-me-an-error-about-an-insecure-connection' ); ?> </span>
2019-06-21 19:03:45 +02:00
</ div >
2019-06-17 21:40:37 +02:00
< ? php
endif ;
?>
2016-07-19 14:02:26 +02:00
</ header >
< section >
< article >
2017-03-12 14:16:08 +01:00
< div id = " loadingindicator " class = " hidden " >< ? php echo I18n :: _ ( 'Loading…' ); ?> </div>
2016-07-19 14:02:26 +02:00
< div id = " status " >< ? php echo htmlspecialchars ( $STATUS ); ?> </div>
< div id = " errormessage " class = " hidden " >< ? php echo htmlspecialchars ( $ERROR ); ?> </div>
< div id = " toolbar " >
2016-08-09 11:54:42 +02:00
< button id = " newbutton " class = " reloadlink hidden " >< img src = " img/icon_new.png " width = " 11 " height = " 15 " alt = " " />< ? php echo I18n :: _ ( 'New' ); ?> </button>
2017-04-11 22:25:14 +02:00
< button id = " retrybutton " class = " reloadlink hidden " >< ? php echo I18n :: _ ( 'Retry' ), PHP_EOL ; ?> </button>
2016-08-09 11:54:42 +02:00
< button id = " sendbutton " class = " hidden " >< img src = " img/icon_send.png " width = " 18 " height = " 15 " alt = " " />< ? php echo I18n :: _ ( 'Send' ); ?> </button>
< button id = " clonebutton " class = " hidden " >< img src = " img/icon_clone.png " width = " 15 " height = " 17 " alt = " " />< ? php echo I18n :: _ ( 'Clone' ); ?> </button>
< button id = " rawtextbutton " class = " hidden " >< img src = " img/icon_raw.png " width = " 15 " height = " 15 " alt = " " />< ? php echo I18n :: _ ( 'Raw text' ); ?> </button>
2017-12-25 14:59:15 +01:00
< ? php
if ( $QRCODE ) :
?>
< button id = " qrcodelink " class = " hidden " >< img src = " img/icon_qr.png " width = " 15 " height = " 15 " alt = " " />< ? php echo I18n :: _ ( 'QR code' ); ?> </button>
< ? php
endif ;
?>
2016-08-09 11:54:42 +02:00
< div id = " expiration " class = " hidden button " >< ? php echo I18n :: _ ( 'Expires' ); ?> :
< select id = " pasteExpiration " name = " pasteExpiration " >
< ? php
foreach ( $EXPIRE as $key => $value ) :
?>
2016-07-19 14:02:26 +02:00
< option value = " <?php echo $key ; ?> " < ? php
2016-08-09 11:54:42 +02:00
if ( $key == $EXPIREDEFAULT ) :
?> selected="selected"<?php
endif ;
?> ><?php echo $value; ?></option>
< ? php
endforeach ;
?>
2016-07-19 14:02:26 +02:00
</ select >
</ div >
< div id = " remainingtime " class = " hidden " ></ div >
< div id = " burnafterreadingoption " class = " button hidden " >
2016-08-15 14:24:42 +02:00
< input type = " checkbox " id = " burnafterreading " name = " burnafterreading " < ? php
2016-08-09 11:54:42 +02:00
if ( $BURNAFTERREADINGSELECTED ) :
?> checked="checked"<?php
endif ;
?> />
< label for = " burnafterreading " >< ? php echo I18n :: _ ( 'Burn after reading' ); ?> </label>
</ div >
< ? php
if ( $DISCUSSION ) :
?>
2017-02-25 09:35:55 +01:00
< div id = " opendiscussionoption " class = " button hidden " >
2016-08-15 14:24:42 +02:00
< input type = " checkbox " id = " opendiscussion " name = " opendiscussion " < ? php
2016-08-09 11:54:42 +02:00
if ( $OPENDISCUSSION ) :
?> checked="checked"<?php
endif ;
?> />
2018-07-21 08:44:04 +02:00
< label for = " opendiscussion " >< ? php echo I18n :: _ ( 'Open discussion' ); ?> </label>
2016-08-09 11:54:42 +02:00
</ div >
< ? php
2016-07-19 14:02:26 +02:00
endif ;
2016-08-09 11:54:42 +02:00
if ( $PASSWORD ) :
?>
2016-07-19 14:02:26 +02:00
< div id = " password " class = " hidden " >
2016-08-09 11:54:42 +02:00
< input type = " password " id = " passwordinput " placeholder = " <?php echo I18n::_('Password (recommended)'); ?> " size = " 32 " />
</ div >
< ? php
endif ;
?>
< div id = " formatter " class = " button hidden " >< ? php echo I18n :: _ ( 'Format' ); ?> :
< select id = " pasteFormatter " name = " pasteFormatter " >
< ? php
foreach ( $FORMATTER as $key => $value ) :
?>
2016-07-19 14:02:26 +02:00
< option value = " <?php echo $key ; ?> " < ? php
2016-08-09 11:54:42 +02:00
if ( $key == $FORMATTERDEFAULT ) :
?> selected="selected"<?php
endif ;
?> ><?php echo $value; ?></option>
< ? php
endforeach ;
?>
2016-07-19 14:02:26 +02:00
</ select >
2016-08-09 11:54:42 +02:00
</ div >
< ? php
if ( strlen ( $LANGUAGESELECTION )) :
?>
2016-07-19 14:02:26 +02:00
< div id = " language " class = " button " >
2016-08-09 11:54:42 +02:00
< select name = " lang " >
< ? php
foreach ( $LANGUAGES as $key => $value ) :
?>
2016-08-09 14:46:32 +02:00
< option data - lang = " <?php echo $key ; ?> " value = " <?php echo $key ; ?> " < ? php
2016-08-09 11:54:42 +02:00
if ( $key == $LANGUAGESELECTION ) :
?> selected="selected"<?php
endif ;
?> ><?php echo $value[0]; ?> (<?php echo $value[1]; ?>)</option>
< ? php
endforeach ;
?>
2016-07-19 14:02:26 +02:00
</ select >
2016-08-09 11:54:42 +02:00
</ div >
< ? php
endif ;
?>
2016-07-19 14:02:26 +02:00
</ div >
2018-01-02 08:23:11 +01:00
< ? php
if ( $QRCODE ) :
?>
< div id = " qrcode-display " ></ div >
< ? php
endif ;
?> <div id="pastesuccess" class="hidden">
2016-07-19 14:02:26 +02:00
< div id = " deletelink " ></ div >
2018-02-25 10:09:19 +01:00
< div id = " pastelink " ></ div >
2016-08-09 11:54:42 +02:00
< ? php
if ( strlen ( $URLSHORTENER )) :
?>
2018-02-25 10:09:19 +01:00
< button id = " shortenbutton " data - shortener = " <?php echo htmlspecialchars( $URLSHORTENER ); ?> " >< img src = " img/icon_shorten.png " width = " 13 " height = " 15 " />< ? php echo I18n :: _ ( 'Shorten URL' ); ?> </button>
2016-08-09 11:54:42 +02:00
< ? php
endif ;
?>
</ div >
< ? php
if ( $FILEUPLOAD ) :
?>
< div id = " attachment " class = " hidden " >< a >< ? php echo I18n :: _ ( 'Download attachment' ); ?> </a></div>
2016-07-19 14:02:26 +02:00
< div id = " attach " class = " hidden " >
2016-08-09 11:54:42 +02:00
< span id = " clonedfile " class = " hidden " >< ? php echo I18n :: _ ( 'Cloned file attached.' ); ?> </span>
< span id = " filewrap " >< ? php echo I18n :: _ ( 'Attach a file' ); ?> : <input type="file" id="file" name="file" /></span>
2017-05-13 21:43:32 +02:00
< span id = " dragAndDropFileName " class = " dragAndDropFile " >< ? php echo I18n :: _ ( 'alternatively drag & drop a file or paste an image from the clipboard' ); ?> </span>
2016-08-09 11:54:42 +02:00
< button id = " fileremovebutton " >< ? php echo I18n :: _ ( 'Remove attachment' ); ?> </button>
</ div >
< ? php
endif ;
?>
2016-07-19 14:02:26 +02:00
< div id = " preview " class = " hidden " >
2016-08-09 11:54:42 +02:00
< button id = " messageedit " >< ? php echo I18n :: _ ( 'Editor' ); ?> </button>
< button id = " messagepreview " >< ? php echo I18n :: _ ( 'Preview' ); ?> </button>
2016-07-19 14:02:26 +02:00
</ div >
2017-02-12 15:35:37 +01:00
< div id = " attachmentPreview " class = " hidden " ></ div >
2016-07-19 14:02:26 +02:00
< div id = " prettymessage " class = " hidden " >
< pre id = " prettyprint " class = " prettyprint linenums:1 " ></ pre >
</ div >
2017-03-12 14:16:08 +01:00
< div id = " plaintext " class = " hidden " ></ div >
2016-07-19 14:02:26 +02:00
< textarea id = " message " name = " message " cols = " 80 " rows = " 25 " class = " hidden " ></ textarea >
</ article >
</ section >
< section >
< div id = " discussion " class = " hidden " >
2016-08-09 11:54:42 +02:00
< h4 class = " title " >< ? php echo I18n :: _ ( 'Discussion' ); ?> </h4>
2017-03-12 14:16:08 +01:00
< div id = " commentcontainer " ></ div >
2016-07-19 14:02:26 +02:00
</ div >
</ section >
2017-03-12 14:16:08 +01:00
< ? php
if ( $DISCUSSION ) :
?>
2018-04-30 20:01:38 +02:00
< div id = " serverdata " class = " hidden " aria - hidden = " true " >
2017-03-12 14:16:08 +01:00
< div id = " templates " >
< article id = " commenttemplate " class = " comment " >< div class = " commentmeta " >< span class = " nickname " > name </ span >< span class = " commentdate " > 0000 - 00 - 00 </ span ></ div >< div class = " commentdata " > c </ div >< button class = " btn btn-default btn-sm " >< ? php echo I18n :: _ ( 'Reply' ); ?> </button></article>
< div id = " commenttailtemplate " class = " comment " >< button class = " btn btn-default btn-sm " >< ? php echo I18n :: _ ( 'Add comment' ); ?> </button></div>
2017-03-13 21:11:26 +01:00
< div id = " replytemplate " class = " reply hidden " >< input type = " text " id = " nickname " class = " form-control " title = " <?php echo I18n::_('Optional nickname…'); ?> " placeholder = " <?php echo I18n::_('Optional nickname…'); ?> " />< textarea id = " replymessage " class = " replymessage form-control " cols = " 80 " rows = " 7 " ></ textarea >< br />< div id = " replystatus " role = " alert " class = " statusmessage hidden alert " >< span class = " glyphicon " aria - hidden = " true " ></ span > </ div >< button id = " replybutton " class = " btn btn-default btn-sm " >< ? php echo I18n :: _ ( 'Post comment' ); ?> </button></div>
2017-03-12 14:16:08 +01:00
</ div >
2018-04-30 20:01:38 +02:00
</ div >
2017-03-12 14:16:08 +01:00
< ? php
endif ;
2019-08-16 01:28:42 +02:00
?>
< ? php
if ( $FILEUPLOAD ) :
?>
< div id = " dropzone " class = " hidden " tabindex = " -1 " aria - hidden = " true " ></ div >
< ? php
endif ;
2017-03-12 14:16:08 +01:00
?>
2017-12-25 14:59:15 +01:00
< section class = " container " >
2016-12-12 18:37:54 +01:00
< div id = " noscript " role = " alert " class = " nonworking alert alert-info noscript-hide " >< span class = " glyphicon glyphicon-exclamation-sign " aria - hidden = " true " >
< span > < ? php echo I18n :: _ ( 'Loading…' ); ?> </span><br>
< span class = " small " >< ? php echo I18n :: _ ( 'In case this message never disappears please have a look at <a href="https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away">this FAQ for information to troubleshoot</a>.' ); ?> </span>
</ div >
</ section >
2016-07-19 14:02:26 +02:00
</ body >
</ html >