cgi_redirect(3)

πŸ’« cgi_redirect β€” the manual page, bestie edition πŸ’«

okay so we're doing cgi_redirect(3), which lives in the cgi/cgi.h manual. it's a ClearSilver thing. it's giving "send the people somewhere else on purpose" energy and honestly? iconic.


✨ NAME ✨

cgi_redirect β€” send an HTTP 302 redirect response 🫢

like. you point the user at a different page. that's the whole job. no cap.


✨ SYNOPSIS ✨

#include <cgi/cgi.h>

void cgi_redirect (CGI *cgi, const char *fmt, ...)
                   ATTRIBUTE_PRINTF(2,3);

✨ ARGUMENTS ✨

  • cgi β€” the cgi struct 🌸 literally just the cgi struct, she's the main character here
  • fmt β€” printf style format with args ✨ yes bestie, it's a format string, we love a format string

✨ DESCRIPTION ✨

so cgi_redirect will redirect the user to another page on your site πŸ’…

this version takes only the path portion of the URL. that's it. path only. don't come at her with a whole scheme and hostname, she said path portion and she meant it.

and now the part where you have to listen to me, because this is the vibe check: as with all printf style commands, you should not call this with arbitrary input that may contain % characters 😭 fr fr, % in a format string is not a cute look. if you are forwarding something directly, use a format like this:

cgi_redirect (cgi, "%s", buf)

that way buf is an argument, not a format string, and nothing weird happens. periodt. πŸ’–


✨ RETURN VALUE ✨

None πŸŽ€ nothing. nada. she does her thing and gives you nothing back. that's the arrangement.


✨ SEE ALSO ✨

cgi_debug_init(3), cgi_parse(3), cgi_destroy(3), cgi_js_escape(3), cgi_html_escape_strfunc(3), cgi_register_strfuncs(3), cgi_output(3), parse_rfc2388(3), cgi_url_validate(3), open_upload(3), cgi_cs_init(3), cgi_url_escape_more(3), cgi_html_strip_strfunc(3), cgi_neo_error(3), cgi_redirect(3), cgi_filehandle(3), cgi_register_parse_cb(3), cgi_url_escape(3), cgi_init(3), cgi_redirect_uri(3), cgi_cookie_clear(3), cgi_url_unescape(3), cgi_vredirect(3), cgi_display(3), cgi_html_ws_strip(3), cgi_error(3), cgi_cookie_set(3), cgi_text_html_strfunc(3), cgi_cookie_authority

go read those too, i know you want to πŸ¦‹


lowkey reminder: path portion only, and never let arbitrary input be your format string. that's the whole plot. πŸ’€

and that's the page bestie!! 🌈 this was ClearSilver, dated 12 July 2007 β€” yes she's vintage, she's timeless, she ate and left no crumbs πŸ‘‘πŸ’œ