true no platform_connect() para repor a sessão, e o // auth_remember_clear() ao sair — ver o README, «Connecting a site». /** * O campo da palavra-passe com o botão de a mostrar. * * $o: name ('password'), id ('password'), label ('Palavra-passe'; '' = sem * etiqueta), autocomplete ('current-password' | 'new-password'), required * (true), minlength (null), class (classes extra do ). */ function platform_password_field(array $o = []): string { static $scriptPrinted = false; $o += ['name' => 'password', 'id' => 'password', 'label' => 'Palavra-passe', 'autocomplete' => 'current-password', 'required' => true, 'minlength' => null, 'class' => '']; $e = fn($s) => htmlspecialchars((string) $s, ENT_QUOTES, 'UTF-8'); $eye = ''; $eyeOff = ''; $html = ''; if ($o['label'] !== '') $html .= ''; $html .= '
' . '' . '' . '
'; if (!$scriptPrinted) { $scriptPrinted = true; // Um clique mostra, outro esconde. Volta sempre a esconder ao submeter, // para o browser não oferecer guardar a palavra-passe como texto. $html .= ''; } return $html; } /** * A caixa «Manter sessão iniciada». Desmarcada por omissão (e remarcada quando * o formulário volta com um erro). O número de dias vem do mesmo sítio que o * mecanismo usa, para o texto não mentir. */ function platform_remember_field(string $name = 'remember'): string { $days = function_exists('auth_remember_days') ? auth_remember_days() : 30; $checked = !empty($_POST[$name]) ? ' checked' : ''; $id = 'pt-remember-' . preg_replace('/[^a-z0-9_-]/i', '', $name); return '
' . '' . '' . '
Durante ' . (int) $days . ' dias neste dispositivo. Não marque num computador partilhado.
' . '
'; }