00001 <?php
00002
00003
00004
00005
00006
00007
00024
00025 require_once('text.php');
00026 require_once ('config.php');
00027 require_once('util.php');
00028 require_once('fields.php');
00029
00030 session_start();
00031
00032
00033
00034 $lang = (isset($_GET['lang'])) ? $_GET['lang'] : $lang_default;
00035
00036 if (!isset($text_multi[$lang]))
00037 $lang = $lang_default;
00038
00039 $text = $text_multi[$lang];
00040 $buttons = $buttons_multi[$lang];
00041 $months = $months_multi[$lang];
00042
00043
00044
00045 ($link = mysql_pconnect($dbhost, $dbuser, $dbpass)) or db_error_mysql();
00046 mysql_select_db($dbname,$link) or db_error_mysql();
00047
00048
00049
00050 fields_init($link, $lang);
00051
00052
00053
00054
00055
00071
00072 $pageinfo = array(
00073
00074 1 => array (
00075
00076 "edit" => array (
00077 array( label => $fields["last_name"]["label"],
00078 fields => array("last_name")),
00079 array( label => $fields["first_name"]["label"],
00080 fields => array("first_name")),
00081 array( label => $fields["title"]["label"],
00082 fields => array("title")),
00083 array( label => $fields["sex"]["label"],
00084 fields => array("sex")),
00085 array( label => $fields["birthday"]["label"],
00086 fields => array("birthday")),
00087 array( label => $text["i_am"],
00088 fields => array("usertype")),
00089 array( label => $fields["student_id"]["label"],
00090 fields => array("student_id")),
00091 ),
00092
00093 "valid_params" => array (
00094 "button" => "/^(" . $buttons['next'] . "|" .
00095 $buttons['cancel'] . "|" .
00096 ")$/",
00097 "last_name" => $fields["last_name"]["valid"],
00098 "first_name" => $fields["first_name"]["valid"],
00099 "title" => $fields["title"]["valid"],
00100 "sex" => $fields["sex"]["valid"],
00101 "birthday_day" => "/^[0-9][0-9]$/",
00102 "birthday_month" => "/^[0-9][0-9]$/",
00103 "birthday_year" => "/^[0-9][0-9][0-9][0-9]$/",
00104 "usertype" => $fields["usertype"]["valid"],
00105 "student_id" => $fields["student_id"]["valid"],
00106 "lang" => "/^(de|en)$/",
00107 "finishURL" => "/^.*$/",
00108 "cancelURL" => "/^.*$/"
00109 )
00110 ),
00111
00112 2 => array (
00113
00114 "edit" => array(
00115 array( label => $fields["carry_over_1"]["label"],
00116 fields => array("carry_over_1")),
00117 array( "label" =>
00118 $fields['street_1']['label'] . " / " .
00119 $fields['house_1']['label'] . " / " .
00120 $fields['room_1']['label'],
00121 "fields" => array("street_1","house_1","room_1") ),
00122 array( "label" =>
00123 $fields['zip_1']['label'] . " / " .
00124 $fields['town_1']['label'],
00125 "fields" => array("zip_1", "town_1") ),
00126 array( "label" => $fields["phone_1"]["label"],
00127 "fields" => array("phone_1")),
00128 array( "label" => $fields["mobile_1"]["label"],
00129 "fields" => array("mobile_1"))
00130 ),
00131
00132 "valid_params" => array (
00133 "button" => "/^(" . $buttons['next'] . "|" .
00134 $buttons['prev'] . "|" .
00135 $buttons['cancel'] . "|" .
00136 ")$/",
00137 "carry_over_1" => $fields["carry_over_1"]["valid"],
00138 "street_1" => $fields["street_1"]["valid"],
00139 "house_1" => $fields["house_1"]["valid"],
00140 "room_1" => $fields["room_1"]["valid"],
00141 "zip_1" => $fields["zip_1"]["valid"],
00142 "town_1" => $fields["town_1"]["valid"],
00143 "phone_1" => $fields["phone_1"]["valid"],
00144 "mobile_1" => $fields["mobile_1"]["valid"],
00145 "lang" => "/^(de|en)$/",
00146 "finishURL" => "/^.*$/",
00147 "cancelURL" => "/^.*$/"
00148 )
00149 ),
00150 3 => array (
00151
00152 "edit" => array(
00153 array( label => $fields["carry_over_2"]["label"],
00154 fields => array("carry_over_2")),
00155 array( "label" =>
00156 $fields['street_2']['label'] . " / " .
00157 $fields['house_2']['label'] . " / " .
00158 $fields['room_2']['label'],
00159 "fields" => array("street_2","house_2","room_2") ),
00160 array( "label" =>
00161 $fields['zip_2']['label'] . " / " .
00162 $fields['town_2']['label'],
00163 "fields" => array("zip_2", "town_2") ),
00164 array( "label" => $fields["phone_2"]["label"],
00165 "fields" => array("phone_2")),
00166 array( "label" => $fields["mobile_2"]["label"],
00167 "fields" => array("mobile_2"))
00168 ),
00169
00170 "valid_params" => array (
00171 "button" => "/^(" . $buttons['next'] . "|" .
00172 $buttons['prev'] . "|" .
00173 $buttons['cancel'] . "|" .
00174 ")$/",
00175 "carry_over_2" => $fields["carry_over_2"]["valid"],
00176 "street_2" => $fields["street_2"]["valid"],
00177 "house_2" => $fields["house_2"]["valid"],
00178 "room_2" => $fields["room_2"]["valid"],
00179 "zip_2" => $fields["zip_2"]["valid"],
00180 "town_2" => $fields["town_2"]["valid"],
00181 "phone_2" => $fields["phone_2"]["valid"],
00182 "mobile_2" => $fields["mobile_2"]["valid"],
00183 "lang" => "/^(de|en)$/",
00184 "finishURL" => "/^.*$/",
00185 "cancelURL" => "/^.*$/"
00186 )
00187 ),
00188
00189 4 => array (
00190 "edit" => array(),
00191 "valid_params" => array(
00192 "button" => "/^(" . $buttons['next'] . "|" .
00193 $buttons['finish'] . "|" .
00194 $buttons['cancel'] . "|" .
00195 ")$/",
00196 "lang" => "/^(de|en)$/",
00197 "finishURL" => "/^.*$/",
00198 "cancelURL" => "/^.*$/"
00199 )
00200 )
00201
00202 );
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213 $default_params = array(
00214 "button" => "",
00215 "page" => "1",
00216 "lang" => $lang_default
00217 );
00218
00219
00220
00221 foreach ($default_params as $k => $v) {
00222 if (!isset($_SESSION[$k]))
00223 $_SESSION[$k] = $v;
00224 }
00225
00226
00227
00228
00229 $_SESSION["error"] = array();
00230
00231
00232
00233 foreach ( array_merge($_POST, $_GET) as $k => $v) {
00234
00235 $v = normalize_input($v);
00236
00237
00238
00239 if (!param_ok($pageinfo[$_SESSION['page']]["valid_params"], $k, $v )) {
00240 $_SESSION["error"][$k] = TRUE;
00241 }
00242
00243 $_SESSION[$k] = $v;
00244
00245
00246 }
00247
00248
00249
00250 if (isset($_SESSION["birthday_month"])) {
00251
00252 $year = (isset($_SESSION["birthday_year"])) ?
00253 $_SESSION["birthday_year"] : "0000";
00254 $month = (isset($_SESSION["birthday_month"])) ?
00255 $_SESSION["birthday_month"] : "00";
00256 $day = (isset($_SESSION["birthday_day"])) ?
00257 $_SESSION["birthday_day"] : "00";
00258
00259
00260 if (!checkdate($month, $day, $year) ) {
00261 $_SESSION["error"]["birthday"] = TRUE;
00262 } else {
00263
00264 if (strlen($day) == 1)
00265 $day = "0$day";
00266
00267 if (strlen($year) == 1)
00268 $year = "000$year";
00269 else if (strlen($year) == 2)
00270 $year = "00$year";
00271 else if (strlen($year) == 3)
00272 $year = "0$year";
00273
00274 $thisyear = strftime('%Y');
00275
00276 if ($year < 1900 or (($thisyear - $year) < 16) )
00277 $_SESSION["error"]["birthday"] = TRUE;
00278 }
00279
00280 $_SESSION["birthday"] = "$year-$month-$day";
00281
00282 unset($_SESSION["error"]["birthday_day"]);
00283 unset($_SESSION["error"]["birthday_month"]);
00284 unset($_SESSION["error"]["birthday_year"]);
00285 }
00286
00287
00288
00289 if (isset($_SESSION["student_id"])) {
00290
00291 $user_type = $_SESSION["usertype"];
00292
00293
00294
00295
00296 if ( $user_type <= 3 and empty($_SESSION["student_id"]))
00297 $_SESSION["error"]["student_id"] = TRUE;
00298
00299
00300 if ( $user_type > 3 and !empty($_SESSION["student_id"])) {
00301 $_SESSION["student_id"] = "";
00302 unset($_SESSION["error"]["student_id"]);
00303 }
00304 }
00305
00306
00307
00308
00309 if (!empty($_SESSION["button"])) {
00310 $b = $_SESSION["button"];
00311
00312
00313
00314
00315 if ($b == $buttons['prev'])
00316 $_SESSION['page']--;
00317 else if (($b == $buttons['next']) or ($b == $buttons['finish'])) {
00318 if (empty($_SESSION['error']))
00319 $_SESSION['page']++;
00320 }
00321 else if ($b == $buttons['cancel']) {
00322 $url = strtr($_SESSION['cancelURL'],
00323 array('@lang@' => $lang));
00324 session_destroy();
00325 redirect($url);
00326 }
00327
00328 unset($_SESSION["button"]);
00329 }
00330
00331
00332
00333
00334 if ($_SESSION['page'] > 4) {
00335 $_SESSION['edit_finished'] = true;
00336 $url = strtr($_SESSION['finishURL'], array('@lang@' => $lang));
00337 redirect($url);
00338 }
00339
00340
00341
00342 print strtr($text['html_header'], array( "@notabene@" => "", "@bodyattr@" => "",
00343 "@url-de@" => "edit.php?lang=de", "@url-en@" => "edit.php?lang=en" ));
00344 print $text['user_info'];
00345 print '<form method="POST">';
00346
00347
00348
00349
00350 if ($_SESSION["page"] < 1) $_SESSION["page"] = 1;
00351 if ($_SESSION["page"] > 5) $_SESSION["page"] = 5;
00352
00353 $p = $_SESSION["page"];
00354
00355
00356 $pi_entry = $pageinfo[$p]["edit"];
00357
00358
00359
00360 $errors=FALSE;
00361
00362 if (!empty($_SESSION["error"])) {
00363
00364 foreach ($pi_entry as $k => $v) {
00365
00366 $is_err = FALSE;
00367
00368 foreach ( $v["fields"] as $f) {
00369
00370
00371 if (!empty($_SESSION["error"][$f]))
00372 $is_err = TRUE;
00373 }
00374
00375
00376
00377 if ($is_err) {
00378 $pi_entry[$k]["label"] =
00379 $text["error"] . $pi_entry[$k]["label"];
00380 $errors=TRUE;
00381 }
00382 }
00383 }
00384
00385
00386
00387
00388
00389 if (($p == 2) or ($p == 3)) {
00390
00391 $x = ($p == 2) ? "primary" : "secondary";
00392
00393 $q = "select address_types.name " .
00394 "from address_types, usertypes " .
00395 "where address_types.id = usertypes.${x}_address_type " .
00396 "and usertypes.id='@id@' and lang='@lang@'";
00397
00398
00399
00400
00401
00402
00403 $r = db_query_mysql($link, $q,
00404 array('@id@' => $_SESSION['usertype'], '@lang@' => $lang));
00405
00406 $usertype_name = (empty($r)) ? "" : $r[1][0];
00407
00408 print "<h1>" . htmlentities($usertype_name) . "</h1>";
00409
00410
00411
00412
00413
00414
00415 }
00416
00417 if ($p == 4) {
00418
00419
00420
00421
00422 $table1 = array(
00423 array( "label" => $fields['last_name']["label"],
00424 "value" => $_SESSION['last_name'],
00425 ),
00426 array( "label" => $fields['first_name']["label"],
00427 "value" => $_SESSION['first_name'],
00428 ),
00429 array( "label" => $fields['title']["label"],
00430 "value" => $_SESSION['title'],
00431 ),
00432 array( "label" => $fields['sex']["label"],
00433 "value" => ($_SESSION['sex'] == m ) ? $text['sex_m'] : $text['sex_w'],
00434 )
00435 );
00436
00437
00438 list( $year, $month, $day ) = split('-',$_SESSION['birthday']);
00439
00440 $table2 = array(
00441 array( "label" => $fields['birthday']["label"],
00442 "value" => $day . "-" . $month . "-" . $year
00443 ),
00444
00445 array( "label" => $fields['usertype']["label"],
00446 "query" => "select usertype_names.name " .
00447 "from usertype_names " .
00448 "where usertype_id = @usertype@ " .
00449 "and usertype_names.type = '@sex@' " .
00450 "and lang='@lang@'"
00451 ),
00452
00453 array( "label" => $fields['student_id']["label"],
00454 "value" => $_SESSION['student_id']
00455 ),
00456 array( "label" => " ",
00457 "value" => ""
00458 )
00459 );
00460
00461
00462 $table3 = array(
00463 array( "label" => " ",
00464 "query" => "select address_types.name " .
00465 "from address_types, usertypes " .
00466 "where address_types.id = usertypes.primary_address_type " .
00467 "and usertypes.id='@usertype@' and lang='@lang@'"
00468 ),
00469 array( "label" => $fields['carry_over_1']['label'],
00470 "value" => $_SESSION['carry_over_1']
00471 ),
00472
00473 array( "label" => $fields['street_1']['label'] . " / " .
00474 $fields['house_1']['label'],
00475 "value" => $_SESSION['street_1'] . " " . $_SESSION['house_1']
00476 ),
00477 array( "label" => $fields['room_1']['label'],
00478 "value" => $_SESSION['room_1']
00479 ),
00480 array( "label" => $fields['zip_1']['label'] . " / " .
00481 $fields['town_1']['label'],
00482 "value" => $_SESSION['zip_1'] . " " . $_SESSION['town_1']
00483 ),
00484 array( "label" => $fields['phone_1']["label"],
00485 "value" => $_SESSION['phone_1']
00486 ),
00487 array( "label" => $fields['mobile_1']["label"],
00488 "value" => $_SESSION['mobile_1']
00489 )
00490 );
00491
00492 $table4 = array(
00493 array( "label" => " ",
00494 "query" => "select address_types.name " .
00495 "from address_types, usertypes " .
00496 "where address_types.id = usertypes.secondary_address_type " .
00497 "and usertypes.id='@usertype@' and lang='@lang@'"
00498 ),
00499 array( "label" => $fields['carry_over_2']['label'],
00500 "value" => $_SESSION['carry_over_2']
00501 ),
00502
00503 array( "label" => $fields['street_2']['label'] . " / " .
00504 $fields['house_2']['label'],
00505 "value" => $_SESSION['street_2'] . " " . $_SESSION['house_2']
00506 ),
00507 array( "label" => $fields['room_2']['label'],
00508 "value" => $_SESSION['room_2']
00509 ),
00510 array( "label" => $fields['zip_2']['label'] . " / " .
00511 $fields['town_2']['label'],
00512 "value" => $_SESSION['zip_2'] . " " . $_SESSION['town_2']
00513 ),
00514 array( "label" => $fields['phone_2']["label"],
00515 "value" => $_SESSION['phone_2']
00516 ),
00517 array( "label" => $fields['mobile_2']["label"],
00518 "value" => $_SESSION['mobile_2']
00519 )
00520 );
00521
00522
00523
00524 $kw = array('@id@' => $_SESSION['id'], '@lang@' => $lang,
00525 '@usertype@' => $_SESSION['usertype'], '@sex@' => $_SESSION['sex'] );
00526
00527 print '<table width="100%" border="1" ><tr><td width="50%">';
00528 print_table($table1, 1 , "border=0", $link, $kw);
00529 print '</td><td>';
00530 print_table($table2, 1 , "border=0", $link, $kw);
00531 print '</td></tr><tr><td>';
00532 print_table($table3, 1 , "border=0", $link, $kw);
00533 print '</td><td>';
00534 print_table($table4, 1 , "border=0", $link, $kw);
00535 print '</td></tr></table>';
00536
00537 print $text['info_1'];
00538
00539 } else {
00540
00541 $kw = array('@lang@' => $lang);
00542 print_table($pi_entry, 1, "border=\"0\"", $link, $kw);
00543
00544
00545
00546 if ($errors) {
00547 print $text["error"];
00548 print $text["error_msg"];
00549 } else {
00550 print "<br><br>";
00551 }
00552 }
00553
00554
00555
00556
00557 $x = ($p > 1) ? "" : 'disabled="yes"';
00558 $val = ($p == 4) ? $buttons['finish'] : $buttons['next'];
00559
00560 print "<input type=\"submit\" name=\"button\" " .
00561 "value=\"" . $buttons['prev'] . "\" $x>";
00562
00563 print "<input type=\"submit\" name=\"button\" value=\"$val\" >";
00564
00565 print ' <input name="button" ' .
00566 'type="submit" value="' . $buttons['cancel'] . '"> ';
00567
00568
00569 print $text['html_footer'];
00570 mysql_close($link);
00571
00572 ?>