@@ -1457,82 +1457,81 @@
1457 1457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1458 1458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Page to allow users to self-register. The "self-register" setting
1459 1459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** must be enabled for this page to operate.
1460 1460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1461 1461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void register_page(void){
1462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zUsername, *zPasswd, *zConfirm, *zContact, *zCS, *zPw, *zCap;
1462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zUserID, *zPasswd, *zConfirm, *zEAddr;
1463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zDName;
1463 1464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned int uSeed;
1464 1465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDecoded;
1465 1466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zCaptcha;
1467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iErrLine = -1;
1468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zErr;
1466 1469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !db_get_boolean("self-register", 0) ){
1467 1470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("Registration not possible");
1468 1471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p>This project does not allow user self-registration. Please contact the
1469 1472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ project administrator to obtain an account.</p>
1470 1473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
1471 1474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
1472 1475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1473 1476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1474 1477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("Register");
1475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zUsername = P("u");
1476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zPasswd = P("p");
1477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zConfirm = P("cp");
1478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zContact = P("c");
1479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zCap = P("cap");
1480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zCS = P("cs"); /* Captcha Secret */
1478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zUserID = PDT("u","");
1479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPasswd = PDT("p","");
1480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zConfirm = PDT("cp","");
1481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zEAddr = PDT("ea","");
1482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDName = PDT("dn","");
1481 1483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1482 1484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Try to make any sense from user input. */
1483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( P("new") ){
1484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zCS==0 ) fossil_redirect_home(); /* Forged request */
1485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zPw = captcha_decode((unsigned int)atoi(zCS));
1486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !(zUsername && zPasswd && zConfirm && zContact) ){
1487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><span class="loginError">
1488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ All fields are obligatory.
1489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </span></p>
1490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( strlen(zPasswd) < 6){
1491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><span class="loginError">
1492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ Password too weak.
1493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </span></p>
1494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( fossil_strcmp(zPasswd,zConfirm)!=0 ){
1495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><span class="loginError">
1496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ The two copies of your new passwords do not match.
1497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </span></p>
1498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( fossil_stricmp(zPw, zCap)!=0 ){
1499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><span class="loginError">
1500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ Captcha text invalid.
1501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </span></p>
1502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* This almost is stupid copy-paste of code from user.c:user_cmd(). */
1504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob passwd, login, caps, contact;
1505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&login, zUsername, -1);
1507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&contact, zContact, -1);
1508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&caps, db_get("default-perms", "u"), -1);
1509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&passwd, zPasswd, -1);
1510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db_exists("SELECT 1 FROM user WHERE login=%B", &login) ){
1512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Here lies the reason I don't use zErrMsg - it would not substitute
1513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- * this %s(zUsername), or at least I don't know how to force it to.*/
1514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><span class="loginError">
1515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ %h(zUsername) already exists.
1516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </span></p>
1517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zPw = sha1_shared_secret(blob_str(&passwd), blob_str(&login), 0);
1519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int uid;
1520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_multi_exec(
1521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "INSERT INTO user(login,pw,cap,info,mtime)"
1522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "VALUES(%B,%Q,%B,%B,strftime('%%s','now'))",
1523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &login, zPw, &caps, &contact
1524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
1525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free(zPw);
1526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* The user is registered, now just log him in. */
1528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- uid = db_int(0, "SELECT uid FROM user WHERE login=%Q", zUsername);
1529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- login_set_user_cookie( zUsername, uid, NULL );
1530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- redirect_to_g();
1531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( P("new")==0 || !cgi_csrf_safe(1) ){
1486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* This is not a valid form submission. Fall through into
1487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the form display */
1488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( !captcha_is_correct(1) ){
1489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 6;
1490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "Incorrect CAPTCHA";
1491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( strlen(zUserID)<3 ){
1492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 1;
1493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "User ID too short. Must be at least 3 characters.";
1494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( sqlite3_strglob("*[^-a-zA-Z0-9_.]*",zUserID)==0 ){
1495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 1;
1496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "User ID may not contain spaces or special characters.";
1497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zDName[0]==0 ){
1498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 2;
1499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "Required";
1500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zEAddr[0]==0 ){
1501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 3;
1502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "Required";
1503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( email_copy_addr(zEAddr,0)==0 ){
1504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 3;
1505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "Not a valid email address";
1506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( strlen(zPasswd)<6 ){
1507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 4;
1508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "Password must be at least 6 characters long";
1509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( fossil_strcmp(zPasswd,zConfirm)!=0 ){
1510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 5;
1511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "Passwords do not match";
1512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( db_exists("SELECT 1 FROM user WHERE login=%Q", zUserID) ){
1513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 1;
1514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "This User ID is already taken. Choose something different.";
1515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( db_exists("SELECT 1 FROM user WHERE info LIKE '%%%q%%'", zEAddr) ){
1516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iErrLine = 3;
1517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zErr = "This address is already used.";
1518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob sql;
1520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int uid;
1521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zPass = sha1_shared_secret(zPasswd, zUserID, 0);
1522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&sql, 0, 0);
1523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_sql(&sql,
1524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "INSERT INTO user(login,pw,cap,info,mtime)\n"
1525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "VALUES(%Q,%Q,%Q,"
1526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "'%q <%q>\nself-register from ip %q on '||datetime('now'),now())",
1527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zUserID, zPass, db_get("default-perms","u"), zDName, zEAddr, g.zIpAddr);
1528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zPass);
1529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("%s", blob_sql_text(&sql));
1530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ uid = db_int(0, "SELECT uid FROM user WHERE login=%Q", zUserID);
1531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ login_set_user_cookie(zUserID, uid, NULL);
1532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ redirect_to_g();
1534 1533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1535 1534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1536 1535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Prepare the captcha. */
1537 1536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
uSeed = captcha_seed();
1538 1537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDecoded = captcha_decode(uSeed);
@@ -1541,31 +1540,53 @@
1541 1540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Print out the registration form. */
1542 1541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
form_begin(0, "%R/register");
1543 1542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("g") ){
1544 1543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="hidden" name="g" value="%h(P("g"))" />
1545 1544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><input type="hidden" name="cs" value="%u(uSeed)" />
1545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <p><input type="hidden" name="captchaseed" value="%u(uSeed)" />
1547 1546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <table class="login_out">
1548 1547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
1549 1548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td class="form_label" align="right">User ID:</td>
1550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td><input type="text" id="u" name="u" value="" size="30" /></td>
1549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="text" name="u" value="%h(zUserID)" size="30"></td>
1550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iErrLine==1 ){
1551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><span class='loginError'>← %h(zErr)</span></td>
1552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </tr>
1554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr>
1555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td class="form_label" align="right">Display Name:</td>
1556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="text" name="dn" value="%h(zDName)" size="30"></td>
1557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iErrLine==2 ){
1558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><span class='loginError'>← %h(zErr)</span></td>
1559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </tr>
1561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr>
1562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td class="form_label" align="right">Email Address:</td>
1563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="text" name="ea" value="%h(zEAddr)" size="30"></td>
1564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iErrLine==3 ){
1565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><span class='loginError'>← %h(zErr)</span></td>
1566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1551 1567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
1552 1568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
1553 1569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td class="form_label" align="right">Password:</td>
1554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td><input type="password" id="p" name="p" value="" size="30" /></td>
1570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="password" name="p" value="%h(zPasswd)" size="30"></td>
1571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iErrLine==4 ){
1572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><span class='loginError'>← %h(zErr)</span></td>
1573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1555 1574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
1556 1575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
1557 1576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td class="form_label" align="right">Confirm password:</td>
1558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td><input type="password" id="cp" name="cp" value="" size="30" /></td>
1559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </tr>
1560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr>
1561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td class="form_label" align="right">Contact info:</td>
1562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td><input type="text" id="c" name="c" value="" size="30" /></td>
1577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="password" name="cp" value="%h(zConfirm)" size="30"></td>
1578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iErrLine==5 ){
1579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><span class='loginError'>← %h(zErr)</span></td>
1580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1563 1581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
1564 1582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
1565 1583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td class="form_label" align="right">Captcha text (below):</td>
1566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td><input type="text" id="cap" name="cap" value="" size="30" /></td>
1584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="text" name="captcha" value="" size="30"></td>
1585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iErrLine==6 ){
1586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><span class='loginError'>← %h(zErr)</span></td>
1587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1567 1588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
1568 1589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td></td>
1569 1590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td><input type="submit" name="new" value="Register" /></td></tr>
1570 1591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </table>
1571 1592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div class="captcha"><table class="captcha"><tr><td><pre>
1572 1593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!