From a885e4d8b3842709c71e077ea991342c7f4aa814 Mon Sep 17 00:00:00 2001 From: Benjamin Kellermann Date: Wed, 25 Nov 2009 09:54:56 +0100 Subject: distinguish between title and url --- index.cgi | 52 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 16 deletions(-) (limited to 'index.cgi') diff --git a/index.cgi b/index.cgi index a3556ad..79d9e6b 100755 --- a/index.cgi +++ b/index.cgi @@ -43,14 +43,15 @@ $htlm.add_atom("atom.cgi") if File.exists?("atom.cgi") $html << "

dudle

" -if $cgi.include?("create_poll") - SITE=$cgi["create_poll"] - if SITE.include?("/") - createnotice = "
Error: The character '/' is not allowed.
" - elsif File.exist?(SITE) - createnotice = "
Error: This poll already exists!
" - else Dir.mkdir(SITE) - Dir.chdir(SITE) +if $cgi.include?("create_poll") && $cgi.include?("poll_url") + POLLNAME=$cgi["create_poll"] + POLLURL=$cgi["poll_url"] + if !(POLLURL =~ /^[\w\-_]*$/) + createnotice = "Custom alias may only contain letters, numbers, and dashes." + elsif File.exist?(POLLURL) + createnotice = "A Poll with this alias already exists." + else Dir.mkdir(POLLURL) + Dir.chdir(POLLURL) VCS.init File.symlink("../participate.rb","index.cgi") VCS.add("index.cgi") @@ -62,9 +63,9 @@ if $cgi.include?("create_poll") File.open(f,"w").close VCS.add(f) } - Poll.new(SITE,$cgi["poll_type"]) + Poll.new(POLLNAME,$cgi["poll_type"]) Dir.chdir("..") - escapedsite = SITEURL + CGI.escapeHTML(CGI.escape(SITE)) + "/edit_columns.cgi" + escapedsite = SITEURL + CGI.escapeHTML(CGI.escape(POLLURL)) + "/edit_columns.cgi" escapedsite.gsub!("+"," ") $html.header["status"] = "REDIRECT" $html.header["Cache-Control"] = "no-cache" @@ -78,14 +79,14 @@ unless $html.header["status"] == "REDIRECT" $html << <Create New Poll
- +
- - + + - - + - + + + + + + + +CREATE + if defined?(createnotice) + $html << < + + +NOTICE + end + $html << < CREATE -- cgit v1.2.3
Type: + Type:
@@ -95,8 +96,27 @@ unless $html.header["status"] == "REDIRECT"
Custom alias (optional): + May contain letters, numbers, and dashes.
+
+ #{createnotice} +