-
Notifications
You must be signed in to change notification settings - Fork 1
/
ensalutu.php
executable file
·136 lines (113 loc) · 3.26 KB
/
ensalutu.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
/**
* Ensaluta formularo.
*
* Ĉiuj paĝoj plusendas ĉi tien, se la uzanto ne estas ensalutita.
*
* La formularo sendas tiujn parametrojn:
*
* $_POST['uzanto'] - uzantonomo entajpita.
* $_POST['pasvorto'] - pasvorto entajpita.
*
* (kaj kopiojn el tiuj variabloj, kiujn aliaj sendis antaŭe.)
*
* Aliaj paĝoj sendas tion:
*
* $_POST['mesagxo']/$_GET['mesagxo']:
* mesaĝo montrenda apud la ensalutilo.
* $_POST['irual']/$_GET['irual']:
* paĝo, al kiu ni plusendu post sukcesa ensaluto.
* (Se ne donita, ni sendas al proponoj.php.)
* $_GET['elsalutu']
* se 'elsalutu', tiam ni forigas la sesiajn informojn.
*/
session_start();
if(isset($_REQUEST['elsalutu']) &&
$_REQUEST['elsalutu'] == 'elsalutu')
unset($_SESSION['uzanto']);
/**
* Kontrolas, ĉu la kombino de uzanto kaj pasvorto estas valida.
* La funkcio antaŭe konektas al la datumbazo.
*
* @param string $uzanto la uzantonomo
* @param string $pasvorto la pasvorto (en la pura formo entajpita
* de la uzanto)
* @return boolean true, se estas ĝusta, alikaze false.
*/
function valida($uzanto, $pasvorto)
{
$db = dbMalfermu();
if(!$db)
{
echo 'Ne sukcesis malfermi konekton al la datumbazo!<br>';
return false;
}
return kontroluPasvorton($uzanto, $pasvorto);
}
/**
* kreas ensalutan formularon.
* @param string $mesagxo teksto montrenda super la formularo.
*/
function kreu($mesagxo)
{
metu_kapon("Ensaluto");
echo "</div>\n\n";
echo "<p>" . $mesagxo . "</p>\n";
echo "<form action='ensalutu.php' method='POST'>\n<p>";
if (isset($_POST['mesagxo'])) {
$mesagxTeksto = urldecode($_POST['mesagxo']);
}
else if(isset($_GET['mesagxo'])) {
// $_GET jam faris la urldecode().
$mesagxTeksto = $_GET['mesagxo'];
}
else {
$mesagxTeksto = false;
}
if ($mesagxTeksto) {
echo "<input type='hidden' name='mesagxo' value='" .
urlEncode($mesagxTeksto) . "' />\n";
echo "" . htmlspecialchars($mesagxTeksto) . "</p>\n<p>";
}
if (isset($_GET['irual'])) {
// resendi finan celon.
echo "<input type='hidden' name='irual' value='" .
urlencode($_GET['irual']) . "' />\n";
}
else if (isset($_POST['irual'])) {
// resendi finan celon.
echo "<input type='hidden' name='irual' value='" .
$_POST['irual'] . "' />\n";
}
// la formularo por ensaluti.
echo "Uzanto: <input type='text' name='uzanto' /><br />\n";
echo "Pasvorto: <input type='password' name='pasvorto' /><br/>\n";
echo "<input type='submit' value='Ek!' />";
echo "</p>\n</form>\n";
echo "</body>";
echo "</html>";
}
require_once('ink.php');
if(isset($_POST['uzanto']) || isset($_POST['pasvorto']))
{
if(valida($_POST['uzanto'], $_POST['pasvorto']))
{
$_SESSION['uzanto'] = $_POST['uzanto'];
if(isset($_POST['irual']))
$iruAl = urldecode($_POST['irual']);
else
$iruAl = dirname($_SERVER['REQUEST_URI']) . '/proponoj.php';
plusenduAl($iruAl);
echo "<html><head><title>Plusendo</title></head>
<body><p>Bonvolu sekvu la <a href='$iruAl'>Plusendon</a>.</p></body></html>";
exit();
}
else
{
kreu('Nevalida uzanto kaj/aŭ pasvorto!</p>'.
'<p>Se vi forgesis vian pasvorton, kontaktu la '.
' Ĝeneralan Sekretarion, kiu povas krei novan por vi.');
}
}
else
kreu('Saluton!');