From 15a736b810e64381319d1e94cd45ad017e0c1508 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 21 Jul 2010 17:15:00 +0000 Subject: [PATCH] =?UTF-8?q?Importaci=C3=B3n=20inicial?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.LaFactoriaVerde_Web/trunk@1 017afc1c-778d-45dc-8efe-cc7a6876851a --- activate.html | 19 + admin/adduser.php | 160 ++++++ admin/admin_add.gif | Bin 0 -> 3485 bytes admin/admin_add_up.gif | Bin 0 -> 3485 bytes admin/admin_mod.gif | Bin 0 -> 3714 bytes admin/admin_mod_up.gif | Bin 0 -> 3722 bytes admin/admin_options.gif | Bin 0 -> 3136 bytes admin/admin_options_up.gif | Bin 0 -> 3143 bytes admin/adminpage.css | 10 + admin/adminpage.php | 993 +++++++++++++++++++++++++++++++++ admin/mail_all.htm | 24 + admin/mail_all.php | 40 ++ admin/mod_user.php | 264 +++++++++ banned.html | 15 + check_login.php | 23 + config.php | 46 ++ email_change.html | 34 ++ email_change.php | 38 ++ emailpass.html | 17 + emailpass.php | 83 +++ errorlogin.html | 25 + favorites/edit_links.php | 86 +++ favorites/edit_links_2.php | 49 ++ favorites/index.htm | 16 + favorites/links.php | 27 + favorites/make_favorites.php | 37 ++ functions.php | 80 +++ images/lr_13_header_01.gif | Bin 0 -> 12490 bytes images/lr_13_header_02.gif | Bin 0 -> 1805 bytes images/lr_13_header_03.gif | Bin 0 -> 4560 bytes images/lr_13_header_04.gif | Bin 0 -> 4442 bytes images/lr_13_header_05.gif | Bin 0 -> 139 bytes images/lr_13_header_06.gif | Bin 0 -> 6830 bytes images/mpdolan_logo.gif | Bin 0 -> 5771 bytes images/mpdolan_logo_bottom.gif | Bin 0 -> 4282 bytes images/mpdolan_logo_top.gif | Bin 0 -> 4273 bytes index.html | 312 +++++++++++ install/create_admin.php | 61 ++ install/header.html | 31 + install/install.html | 148 +++++ install/install_1.php | 70 +++ install/install_2.php | 233 ++++++++ install/install_3.php | 81 +++ install/message.php | 21 + install/sessions.php | 11 + login.html | 24 + loglogin.php | 60 ++ logout.php | 13 + logs/index.php | 34 ++ logs/log.html | 46 ++ logs/log.php | 36 ++ no_access.html | 29 + not_activated.html | 15 + pass_change.html | 36 ++ pass_change.php | 80 +++ redirect.php | 108 ++++ register.html | 79 +++ register.php | 98 ++++ smpl_sec_header.php | 51 ++ style.css | 72 +++ 60 files changed, 3835 insertions(+) create mode 100644 activate.html create mode 100644 admin/adduser.php create mode 100644 admin/admin_add.gif create mode 100644 admin/admin_add_up.gif create mode 100644 admin/admin_mod.gif create mode 100644 admin/admin_mod_up.gif create mode 100644 admin/admin_options.gif create mode 100644 admin/admin_options_up.gif create mode 100644 admin/adminpage.css create mode 100644 admin/adminpage.php create mode 100644 admin/mail_all.htm create mode 100644 admin/mail_all.php create mode 100644 admin/mod_user.php create mode 100644 banned.html create mode 100644 check_login.php create mode 100644 config.php create mode 100644 email_change.html create mode 100644 email_change.php create mode 100644 emailpass.html create mode 100644 emailpass.php create mode 100644 errorlogin.html create mode 100644 favorites/edit_links.php create mode 100644 favorites/edit_links_2.php create mode 100644 favorites/index.htm create mode 100644 favorites/links.php create mode 100644 favorites/make_favorites.php create mode 100644 functions.php create mode 100644 images/lr_13_header_01.gif create mode 100644 images/lr_13_header_02.gif create mode 100644 images/lr_13_header_03.gif create mode 100644 images/lr_13_header_04.gif create mode 100644 images/lr_13_header_05.gif create mode 100644 images/lr_13_header_06.gif create mode 100644 images/mpdolan_logo.gif create mode 100644 images/mpdolan_logo_bottom.gif create mode 100644 images/mpdolan_logo_top.gif create mode 100644 index.html create mode 100644 install/create_admin.php create mode 100644 install/header.html create mode 100644 install/install.html create mode 100644 install/install_1.php create mode 100644 install/install_2.php create mode 100644 install/install_3.php create mode 100644 install/message.php create mode 100644 install/sessions.php create mode 100644 login.html create mode 100644 loglogin.php create mode 100644 logout.php create mode 100644 logs/index.php create mode 100644 logs/log.html create mode 100644 logs/log.php create mode 100644 no_access.html create mode 100644 not_activated.html create mode 100644 pass_change.html create mode 100644 pass_change.php create mode 100644 redirect.php create mode 100644 register.html create mode 100644 register.php create mode 100644 smpl_sec_header.php create mode 100644 style.css diff --git a/activate.html b/activate.html new file mode 100644 index 0000000..7ae2771 --- /dev/null +++ b/activate.html @@ -0,0 +1,19 @@ + + +Activar cuenta + + +

Activar tu cuenta

+
+

Usuario:
+
+

+

Contraseña:
+
+

+

+

+

+
+ + \ No newline at end of file diff --git a/admin/adduser.php b/admin/adduser.php new file mode 100644 index 0000000..bec2f2d --- /dev/null +++ b/admin/adduser.php @@ -0,0 +1,160 @@ +Go Back and re-enter the information"; + exit; +} + + + +//check the password length +$pass_len = password_check($min_pass, $max_pass, $_POST[password]); +if ($pass_len == "no") +{ + + + echo "

You must use a password between $min_pass and $max_pass characters in length, please Go Back and try again.

"; + exit; +} + +//check for authority to view this page +if (allow_access(Administrators) != "yes") +{ + echo "not authorized to perform this function"; +} + +//make the connection to the database +$connection = @mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error()); +$db = @mysql_select_db($db_name,$connection)or die(mysql_error()); + +//make query to database +$sql ="SELECT * FROM $table_name WHERE username= '$_POST[username]'"; +$result = @mysql_query($sql,$connection) or die(mysql_error()); + +//get the number of rows in the result set +$num = mysql_num_rows($result); + +//check if that username already exists +if ($num != 0){ + +echo "

Sorry, that username already exists.

"; +echo "

Try Another Username.

"; +echo "$_POST[username]"; +exit; + +}else{ + +//or add it to the database +$sql_add = "INSERT INTO $table_name (firstname, lastname, username, password, group1, group2, group3, + pchange, email, redirect, verified, last_login) VALUES + ('$_POST[firstname]', '$_POST[lastname]', '$_POST[username]', password('$_POST[password]'), + '$_POST[group1]', '$_POST[group2]', '$_POST[group3]', '$_POST[pchange]', '$_POST[email]', + '$_POST[redirect]', '1', 'last_login()')"; + +$result = @mysql_query($sql_add,$connection) or die(mysql_error()); +} + +if ($_POST[email_user] == "Yes") +{ + $mailheaders = "From: $domain\n"; + $mailheaders .= "Dear $_POST[firstname] $_POST[lastname],\n"; + $mailheaders .= "\n"; + $mailheaders .= "An account has been created for you at $domain.\n"; + $mailheaders .= "Please log in with the following account information:\n"; + $mailheaders .= "Username: $_POST[username]\n"; + $mailheaders .= "Password: $_POST[password]\n"; + $mailheaders .= "\n"; + $mailheaders .= "Please login at:\n"; + $mailheaders .= "$base_dir/login.html\n"; + $mailheaders .= "Should you have any complications, please email the System Administrator at:\n"; + $mailheaders .= "$adminemail\n"; + + $to = "$_POST[email]"; + $subject = "Your account has been created !!"; + + mail($to, $subject, $mailheaders, "From: No Reply <$adminemail>\n"); + +} +?> + + + + + + + + +Add User + + + + +

User Added:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
First Name:
Last Name:
Username:
Password:
E-Mail:
Group Memberships: 
  
  
Redirect to:
Password Change Req'd:
User E-Mailed:
+ + + + diff --git a/admin/admin_add.gif b/admin/admin_add.gif new file mode 100644 index 0000000000000000000000000000000000000000..073e32a90c0e92c5377955e07b49fb9a62484a71 GIT binary patch literal 3485 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 L+}Mo@5fA`7Unb$g literal 0 HcmV?d00001 diff --git a/admin/admin_add_up.gif b/admin/admin_add_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..45a54d696c34b9d0db26a619ada4e7c457da4ab9 GIT binary patch literal 3485 zcmWlacU;nm8^^zZEK`Iu#EoX9rztJ7@;q?c*|6*)M}cX1S%$W#{23_XE;K7z=W2Kj zMYD@a3&$y$CAdJAfO~81QU1EmAI~4pKhOK~dVM~x$JgJ-bq6&Euma`)pr=O@A0Iz5 zGThtSo0F6M{rj>;BX@9cNK9nZ)z!Rx`(|uxw7H{nN~MHEA_WHrmz2C@FcPAoPO{mo!9i_7 zL4I-Zlf#D(U%YtX<;xfO`FTS_J$ZQ#gM-Ptckk9}<;~4aqoac?7K_WhQ(9Wm(b2-; z-1zdP>ED0rDk@%;mGS8GOHZFZrqRwmdQ>ztr0whL3JncOO-(5)D{*mgp;9S(_5{de z?O(rsU07I{o11HEYnhswYH1NoPfvgQ_N}#5+}zwO5{Wi#+O)X1s8lND@{ZP@Td{a{ zc6NS#eraiOZf>@vMJ$y{J32ZD1VUR|>)hPT#Kgqx?9BZ9oLDTHnVD{FZE62cZPU|J za(VmI)Hk89L8Vf(wTZRbE{UXlVPQTzJiN10vb?;cRLYJY4_B*|9UW~7g}kGqePUv~ zuTMKaKil5ks#2-O#>Rfac6LfN8l^_lb>s-StE)?;l8=mx*E|+Sxn(l7(@NmCeE*l&iY;SMTXw-lFaY&(% zjgOB@B$DoK%}-mcts<>f{nPry#MrG{xt*Pza=APsBP}8#qPh92OxDrX*4EkC(bc7p z$vQO})lZhe!M^_fZnavi(P+lThHl-u_4D}PV9)62NJ~qLOeX2-lBw0I8NnsBRXnJ~j0s?+Nbm-8? zNdKKXx36BkdhXmgwOXdpDBiw(J2^S_GkQZq1D`&9QYaLCed?j1p}xMp$;rv@-@nhy z%q%S}EiW(s`0-<9WyN|y2l!8p|Be4T0U%a@6{NWzFTXkoVfag^kXKNff;L;cU%cCLV>S=Qx@yx{| zQ|qF>IE6G$w{DNcH*H(^XFA&d^|SWpR(c{EnvEZgB!!v)>+SNfCY4||c9Xb3c`@n%5oYomkW_&5R!<~tu_dQ^ zx~zAlfstRA8P>>x7t{tUA*Kvwz2+#_nvLe;iY&JH5bKd;QA~&l=@iui5Ref~R=;S` zo`4s25`wbl5MfBxi!z_g(2IkQZwChmd^gfhKaIR|u~Pc@HYYPobA0NBKh5O z3ik8?4Cl#Sy4VvG_`1uXI00w8=pdEGp}0HAwJ_Asv$unryIC0Dca89DTl^!8imZAAD4c z3h{kf8xwod{Je|O7 za91Xnft(|3t(~jF;xYE{hzKCfB8@{r>iqUCXLuckYy!Y=j24(}vaJVlor@8;`6H0x zST3CH5VNhWOo)9f=uKw4ss%1(+}LT#n()riuRP7vc(8Zu)vh`XY{LT`w69JycUMEp z8Cu*{=h%v}X>>v zg{X5C*=0ca@(QEceB+cRrGsUBlx`fa4um&`@tS;%6YxKh?F@Q2Syso~EH4|UH&-W` zm<-$=ZCp}UGaWC#VUo;o#bK!%coNO@hu9|2`whrCP)+w1am6;Pr%yjz0ar?lc37R< z7v?vLZ2}<>8|tc2>!N>u`8$|S&vA1tucKCP=ge6e;kXhI+cImFJH01&tpEw$<@LcG z7vB~LchAo#F;K>rOAh-!V6LX50wJUKmRtQ*_3&0Yg_j)1~ z<{uHhM#2FDP(LD+TZ1(lQNv5cD0>8N%>h@UgU_bwlTqO?sFwhgULe4`C4vw}YP%I# zECVmKF%lAzR^JiUt^Xx(bpam+@hX4^64a(;2yeSTFzIW1DDca857Yrp#v%N1lY>F# zKRhH`cE%sKl&3=1H&WAm-E5$62GM~6Kn?=x8_rP;b_uZzUqFC;L91D%1Jd>3X!Xwy zBs&0sSvxu=F_o?i9Vd|P;UJrwM`vmwSd6i2dG(N9n}CqTc`fX$hW`)I(S@xe#i*e zAiB-Uf&~EHKq71_TE_t(B)b)^hCMf8ZGVQ=iR7q($eSuwHu+}>>@B54;Go^wTR?HW%LNdMlq-NYPJq^5FG$Tf3O3|YlJQP~ z`lfnJOg+8U6SBMYo-8Q8-VWw4ke?E{IT!Qyd@{r`UzZpKK^x;45Cmb>VSXVFNcDA< zbM;6A;aD^gjyIyF#YKI?*u7@im`)_Z$R3tQ*F@t)lZ?HtK?b!%h$*`uWnYlZ^N`m% z`Y4``S5P4)*1Oiyl$jpHRYTVTz=K9C z((*AG98XK>XASBqxAtF4+xU?MUYYOA1q@J0n-9kXxKoE`5{AO zh2z388T&~)^|Bdg3dAf(00WncnIy+TOp=I%K=V+@2X|Ic{c0`h@oc9Is@|VMPg_<% zkNsK-B-9Ub=e^#E?Ox$4=(_y?7>!T#5nAiT2t84`B7~hmI0V5X!p{>=IyfilY}{XZ zuc~RlXZs>5j^MRvcWCBbJuS?-m}qPCzm(ZHs(~Lj5sJ;${e6I&)%gsxEtMJRWJiT( z@C6&4h{Fd*NT^VnCytL#`E}k@5`(M7{eovZ;^flsVgXK}K1I&6sipEgq1PWKQ{op; zmpQdIdt-I=uWC@2@B*tE;uxWaxhfP#GH{uQcA|G1bXi_3`+Lv$m6IgB%lv=g;k&LI zAda`vRh!FRzC7(bu-K~P_-=7eIaNig1zHJ-W|e668j&Xo*FZ0+-Z-*JL6R66^KpsP z@rbLH+UXT_;*~dUAmO)u@Ox=$(Q;YN&w^3va`QtCYjc7 z=nZNAJAL!ogH^^fkZw(&?!(C!R!dyg&ixahaGdq(Y~psu`s*?0;e`q+!mG2)92QE~ zjM7qeISH#~%kz|@vDbFJZT~P!oc}%^)qhp_<>*+Y*^h~%h&ubN6oz!H25{m7j*VHD z-afa$W^4zH>H}{?255u7OKWV+#kxlPTBy=BY3T6BMR$s3hBuxxLfy9{YxryC*`=z{ zOU_HGxq_LBm0!n>lrAaF@@7xY1L#8h_3a}zxBG=muitciy##V42u!TkVyngDx5 z04jLUx=G_`05+!vRpIshc%Y3$gPr^&H))dld=e4I@^EE&ky)Nn@DT>=ECqIVzrkw; z>UvXd}wgKQ3)BnF%a{rEVD_P`E@>1gv%-?;lyOjMhr&E&64r66w)kR I3>w(=e<>c)00000 literal 0 HcmV?d00001 diff --git a/admin/admin_mod.gif b/admin/admin_mod.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a65e97f0c860632d3fbd18cc6bfc3906e8d52fa GIT binary patch literal 3714 zcmWktdt8zS7k;_=A}DxCG0lORSy`d8MynilUm`Y z6<%ttTv3^kS%Q*UpCxz&K?T%AGX<|`mS21Rcz)-f^PKZM=XZAR2_$a~%Ll#!<^f=0 z;zL!{otBp7nwn}Bi*@qkNrPcHF)`ucLs3(cY-nic)2Ah!PTkbhw79rXUH!1ORxFpd zH8eTvkQrR^;+`oSP`v3j!^|^DA~^7r?@fB)W{JC)C#)xLiH`s&pyNl8guE+;dSH#+*Rv{X1YHZ(CY zR#*4z>C-17(LI?=R#sM8RaGSv-WVS@jE)W-K76>pU&UgjWMuHfVsTDRR(E$tMMZf_ zOUuohH%dy1j~t=%`FUewqo+@wzH}+^*s)``ZdIhErS9FkHzg%GAt63CHfC&0UtV6e zZ(nd^WJG#8Cn6$(Mx%Ciw)ggSb#y4?a{2uH{KCS*%*>3BkI%=Ci)wYZLLpyVTqKc5 z)6>)K?TY#Nxw*O7w{PE?&E|ir*_rlsxmw-T*{Lv_=clHo+S=N>x;l+UV^>$#!h(5b zX1cSpV}5?Nr{~LvFKAb(diwhMR4S#nxA)+nc4_Hjf4@efQIC(0>-7V3b2B>KKu=G1 zcXyXY)2r9(y1P3S3PoRE@5ID}(Ky-P->22~_4lidR`(7L>btr+CMPGq zSn2KU866!R80i0UF@wR-*Qe?0Qx6a8M@9y9x<0j9-QM2b)6>(@AvYQ)^j{Vo&`eKH zDV5zSRrkPvdUEoER;%gl?HwB%IdtfdM$@C!YKMo1bULk0r!$$1DwRsF*Y@^yzk4^x z;jqWYM@**4sHpR8ZEv%(G6n|+;^JZ_CPrsxr+a&qa`~H|e?D~j^r_t3Y=c2JHug@h z?>~B!9v=SNlP8bgylEX88fF8)19Mrse_3BHMV_zEHY2Uqj zXEK>)XJ@IMmQgN2BB3-5v|D$)MO50D zj&oit7M~COE*byzSxw7>^5#6k&PO}jQX1kgw`z!FJ>b4JigO)m;UH%-|NSBd+zS)OS%Pet*=)c z_@!Zq*4(Om5;gex`rSM>UHqv*gMxYfQ=c3eR^}2c7U>#!cI!{HiXVifgxT}rvZFs# zkj@AuzK;1#nwrcpukhVdTRqxQd7zm6>qCA7zkFZ%XT#CQA37iHD#jex8ybwEvVZlQ=Y{)7SEltw7_89fE0v zPvCd;{m)?sDqDk6JOIwB(LccuI9h6S?~Cg{lHTV&Qe-+26XsEljj^u%t&}rjf+10l z z9udH=qg>wS9GOJCRTw#>Yet=%5eMYqs(qRZLl3GjdFz;v3KWAZq@llOJY@sh=NL5f z$?fixVsBAY1DSVF75Lvo^Hft}$XnBD0b`}*uddeBK3VHU)nS+Y89 z7?h^~Hq?E-ljnRkiJJ8wh98}of3ccCalI&LPqWOL5wog%D5Rm9i!wqW)+34dhjX~r zCa_RZ8+QNx+cCSU=b-@+e{Xmrn0o2IWY}zR|9SLJ%!jHHOmh;jrKU~YkFM4&u5Z7y-auAA}W0_u8Eb>=9MTHYJ+oFT{hSC_j;c_ zD{KwhOrEz0`lelpFH8o6&*j z67RG*=kxFjGyo#ZX(F9bn5Lb-ExC+bQ&LS58*bgSZg8?|Zcl(Bmj2U(@)^3kXQE^% zglQdNRG3}vjgaPAOYWOCuUu2_LqP`;%KmKqqcNX`_GDl1{i+yFOFfSmDCN5S{$46u zNe>rtwWvx64U*aUoz&@DneQ{V^U4$?7$YosjQop-GD0t%C&TPsKpqu!%3>4cOtP8e zBi$!tVUHJExWtQ9s|mna9M|FpA%&;N#ik1=%UfD3Y)Mqsd3hS<`EHBtlug_M5)BEr+!c2q3jz0*Fcf)BY4_4~YN(Roaa@UFqda7+F0|ym1 zSs=rh8?Q>>X(HA)NNTPV{}gVW7j@&JG5e6H9G<2O+NPR4XqFu?6}*iG=l_-48y<PkImDJ`IWh=vA{{|oCq&={FxXc(cVs7(7pyH?!EJ#PNrdIp z0J$DlCTCM_vD$(O5cE?+z?vUeEQoiR?LRm+rQiZ@F9rgG$T^VKzjJ@6ax@7gT4 zL4XWDcm`eOcAE&rc=9j5WVZ6N_ZjLn-0ibIlxD($1J78pb+Y(XM!7LZ^cG-rX zA=%%MVlv{5NFqkZ+ewh(ZnntWT;*~c4vKOIcX=HpKx1nPaUDT2ki<_tZh*qneCd{z z|IIkYqv3K%0bV2~;(KM6V-;An$xo4ajNXXIAOwI%7lH3xXt-?9+sk+s^z1h zYDir{ru4@!0B~OJ4fP=M0<{qP8)7)JiW(XyY`_A62v(L%1^6laUq_y1r#^tS2@b!aEF_AooQuj~XfvH=|QIF&nnrh-3jt zOu##;X4SZymmt%khN7U`?-^N`KZtE9Es`x)FLNMuZdNBM)9T)9IYCRh6()M1k0${R z#Yr@mc~9!zU*~S{J2^m0Xs8c0rE}v?0XgCD>J%I^j$RBv3^0#a5_3a^4*Psd)16Ha z-i|^k`qyPIbIn~jVq3z}&}AxLsXDf*bQ(Shqa<26n-PzP#O zv2Sp1TKuxYfmge3PR=RVEyVnyY^;fMJ-;R4x>X#H>1g>GSVf_&sJ)j6e=#vDxfbPl~`BzM4ZFv$_W|U^<5mD&aQfr3evyNxLBuMdx zrg$M?XK?<-?{^_F{Fk^f>zG3Irn}a|t4?<)We4;`TaxmxrIExR(|~Yb`tJEsd}ec_Pf`eGYt^dpnR73e zhacNO$QYKBqmjE|?9V63hEujZVqiX<6#M*ty3g}#YCq4{bDqajt(Tr4qO~bNP;BCp z7!b6m7sf-#%z8c(6f+S)vF7v?IG$-Ao^po*!H`Z#BtWasGMdl)+=Hkmuy#_A7z&~} z1p9`Bf^}d+NvOgQv?CMKO0haFO55IoxPY@bjbqcyX#vW#Z6KQ#guK9De}`v(AI{#v zWA8DuLqJYI5PK({vq#L?D^5GDg<+zwN+C)Tg~bq1-_kkTgREM$uxSFUnU6^j0`Y{k zAAuD$B9t=$HXMabHm5W3yi_ueP3LhFcsv0wvjvvTvwE=%V6t0a8FXu35u}i585e?m z#6%W7a0+9BZ$d2JlF-FW?CpfiNp>&M7NY{F&s6G$?rFZa zDu3fbKFO)TcWZ&~9w?85iVtNtECA>NM!wJQ1qFO;7~eivXA7m~G33Z|{7u2C!XFk2 zL!7SswDrotBUkpV^$yD~{OPAF4O6b)E9~J4+Z7j_PanB@=Hk`xqN_DjeE1QY4K_AW SPS>KhUW+|)&C&)3Z2Lb)#UB3v literal 0 HcmV?d00001 diff --git a/admin/admin_mod_up.gif b/admin/admin_mod_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f19ae5ac0b394a82aa6d825641fce7170102350 GIT binary patch literal 3722 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 Y+Pp-6*R9Jjx1#fI#XbUIFksXF0phj|QUCw| literal 0 HcmV?d00001 diff --git a/admin/admin_options.gif b/admin/admin_options.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d084d543faa4bb93418fa06dc7f7145a7dc1907 GIT binary patch literal 3136 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 literal 0 HcmV?d00001 diff --git a/admin/adminpage.css b/admin/adminpage.css new file mode 100644 index 0000000..6e3a3c6 --- /dev/null +++ b/admin/adminpage.css @@ -0,0 +1,10 @@ +a:active { font-family: Verdana; font-size: 8pt; color: #800000; text-decoration: none} +a:hover { font-family: Verdana; font-size: 8pt; color: #800000; text-decoration: + overline underline } +a:link { font-family: Verdana; font-size: 8pt; text-decoration: none; color: #800000 } +a:visited { font-family: Verdana; font-size: 8pt; text-decoration: none; color: #800000 } +body { font-family: Verdana; font-size: 8pt } +html { font-family: Verdana; font-size: 8pt } +table { font-family: Verdana; font-size: 8pt } +option { font-family: Verdana; font-size: 8pt } +input { font-family: Verdana; font-size: 8pt } \ No newline at end of file diff --git a/admin/adminpage.php b/admin/adminpage.php new file mode 100644 index 0000000..9957b9d --- /dev/null +++ b/admin/adminpage.php @@ -0,0 +1,993 @@ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
  
Panel de controlVer el registro de accesos
Sesión iniciada como Salir
  +

Mandar e-mail a todos los usuarios

+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + firstname; + $m_last = $sql -> lastname; + $g_1 = $sql -> group1; + $g_2 = $sql -> group2; + $g_3 = $sql -> group3; + $chng = $sql -> pchange; + $m_email = $sql -> email; + $direct = $sql -> redirect; + +} +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

+
+ + +
+

+
+ + + +
+ + +
"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nombre: +
Apellidos: + +
Usuario: + +
Contraseña: + +
E-Mail: + +
Grupo: +
  +
  +
Redirigir a: +
Obligar a cambiar la contraseña en el siguiente inicio de sesión: +
E-Mail User Account + Information: +
+  
+ +
+ +
+ + + +
+

+

+
+ + + +
+

+

+
+ + + + +
+ + + +
+ + + + + +
Username: +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nombre: + +
Apellidos: +
+ Contraseña: +
+ E-Mail: +
+ Grupo: +
+   +
+   +
+ Redirigir a: +
+ Obligar a cambiar la contraseña en el siguiente inicio de sesión: +
+ E-Mail User Account Information: +
+ +  
+ +
+ +
+ +
+ + + + +
+

+ +

+
+ + + + +
+

+ +

+
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Borrar usuario + +
Restaurar usuario + +
Banear usuario + +
Bloquear dirección IP + + ...
Lift User Ban + +
Lift IP Ban + +
Vaciar la papelera +
Purgar cuentas inactivas desde
+  
+
+ +
+  
+  
+  
+  
+  
+  
+  
+  
+ + +
+
+ 1) + { + for ($i=0; $i<$c; $i++) + { + $search = $explodeit[$i]."+"; + } + }else{ + $search = $s_string; + } +} + + + + +echo "Show Number of Results Per Page: 5"; +echo " 10
"; + +// Figure out the limit for the query based +// on the current page number. +$from = (($page * $max_results) - $max_results); + +// Perform MySQL query on only the current page number's results +if (!isset($_GET['search'])) +{ + $set_lim = "SELECT * FROM $table_name ORDER BY username LIMIT $from, $max_results"; +}else{ + $search = $_GET['search']; + $set_lim = "SELECT * FROM $table_name WHERE username LIKE '%$search%' || firstname LIKE '%$search%' + || lastname LIKE '%$search%' || group1 LIKE '%$search%' || group2 LIKE '%$search%' || group3 LIKE '%$search%' + || email LIKE '%$search%' ORDER BY username LIMIT $from, $max_results"; +} +$set_res = @mysql_query($set_lim,$connection) or die(mysql_error()); + +while ($set_lim = mysql_fetch_object($set_res)) +{ + +$fname = $set_lim -> firstname; +$lname = $set_lim -> lastname; +$uname = $set_lim -> username; +$p_change = $set_lim -> pchange; +$verif_d = $set_lim -> verified; +$last = $set_lim -> last_login; +$re_direct = $set_lim -> redirect; +$groupA = $set_lim -> group1; +$groupB = $set_lim -> group2; +$groupC = $set_lim -> group3; +$e_mail = $set_lim -> email; + + +if ($p_change == 1) +{$p_change = "Yes";}else{$p_change = "No";} + +if ($verif_d == "0") +{$verif_d= "No";}else{$verif_d= "Yes";} + + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo "
$unameE-Mail:$e_mail
 Name:$fname $lname
 Last Login:$last
"; + + +} + + +// Figure out the total number of results in DB: +if (!isset($_GET['search'])) +{ + $total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM authorize"),0); +}else{ +$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM authorize + WHERE username LIKE '%$search%' || firstname LIKE '%$search%' + || lastname LIKE '%$search%' || group1 LIKE '%$search%' || group2 LIKE '%$search%' || group3 LIKE '%$search%' + || email LIKE '%$search%'"),0); +} + +// Figure out the total number of pages. Always round up using ceil() +$total_pages = ceil($total_results / $max_results); + +// Build Page Number Hyperlinks +echo "
Select a Page
"; + +// Build Previous Link +if($page > 1){ + $prev = ($page - 1); + echo "<<   "; +} + +for($i = 1; $i <= $total_pages; $i++){ + if(($page) == $i){ + echo "$i "; + } else { + echo "$i "; + } +} + +// Build Next Link +if($page < $total_pages){ + $next = ($page + 1); + echo "   >>"; +} +echo "
"; +}else{ +echo "Details for $user_det
"; + +$dsql = "SELECT * FROM $table_name WHERE username = '$user_det'"; +$dresults = @mysql_query($dsql,$connection) or die(mysql_error()); +while ($dsql = mysql_fetch_object($dresults)) +{ +$fname = $dsql -> firstname; +$lname = $dsql -> lastname; +$uname = $dsql -> username; +$p_change = $dsql -> pchange; +$verif_d = $dsql -> verified; +$last = $dsql -> last_login; +$re_direct = $dsql -> redirect; +$groupA = $dsql -> group1; +$groupB = $dsql -> group2; +$groupC = $dsql -> group3; +$e_mail = $dsql -> email; + +if ($p_change == "0") +{ +$p_change = "No"; +}else{ +$p_change = "Yes"; +} + +if ($verif_d == "0") +{ +$verif_d = "No"; +}else{ +$verif_d = "Yes"; +} +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
E-Mail:
Real Name:
Last Login: 
Password Change Required: 
Verified Through E-Mail: 
Group Memberships: 
  
  
Redirect to:
+ +
">Back to List
+ +Exit Search"; +}else{ +echo "

"; +} +?> +
+
">

Search +

+
+
+
diff --git a/admin/mail_all.htm b/admin/mail_all.htm new file mode 100644 index 0000000..9e48cfb --- /dev/null +++ b/admin/mail_all.htm @@ -0,0 +1,24 @@ + + + + + +E-Mail Subject + + + + + +
+

E-Mail Subject:
+
+ From Line to Read:
+
+ Message:
+
+

+
+ + + + diff --git a/admin/mail_all.php b/admin/mail_all.php new file mode 100644 index 0000000..0093c2a --- /dev/null +++ b/admin/mail_all.php @@ -0,0 +1,40 @@ +
"; + while ($sql = mysql_fetch_object($result)) + { + $e_addr = $sql -> email; + $e_user = $sql -> username; + $subject = $_POST[e_subject]; + $mailheaders = $_POST[e_message]; + mail($e_addr, $subject, $mailheaders, "From: No Reply <$adminemail>\n"); + echo "$e_user
"; + } + +?> \ No newline at end of file diff --git a/admin/mod_user.php b/admin/mod_user.php new file mode 100644 index 0000000..921b2c9 --- /dev/null +++ b/admin/mod_user.php @@ -0,0 +1,264 @@ + firstname; + $last = $sql -> lastname; + $uname = $sql -> username; + $pass = $sql -> password; + $gr1 = $sql -> group1; + $gr2 = $sql -> group2; + $gr3 = $sql -> group3; + $change = $sql -> pchange; + $e_mail = $sql -> email; + $re_direct = $sql -> redirect; + $ver_d = $sql -> verified; + $last_log = $sql -> last_login; + $del_dat = last_login(); + } + + $trash_user = "INSERT INTO trash (firstname, lastname, username, password, group1, group2, group3, + pchange, email, redirect, verified, last_login, del_date)VALUES + ('$first', '$last', '$uname', '$pass', '$gr1', '$gr2', '$gr3', + '$change', '$e_mail', '$re_direct', '$ver_d', '$last_log', '$del_dat')"; + + $del = "DELETE FROM $table_name WHERE username = '$_POST[del_user]'"; + + $result = @mysql_query($del,$connection) or die(mysql_error()); + $result1 = @mysql_query($trash_user,$connection) or die(mysql_error()); + + $msg .= "User $_POST[del_user] has been trashed from the database.
"; + }else{ + $msg .= "User $_POST[del_user] could not be located in the database.
"; + } + + $del_banned = "DELETE FROM banned WHERE no_access = '$_POST[del_user]'"; + $result = @mysql_query($del_banned,$connection) or die(mysql_error()); + + +} + +if (($_POST[username] != "") && ($_POST[mod_pass] == "Same as Old")) +{ +$sql = "SELECT * FROM $table_name WHERE username = '$_POST[username]'"; +$result = @mysql_query($sql,$connection) or die(mysql_error()); +while ($sql = mysql_fetch_object($result)) + { + $pass = $sql -> password; + $last = $sql -> last_login; + } + $sql = "DELETE FROM $table_name WHERE username = '$_POST[username]'"; + $result = @mysql_query($sql,$connection) or die(mysql_error()); + $sql = "INSERT INTO $table_name (firstname, lastname, username, password, group1, group2, group3, + pchange, email, redirect, verified, last_login) VALUES ('$_POST[mod_first]', '$_POST[mod_last]', + '$_POST[username]', '$pass', '$_POST[mod_group1]', '$_POST[mod_group2]', + '$_POST[mod_group3]', '$_POST[mod_chng]', '$_POST[mod_email]', '$_POST[mod_redirect]', + '1', '$last')"; + $result = @mysql_query($sql,$connection) or die(mysql_error()); + $msg .= "The information for $_POST[username] has been changed updated.
"; +} + +if (($_POST[username] != "") && ($_POST[mod_pass] != "Same as Old")) +{ +$sql = "SELECT * FROM $table_name WHERE username = '$_POST[username]'"; +$result = @mysql_query($sql,$connection) or die(mysql_error()); +while ($sql = mysql_fetch_object($result)) + { + $pass = $sql -> password; + $last = $sql -> last_login; + } + $sql = "DELETE FROM $table_name WHERE username = '$_POST[username]'"; + $result = @mysql_query($sql,$connection) or die(mysql_error()); + $sql = "INSERT INTO $table_name (firstname, lastname, username, password, group1, group2, group3, + pchange, email, redirect, verified, last_login) VALUES ('$_POST[mod_first]', '$_POST[mod_last]', + '$_POST[username]', password('$_POST[mod_pass]'), '$_POST[mod_group1]', '$_POST[mod_group2]', + '$_POST[mod_group3]', '$_POST[mod_chng]', '$_POST[mod_email]', '$_POST[mod_redirect]', + '1', '$last')"; + $result = @mysql_query($sql,$connection) or die(mysql_error()); + $msg .= "The information for $_POST[username] has been changed updated.
"; +} + +if ($_POST[ban_user] != "") +{ + + $ban = "INSERT INTO banned (no_access, type) VALUES ('$_POST[ban_user]', 'user')"; + $result = @mysql_query($ban,$connection) or die(mysql_error()); + $msg .= "User $_POST[ban_user] has been banned.
"; + +} + +$ip_addr = "$_POST[oct1].$_POST[oct2].$_POST[oct3].$_POST[oct4]"; + +if ($ip_addr != "...") +{ + $ban_ip = "INSERT INTO banned (no_access, type) VALUES ('$ip_addr', 'ip')"; + $result = @mysql_query($ban_ip,$connection) or die(mysql_error()); + $msg .= "IP Address $ip_addr has been banned.
"; +} + +if ($_POST[lift_user_ban] != "") +{ + + $lift_user = "DELETE FROM banned (no_access, type) WHERE no_access = '$_POST[lift_user_ban]'"; + $result = @mysql_query($lift_user,$connection) or die(mysql_error()); + $msg .= "The Ban for user $_POST[lift_user_ban] has been lifted.
"; + +} + +if ($_POST[lift_ip_ban] != "") +{ + + $lift_ip = "DELETE FROM banned (no_access, type) WHERE no_access = '$_POST[lift_ip_ban]'"; + $result = @mysql_query($lift_ip,$connection) or die(mysql_error()); + $msg .= "The Ban for IP Address $_POST[lift_ip_ban] has been lifted.
"; + +} + +if ($_POST[restore] != "") +{ + $ruser = "SELECT * FROM trash WHERE username = '$_POST[restore]'"; + + $result0 = @mysql_query($ruser, $connection) or die(mysql_error()); + + //get the number of rows in the result set + $num = mysql_num_rows($result0); + + //set session variables if there is a match + if ($num != 0) + { + while ($ruser = mysql_fetch_object($result0)) + { + $rfirst = $ruser -> firstname; + $rlast = $ruser -> lastname; + $runame = $ruser -> username; + $rpass = $ruser -> password; + $rgr1 = $ruser -> group1; + $rgr2 = $ruser -> group2; + $rgr3 = $ruser -> group3; + $rchange = $ruser -> pchange; + $re_mail = $ruser -> email; + $rre_direct = $ruser -> redirect; + $rver_d = $ruser -> verified; + $rlast_log = $ruser -> last_login; + } + + $r_user = "INSERT INTO $table_name (firstname, lastname, username, password, group1, group2, group3, + pchange, email, redirect, verified, last_login) VALUES + ('$rfirst', '$rlast', '$runame', '$rpass', '$rgr1', '$rgr2', '$rgr3', + '$rchange', '$re_mail', '$rre_direct', '$rver_d', '$rlast_log')"; + + $del = "DELETE FROM trash WHERE username = '$_POST[restore]'"; + + $result = @mysql_query($del,$connection) or die(mysql_error()); + $result1 = @mysql_query($r_user,$connection) or die(mysql_error()); + + $msg .= "User $_POST[restore] has been restored.
"; + }else{ + $msg .= "User $_POST[restore] could not be located in the database.
"; + } +} + +if ($_POST[empt_trash] == "yes") +{ + + $empty = "DELETE FROM trash"; + $gone = @mysql_query($empty, $connection) or die(mysql_error()); + + $msg .= "The trash has been emptied.
"; +} + +if ($_POST[amt_time] != "" && $_POST[incr_time] != "") +{ + $msg .= "The following accounts were inactive for $amt_time $incr_time or more and have been moved to the trash.

"; + $killtime = "NOW() - INTERVAL $_POST[amt_time] $_POST[incr_time]"; + $xfer = "SELECT * FROM $table_name WHERE last_login < $killtime"; + $resultp1 = @mysql_query($xfer, $connection) or die(mysql_error()); + while ($xfer = mysql_fetch_object($resultp1)) + { + $pfirst = $xfer -> firstname; + $plast = $xfer -> lastname; + $puname = $xfer -> username; + $ppass = $xfer -> password; + $pgr1 = $xfer -> group1; + $pgr2 = $xfer -> group2; + $pgr3 = $xfer -> group3; + $ppchange = $xfer -> pchange; + $pe_mail = $xfer -> email; + $pre_direct = $xfer -> redirect; + $pver_d = $xfer -> verified; + $plast_log = $xfer -> last_login; + $pdel_date = last_login(); + + $msg .= "$puname
"; + $xfer2 = "INSERT INTO trash (firstname, lastname, username, password, group1, group2, group3, + pchange, email, redirect, verified, last_login, del_date) VALUES ('$pfirst', ' $plast', '$puname', + '$ppass', '$pgr1', '$pgr2', '$pgr3', '$ppchange', '$pe_mail', '$pre_direct', '$pver_d', '$plast_log', '$pdel_date')"; + $resultp2 = @mysql_query($xfer2, $connection) or die(mysql_error()); + } + $purge = "DELETE FROM $table_name WHERE last_login < $killtime"; + $resultp3 = @mysql_query($purge, $connection) or die(mysql_error()); + +} + + +echo ""; + +echo $msg; + +if ($_POST[username] == $_SESSION[user_name]) +{ +session_destroy(); +echo ""; +echo ""; +echo ""; +echo "New Page 2"; +echo ""; +exit; +} +?> + + + + + +Modify User + + + + + + + + + diff --git a/banned.html b/banned.html new file mode 100644 index 0000000..62bd1de --- /dev/null +++ b/banned.html @@ -0,0 +1,15 @@ + + + + + +Unauthorized + + + + +

YOU'VE BEEN BANNED

+ + + + diff --git a/check_login.php b/check_login.php new file mode 100644 index 0000000..49f3464 --- /dev/null +++ b/check_login.php @@ -0,0 +1,23 @@ + diff --git a/config.php b/config.php new file mode 100644 index 0000000..2180e97 --- /dev/null +++ b/config.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/email_change.html b/email_change.html new file mode 100644 index 0000000..415b573 --- /dev/null +++ b/email_change.html @@ -0,0 +1,34 @@ + + + + +Chane E-Mail Address + + + + + + +
+

E-Mail Address Change

+

New E-Mail Address:
+

+
+

+
+  + + diff --git a/email_change.php b/email_change.php new file mode 100644 index 0000000..6a6171f --- /dev/null +++ b/email_change.php @@ -0,0 +1,38 @@ + diff --git a/emailpass.html b/emailpass.html new file mode 100644 index 0000000..2b72a6c --- /dev/null +++ b/emailpass.html @@ -0,0 +1,17 @@ + + +Username and Password Request + + +

Request Your Username & Password

+
+

Email Address:
+
+

+ +

+ +

+
+ + \ No newline at end of file diff --git a/emailpass.php b/emailpass.php new file mode 100644 index 0000000..ad5af9e --- /dev/null +++ b/emailpass.php @@ -0,0 +1,83 @@ + email; + $uname = $sql -> username; + } + +//Update database with new password + $newpass = rand(10000000,99999999); + $chng = "UPDATE $table_name SET + password = password('$newpass'), pchange = '1' + WHERE email = '$email'"; + + $result2 = @mysql_query($chng,$connection) or die(mysql_error()); + +//create message to user + $msg = "

Your username & temporary password has been emailed to you.

"; + $msg .= "

You must change this password immediately after your next login.

"; + $msg .= "

"; + $msg .= "

Login

"; + +//create mail message + $mailheaders = "From: www$domain\n"; + $mailheaders .= "Your username is $uname.\n"; + $mailheaders .= "Your password is $newpass.\n"; + $mailheaders .= "$base_dir/login.html"; +} +else +{ + +//If no email was found in the database send a notification to the admin + $email = $adminemail; + $msg = "

Your email address could not be located

"; + $msg .="

The Website Administrator has been emailed, you should contacted by them shortly.

"; + + $mailheaders = "From: www$domain\n"; + $mailheaders .= "A user with the email address of $_POST[email] has requested a username and password reminder.\n"; + $mailheaders .= "$_POST[email] could not be located in the database.\n"; +} + +//Email the request +$to = "$email"; +$subject = "Your Username & Password for www$domain"; + +mail($to, $subject, $mailheaders, "From: No Reply <$adminemail>\n"); + +?> + + +Username and Password Request + + + + + + + diff --git a/errorlogin.html b/errorlogin.html new file mode 100644 index 0000000..846fb44 --- /dev/null +++ b/errorlogin.html @@ -0,0 +1,25 @@ + + +Error Login + + +

There was an error logging you +in, please try again...

+
+

Username:
+
+

+

Password:
+
+

+

+Remember +me from this computer

+

+

+
+

+Click here if would like your username and password to be +e-mailed to the address we have on file.

+ + \ No newline at end of file diff --git a/favorites/edit_links.php b/favorites/edit_links.php new file mode 100644 index 0000000..30477c6 --- /dev/null +++ b/favorites/edit_links.php @@ -0,0 +1,86 @@ + + + + + + +Edit Favorites + + + + +
+

Add a Favorite:
+ Nickname:
+
+
+ URL:
+
+

+

Delete a + Favorite: +
+

+

Edit a Favorite:
+ Edit this Favorite:
+
+ To this Nickname:
+
+
+ And this URL:
+
+
+
+
+

+
+ + + + \ No newline at end of file diff --git a/favorites/edit_links_2.php b/favorites/edit_links_2.php new file mode 100644 index 0000000..2104618 --- /dev/null +++ b/favorites/edit_links_2.php @@ -0,0 +1,49 @@ + \ No newline at end of file diff --git a/favorites/index.htm b/favorites/index.htm new file mode 100644 index 0000000..c9fb6a4 --- /dev/null +++ b/favorites/index.htm @@ -0,0 +1,16 @@ + + + + +New Page 1 + + + + +

+ + + + diff --git a/favorites/links.php b/favorites/links.php new file mode 100644 index 0000000..7470c9a --- /dev/null +++ b/favorites/links.php @@ -0,0 +1,27 @@ +Add/Change Favorites

"; + +//make the connection to the database +$connection = @mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error()); +$db = @mysql_select_db($db_name,$connection)or die(mysql_error()); + +//make query to database +$sql ="SELECT * FROM favorites WHERE username= '$_SESSION[user_name]'"; +$result = @mysql_query($sql,$connection) or die(mysql_error()); + +while ($sql = mysql_fetch_object($result)) +{ + $_link = $sql -> link; + $_nickname = $sql -> nickname; + echo "$_nickname
"; +} + +?> diff --git a/favorites/make_favorites.php b/favorites/make_favorites.php new file mode 100644 index 0000000..4b03caa --- /dev/null +++ b/favorites/make_favorites.php @@ -0,0 +1,37 @@ +Your Favorites table has been created.
"; +} + +?> + + + \ No newline at end of file diff --git a/functions.php b/functions.php new file mode 100644 index 0000000..a0b936b --- /dev/null +++ b/functions.php @@ -0,0 +1,80 @@ + firstname; + $_SESSION[last_name] = $sql -> lastname; + $_SESSION[user_name] = $sql -> username; + $_SESSION[password] = $sql -> password; + $_SESSION[group1] = $sql -> group1; + $_SESSION[group2] = $sql -> group2; + $_SESSION[group3] = $sql -> group3; + $_SESSION[pchange] = $sql -> pchange; + $_SESSION[email] = $sql -> email; + $_SESSION[redirect] = $sql -> redirect; + $_SESSION[verified] = $sql -> verified; + $_SESSION[last_login] = $sql -> last_login; + } + }else{ + $_SESSION[redirect] = "$base_dir/errorlogin.html"; + } +} + +//functions that will determine if access is allowed +function allow_access($group) +{ + if ($_SESSION[group1] == "$group" || $_SESSION[group2] == "$group" || $_SESSION[group3] == "$group" || + $_SESSION[group1] == "Administrators" || $_SESSION[group2] == "Administrators" || $_SESSION[group3] == "Administrators" || + $_SESSION[user_name] == "$group") + { + $allowed = "yes"; + }else{ + $allowed = "no"; + } + return $allowed; +} + +//function to check the length of the requested password +function password_check($min_pass, $max_pass, $pass) +{ + + $valid = "yes"; + if ($min_pass > strlen($pass) || $max_pass < strlen($pass)) + { + $valid = "no"; + } + + return $valid; +} + +?> \ No newline at end of file diff --git a/images/lr_13_header_01.gif b/images/lr_13_header_01.gif new file mode 100644 index 0000000000000000000000000000000000000000..67ed83e2b9d6a9218ac0d18d251150749641afc2 GIT binary patch literal 12490 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 literal 0 HcmV?d00001 diff --git a/images/lr_13_header_03.gif b/images/lr_13_header_03.gif new file mode 100644 index 0000000000000000000000000000000000000000..ca476eed518e10d3978d6e679d0b4701b3cf02f1 GIT binary patch literal 4560 zcmds(=UWqo!o>q33CKu&l@YiKUQ3Z$q-rq)A1_i1$i7x(N~5)ko2nNfSQ^4eSRn$E zg%DNP`B%@dNBYw0HD)p zHM??+W?QRO@9rv;s%5oi>+4f)@z|mVaS6G!`ako^wq?`gdX8GXL83FrmDDs6{kN2& zAFiby^o*HVn#!lOkSpnXj{2=_eesXM%`Qudt17pY3mKGJrE1ka05Se~ypUe&bS3fp z?M(6bhtLH4$n@BsM7oLVukWWu1s~pZz5nY;PFZ$oUGp0OrK!D!!|odynx6kCQ!ZAw zzFFR!t>knpN@yC@ho*`3ESX|hX ztag!TUH0Y0E6Tm(f=+Q?Jg%gI&A*+9o0^+Ec_q;k{-@8)#3z}>yxyLm`xx=)(AQqk z2cg#!apaMiv48w{+x5z`4srj9;HNchZ~6WG*8htBCGN$spA(EvU5n498GRS|mHW+( zzMgXt30EJX3#!>BKfn*3y?59z_OO5aF~8qC!~>Y3nhQ76E9>(dKF#j0xq@KwN>RmJa zL$yn>SGInt(QrNd&0_;fCK6BwYt6XU$E@`PxDI$;TxQl?W5#3)D-u}s)71DqD_7Jk z#-~?Fz{61@=&c*gDK>sZk*Az*3JIrjTF#znoExAVKDTDeZC+#*DvP4p5Y2ao8RvO2 zTb^uojQQl}?pmJw##DQj-!7{(%z&7sA@@Uh&X>l7*KFg&* zbP}OKpL}cKef2K`?QLqg=s&4Bu$EShTCue}J@ESV-|ZVZN{|K?(UK&P15JW5nYnFo z>Du+bBq;~3Mt@4Rx<&hxrZ$CJgzSae+oO*bM9-uNMZ7`3oS{6p0ut+GzF zRKr?REi-zY)ho>-58d1TK)0pN@0G8q*ZIH`8tGfhN16@6H}#rL(V2D4)}Z%^Kh}SI z%HUW;+}!8}Pd;1Ul}pekw2E2$Bdv0wvRy2xJ4}<6pWTFL>(! z`yP}iK$^M+CmoMTG7c9YEm(psXT(M(+@#E^$EW)wX(KDzzYH=W=yv69WXBAZnhJvT zPNzsR!Wl`2HqQDcfiNpApAF=Eec)>Pb;F|T!Vi-x*p)ZWD5W0?@ z>Fo_fZ01o+DjdBp3NMj1^J)GSP9eR*tK7|(jKW#7SVod(io}30*?Ig~Z(o#Z6VErH zx}YzLZa}sO0)OgBe6Q#hY>PNp_{ESG*Xwlo`o8xfsw=Cv{~=axZ)TU&>-7AS(O3O6uQS5Gu!!w4JJTv3Z{K&hr0sIYfGXb*;kyFv>C#lec@PcR z>%!JEbrVztJ`=t#Qf*gyn9_sMzC)#u9hy%7{Ssa{M1}2Cxe2d+qF;YQL{tY_=s?r$=#`qG1WU7NI~rn9Wt#GbQ;NoBkii4dZcL$ z9OyUN36U`{0W~))`$oHAvIboC@oQJ4dlC}u!Lb6Av1{L$7$Iw-nAS#n`;EUN$(m^a zwRc1M#)rAG7Do2!tv`cN2X&D$vkXC}d2HXrluE|po7Tmk{U&E1a<(9#?lHb^at zOHjPAGi$(j`_JqrE8aQ=He`f|W-NG$E*ES=mYWE52!7^u6h(hutmyM0wW7zvtPzLy zpFLuu6!-)-=Hf-O4(`g{VC*I~0d91-xn$oh!SCiw(HG|gWgpzEiO}Oecap3WMF%#K zMnrS2Jf*Hb2K&T3@cZ<0k#2o(O6ONH(fm2JasX-8OaTTgc-p82F@epcmi-G}?yA3V z*zK=WgTOm`C9-OW7T7`$>0i3aQ+;4ycc}3mDb51> z_cv(z=CS?DQEJr)-;BvX2dvz%QI84&nT`1Vm0RxWu|X`eVnT|FNY*pqIG~uU{?&&G z>IsP%i`^5j_L!`mTnJ=wNBY-ddFqc+ht7RbgL_X50VZzKI$P!a>xpXhG{BtA2L?(} zHW~>ih}~%^mZrIDK7ps7St4T|eUGu9_7bqW&xkj$37XG#<{W`{;ASpaGwY}e;s`^; zn*}`07cX40?OhM_dA`KtHfRqxR=icD*35gDa|h9Z+od+U3qC>IcX;tO)qQs{I0puH z`gb}hv&76a&co_1f2S^CcNuQZ8|?{{HIjE%qJwzjBVrkox4RmX!<)Plh_;E`H3>6+ zV=5EN+ts`4Nb^<+Fi6p9qm^QUT4yW=6y5IH4P1_9>OmB+HG;4I5ScW0WPmp$#tkWz6y;hA3Xl1`n z%bcYiwnxB8r`Zy%V&Jt_KA_X8|E91NQXh&m2t^vkAwdMBF&k+zij-Rdw=DJUxg_23 z_|qaT$%>E!VJF#+CLK~F*;%2EKv73SQ4Vn^M*_-;jk1I$?USPR!3|xY$)`h;UE`9W zgk%^y`Rr)&IYqLERf;Dx@3k}mRONBXqEjAnmrVnJsg+ar2xLB0WAl!rxe)|E9?vuI~$6fi^DDuuuE+0 z$|!bCft6b2Y(jG+Y~yh@5MigUV&`Z^bF_*afHh9v4QCLBGmOW9h&W>o&SVT{ro@5A zax5v?Ph5cJF)yr$FCd&3wqq|2DPP!G=N@s(JsOtl5TENv%yr`A9v{nvQ~~}zI5`xc zad4h%d>&Ls%!6_A&W`1sQ|5VC=X<*4UkJKvsAHydq@kna|%8if`Mo5b%JmnZYya;+esE<_=aMr|JH)4Jmu^^sEAQDL&V&NFE zNJ*qvlSzC>kpiD+>p$U%hjCH5B%0IR4cr@zprz)#TW#DNbQ6#kgA+4}t_2 z&BYfj5Q~;LMJr=PYsw<2b@8TK@pf3TEWTJlELL%f7m3DbsZp+nzCMg%5Kb{fP(UP# zF_&U8PBBwaz>t#tu#yAeB^HPht8hvUa$lOAQND|w9i;RKtn_GjsRN?akyPr$Ej>P7 z>Z~etfs~zum7NYRbM-Av^Dv?gg8n&Jc1~610V(%{m0t)i_d=BWkjj0z<^JR4fvWOg zNW~>sg$K!q;bEK&HnL+>M2=TPsVd+Q>J1q6W;pd0f*MVt-sMv7k5eD2s4tprjx z1FM@2ubV^EEs*M#xOFS^+KbXUDWrZAR=*uyFGJKTNcAdiy=MIHhgc7=Vd%Rv4BYDj zVi+JY!q$ zPQ1qB6OGR5Mi-l=lkQEYBbr=m6PlppCK#{j>_pSK>c*du2It+IJtLYgBs6=Gn|&w- z{u9lC>gHgZmP_s}mm^xPCbWc-Tf%uQkrORZ>K3>SGe~W4GlF?5ff-F^`tkwyCzub_ z%orQiV|Uim2v%$YD~`-U@L10$Scz&D(uV!u+r21v_WkNT7&1G9$IhByW7TY&4JX%~ mlOMq;NZ=6291@RHIKfHpGbrveD0SzSM{ucrTo@P(aQ|Q5%Vr<| literal 0 HcmV?d00001 diff --git a/images/lr_13_header_04.gif b/images/lr_13_header_04.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f1c76b914f468519a51c4e87071f2bab0969cef GIT binary patch literal 4442 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 literal 0 HcmV?d00001 diff --git a/images/lr_13_header_06.gif b/images/lr_13_header_06.gif new file mode 100644 index 0000000000000000000000000000000000000000..30374119809bdeb178d5984ea6519f8ecfc0a820 GIT binary patch literal 6830 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 Lx$uP$0IdHH6B_W( literal 0 HcmV?d00001 diff --git a/images/mpdolan_logo.gif b/images/mpdolan_logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..32f84d4a0a28420ca9c525b6f473a494ff8a49ae GIT binary patch literal 5771 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 OHZ(O(>T053&Hn()Dg`3| literal 0 HcmV?d00001 diff --git a/images/mpdolan_logo_bottom.gif b/images/mpdolan_logo_bottom.gif new file mode 100644 index 0000000000000000000000000000000000000000..92d8cc695687e10a1366b367578086dd47bd087d GIT binary patch literal 4282 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 literal 0 HcmV?d00001 diff --git a/images/mpdolan_logo_top.gif b/images/mpdolan_logo_top.gif new file mode 100644 index 0000000000000000000000000000000000000000..76e672cb51bdd0513637ea9a5a02ebca3785aa46 GIT binary patch literal 4273 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 RYu8GPGM-jZkdu>L{U5J|pw<8Y literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..c10d867 --- /dev/null +++ b/index.html @@ -0,0 +1,312 @@ + + + + + +Welcome to Login - Redirect + + + + + + + + + +
This is Version 1.3 of Login - Redirect. +

+ Begin Installation

+

This script is not only a secure login script, +it also allows great control and can be integrated easily into most sites as +well as the following features:

+

Redirection based on the users login information
+        - The site administrator can dictate +the page that the user will be redirected to once the user has been +authenticated
+Control Panel Administration
+        - The control panel administration +allows Administrators the following functions:
+                +- Add Users
+                +- Modify user information
+                +- Add users to groups
+                +- Delete users
+                +- Undelete Users
+                +- Ban Users
+                +- Lift user bans
+                +- Ban IP Addresses
+                +- Lift IP Address bans
+                +- View and sort login information
+                +- Require users to change their password at next login
+                +- Require users to activate their account as to verify their e-mail address +before they are able to login
+                +- View all user information
+Other functionality of this package:
+        - Control access to pages through +username or groups
+        - Allows users to request an e-mail +of their login information
+        - Allows users to change their own +password and e-mail address
+        - Allows users to self-register
+       
+All of the pages viewed by users have been written in html as to allow site +creators easy integration into their site.
+All html pages can be altered, just do not change the functionality of the page.
+For example, if the html page contains to fields named X and Y and the form is +posted to page.php, do not change the name of the field or the name of the page +that the information is posted to unless you know what you are doing.

+

Requirements:
+        - Website server with php +functionality.
+        - MySQL Database
+
+The installation process is very simple.  You will need the following +information to complete the installation:
+        - a MySQL database
+        - The username and password for that +database
+        - Knowledge of the database server +(typically localhost, but it could be different as with 1&1 hosted sites)
+        - FTP ability
+That's it, the installation walks you through all of the steps and creates all +of the table required as well as the configurations settings and the +administrator account setup.
+
+Package Contents and Description:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
../ 
*activate.htmlThis page allows the user to activate + their account.  If you has set the configuration to verify e-mail + address, the user will register and an e-mail will be sent requesting + the user to visit this page and activate the account.
*banned.htmlThis page is displayed to user if + either their IP Address or User account has been banned.
check_login.phpThis page is a server-side page that + checks to see if the user still has an open session or has elected + cookies to be set as to limit the number of times the user must login.  + You do not have to use this page - If you require your users to login in + every time, I would suggest you remove the "Remember me from this + computer" section from login.html and errorlogin.html.  If you + chose to use it and have a "Login" link somewhere on your page, have it + link to check_login.php.
config.phpThis is the page with all of the + configuration settings, the code for this page is generated during the + installation process, you will simply need to copy and paste it into + this page and upload.
*email_change.htmlThis page allows users to change their + own e-mail address.
email_change.phpThis is the server-side page that + handles the changing of the user's e-mail address.
*errorlogin.htmlThis is the page that the user is + directed to should their be an error with their credentials.
functions.phpThis page contains various functions + that are used throughout the package.
*login.htmlThis is the main login page for the + users.
loglogin.phpThis is a server-side page that records + the login information to the log_login table.
*no_access.htmlThis is the page that is displayed + should a user try to gain access to a page that they are no allowed + access to visit.
*not_activated.htmlThis is the page that is displayed + should a user try to login without activating their account, that is if + you have required e-mail verification.
*pass_change.htmlThis page allows users to change their + own password.
pass_change.phpThis is the server-side page that + handles the password change.
redirect.phpThis is the server-side page that sets + the session and redirects the user to the page specified by the + administrator.
*register.htmlThis page allows user to register + themselves for your site.
register.phpThis is the server-side page that + handles the registration.
**../install 
**create_admin.phpThis is the administrator interface to + create the administrator's account.
**install.htmlThe first installation page, requests + configurations information.
**install_1.phpThe second installation page, allows + for the naming of groups.
**install_2.phpThe third installation page, allows for + the creation of the administrator's account.
**install_3.phpThe fourth installation page, + installation is complete and provide the config.php code.
../admin 
adduser.phpThis is the server-side page that + handles the addition of a user.
adminpage.phpThis is the Administrator's Control + Panel - very important.
mod_user.phpThis is the server-side page that + handles the user modifications, deletions and banning.
../logs 
index.htmlThis is a frames page that includes the + next two pages.
log.phpThis is the page that appears on the + right of index.html and contains the login information.
log.htmlThis is the page that appeats on the + left of index.html and allows for sorting of the login information and + also contain arin.net whois lookup for IP Addresses.
+

* - indicates that this page is customizable
+** - indicates that this file or folder can be deleted after installation is +complete

+ +

How-to restrict access to your pages:
+1.    All secure pages must be php pages.  You can easily +create any page in html and simply save it with a .php extention.
+2.    This code must be added prior to any code on the page:
+
+<?php
+
+//prevents caching
+header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
+header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+header("Cache-Control: post-check=0, pre-check=0",false);
+session_cache_limiter();
+session_start();
+
+//this should the the +absolute path to the config.php file
+//(ie /home/website/yourdomain/login/config.php or
+//the location in relationship to the page being protected - ie ../login/config.php +)
+
require('../config.php');
+
+//this should the the +absolute path to the functions.php file - see the instrcutions for config.php +above

+require('../functions.php'); +
+
+ //this is +group name or username of the group or person that you wish to allow access to
+
+// - please be advise that the Administrators +Groups has access to all pages.
+
if (allow_access(Administrators) != "yes")
+{                       

+
+//this should the the +absolute path to the no_access.html file - see above
                                    
+include ('no_access.html');
+exit;
+}
+?>

+

For a more precise sample of the code you should +use, please Click Here.

+

That should do it...

+ + + + diff --git a/install/create_admin.php b/install/create_admin.php new file mode 100644 index 0000000..5a19d7f --- /dev/null +++ b/install/create_admin.php @@ -0,0 +1,61 @@ + + + + + + + +Create Your Administrator Accoun + + + + +

Create Your Administrator Account:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
First Name: +
Last Name: +
Username: +
Password: +
Redirect To: +
  
+  
+
+ + + + \ No newline at end of file diff --git a/install/header.html b/install/header.html new file mode 100644 index 0000000..6922291 --- /dev/null +++ b/install/header.html @@ -0,0 +1,31 @@ + + + + +Header + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + diff --git a/install/install.html b/install/install.html new file mode 100644 index 0000000..6cd15a5 --- /dev/null +++ b/install/install.html @@ -0,0 +1,148 @@ + + + + + +Login - Redirect Installation + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + + + + + + +
+

Database Name:
+

+

Server:
+
+

+

Database Username:
+

+

Database Password:
+

+

Installation + Directory:
+

+

Administrator's + Email:
+

+ Time Zone:
+

+
+

Domain Name:
+ www.. + - if other than that listed: +

+

Verify New User's + Through Email?
+

+

Default URL:
+

+

Minimum Password + Length:
+

+

Maximum Password + Length:
+

+

Log Logins?
+

+

Number of Groups:
+

+ +  
+
+

 

+ + + + diff --git a/install/install_1.php b/install/install_1.php new file mode 100644 index 0000000..51d562c --- /dev/null +++ b/install/install_1.php @@ -0,0 +1,70 @@ +"; +include ('header.html'); + +if (!$_POST[dbase_name] || !$_POST[dbase_server] || !$_POST[dbase_username] || !$_POST[dbase_password] || + !$_POST[install_dir] || !$_POST[time_zone] || + !$_POST[default_url] || !$_POST[min_pass_len] || !$_POST[max_pass_len] || !$_POST[dom_name] || !$_POST[admin_email]) +{ + echo "

You must complete all of the fields, please Go Back and complete all of the fields.

"; + exit; +} + + +?> + + + + + + + +Login - Redirect Installation + + + + +Enter the names of your Groups:
+(Do not use Administrators or Users as a Group Name as there are pre-configured groups)
+
+Group $i

"; +$i++; +} +?> + +

+
+ + + + + \ No newline at end of file diff --git a/install/install_2.php b/install/install_2.php new file mode 100644 index 0000000..f3b84ab --- /dev/null +++ b/install/install_2.php @@ -0,0 +1,233 @@ +"; + +include ('header.html'); + +$group_array = array(); + +$i = 1; +while ($i <= $_SESSION[group_number]) +{ + $group = "group$i"; + array_push($group_array, "$_POST[$group]"); + $i++; +} + +$i = 1; + +//test connection to dbase verifing dbase name, server, username and password + +$connection = @mysql_connect($_SESSION[dbase_server], $_SESSION[dbase_username], $_SESSION[dbase_password]) + or die(mysql_error()); + +$db = @mysql_select_db($_SESSION[dbase_name],$connection) + or die(mysql_error()); + +//create a message to be displayed at the end of the installation +if ($db) +{ + echo "Connection to Database $_SESSION[dbase_name] Successful.
"; +}else{ + echo "

There was an error connecting to the database.

"; + echo "

Please go back and check your Database information.

"; + exit; +} + +//create a table in that dbase +$sql =" +CREATE TABLE IF NOT EXISTS $_SESSION[table_name] +( + firstname VARCHAR(20), + lastname VARCHAR(20), + username VARCHAR(20), + password VARCHAR(50), + group1 VARCHAR(20), + group2 VARCHAR(20), + group3 VARCHAR(20), + pchange VARCHAR(1), + email VARCHAR(100), + redirect VARCHAR(100), + verified VARCHAR(1), + last_login DATE +)"; + +$result = @mysql_query($sql,$connection) + or die(mysql_error()); + +if ($result) +{ + echo "Table $_SESSION[table_name] has been created.
"; +}else{ + echo "

There was an error creating the table.

"; + echo "

Please go back and check your information.

"; + exit; +} + +//create a table in that dbase +$sql_log =" +CREATE TABLE IF NOT EXISTS log_login +( + username VARCHAR(20), + date VARCHAR(20), + time VARCHAR(20), + ip_addr VARCHAR(20), + oper_sys VARCHAR(20), + brow VARCHAR(20) +) +"; + +$result_log = @mysql_query($sql_log,$connection) + or die(mysql_error()); + +if ($result_log) +{ + echo "Table log_login has been created.
"; +}else{ + echo "

There was an error creating the table.

"; + echo "

Please go back and check your information.

"; + exit; +} + +//create a table in that dbase +$sql_ban =" +CREATE TABLE IF NOT EXISTS banned +( + no_access VARCHAR(30), + type VARCHAR(10) +) +"; + +$result_ban = @mysql_query($sql_ban,$connection) + or die(mysql_error()); + +if ($result_ban) +{ + echo "Table banned has been created.
"; +}else{ + echo "

There was an error creating the table.

"; + echo "

Please go back and check your information.

"; + exit; +} + +//create a table in that dbase +$sql_trash =" +CREATE TABLE IF NOT EXISTS trash +( + firstname VARCHAR(20), + lastname VARCHAR(20), + username VARCHAR(20), + password VARCHAR(50), + group1 VARCHAR(20), + group2 VARCHAR(20), + group3 VARCHAR(20), + pchange VARCHAR(1), + email VARCHAR(100), + redirect VARCHAR(100), + verified VARCHAR(1), + last_login DATE, + del_date DATE + ) +"; + +$result_trash = @mysql_query($sql_trash,$connection) + or die(mysql_error()); + +if ($result_trash) +{ + echo "Table trash has been created.
"; +}else{ + echo "

There was an error creating the table.

"; + echo "

Please go back and check your information.

"; + exit; +} + + +?> + + + + + + +Login - Redirect Installation + + + + + + + + +
+ +"; + +include ('create_admin.php'); + +?>
+ + + + + + + diff --git a/install/install_3.php b/install/install_3.php new file mode 100644 index 0000000..5f2b8ee --- /dev/null +++ b/install/install_3.php @@ -0,0 +1,81 @@ +You must complete all of the fields, please Go Back and complete all of the fields.

"; + exit; +} + + + +$pass_len = password_check($_SESSION[min_pass_len], $_SESSION[max_pass_len], $_POST[password]); +if ($pass_len == "no") +{ + echo "

You must use a password between $_SESSION[min_pass_len] and $_SESSION[max_pass_len] characters in length, please Go Back and try again.

"; + exit; +} + +//make connection to dbase +$connection = @mysql_connect($_SESSION[dbase_server], $_SESSION[dbase_username], $_SESSION[dbase_password]) + or die(mysql_error()); + +$db = @mysql_select_db($_SESSION[dbase_name],$connection) + or die(mysql_error()); + +$check_name = "SELECT * FROM $_SESSION[table_name] WHERE username = '$_POST[user_name]'"; +$name_result = @mysql_query($check_name,$connection) or die(mysql_error()); + +//get the number of rows in the result set +$num = mysql_num_rows($name_result); + +if ($num != 0) +{ + echo "

That username already exists. Please Go Back and enter a different username.

"; + exit; +} + +$date = last_login(); + +//enter information into table +$sql = "INSERT INTO $_SESSION[table_name] VALUES + ('$_POST[first_name]', '$_POST[last_name]', '$_POST[user_name]', + password('$_POST[password]'), 'Administrators', '', '', '0', '$_SESSION[admin_email]', + '$_POST[redirect_to]', '1', '$date')"; + +$result = @mysql_query($sql,$connection) or die(mysql_error()); + +if($result) +{ +?> + + + + + +Login - Redirect Installation + + + +The Administrators Account has been Successfully Created.

"; + echo "

The last step is to create a file named config.php.
"; + echo "Copy and paste the below into this file and upload to $_SESSION[install_dir].

"; + echo "

"; + echo "

For a sample of the header of each secure page, please Click Here

"; + echo "

Should you have any difficulties, please visit the Help Forum:"; + echo "
MPDolan.com Help Forum

"; + echo "

Please login as with the Adminstrator's Account to complete testing."; + echo "
Login Now


"; +} + + +?> + + \ No newline at end of file diff --git a/install/message.php b/install/message.php new file mode 100644 index 0000000..5c4b586 --- /dev/null +++ b/install/message.php @@ -0,0 +1,21 @@ + + + + + + +New Page 1 + + + + +

+

+ + + + \ No newline at end of file diff --git a/install/sessions.php b/install/sessions.php new file mode 100644 index 0000000..3963ed0 --- /dev/null +++ b/install/sessions.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/login.html b/login.html new file mode 100644 index 0000000..b00df9a --- /dev/null +++ b/login.html @@ -0,0 +1,24 @@ + + +Login + + +

Login to Secure Area

+
+

Username:
+
+

+

Password:
+
+

+

+Remember +me from this computer

+

+

+
+

+Click here if would like your username and password to be +e-mailed to the address we have on file.

+ + \ No newline at end of file diff --git a/loglogin.php b/loglogin.php new file mode 100644 index 0000000..ad078fa --- /dev/null +++ b/loglogin.php @@ -0,0 +1,60 @@ + \ No newline at end of file diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..64e146c --- /dev/null +++ b/logout.php @@ -0,0 +1,13 @@ + + + + + + diff --git a/logs/index.php b/logs/index.php new file mode 100644 index 0000000..e6451dc --- /dev/null +++ b/logs/index.php @@ -0,0 +1,34 @@ + + + + + + +Log Viewer + + + + + + + <body> + + <p>This page uses frames, but your browser doesn't support them.</p> + + </body> + + + + diff --git a/logs/log.html b/logs/log.html new file mode 100644 index 0000000..9c2f555 --- /dev/null +++ b/logs/log.html @@ -0,0 +1,46 @@ + + + + + +New Page 2 + + + + + +
+

+Ordenar por: +
+

+
+ +


+
+
+
+ARIN WhoIs

+

+
+ +

Buscar:
+
+ +
+

+
+ +


+ + Volver a la página de administración

+ + + + \ No newline at end of file diff --git a/logs/log.php b/logs/log.php new file mode 100644 index 0000000..99a0d04 --- /dev/null +++ b/logs/log.php @@ -0,0 +1,36 @@ + username; + $whend = $sql -> date; + $whent = $sql -> time; + $ip_add = $sql -> ip_addr; + $operat = $sql -> oper_sys; + $browse = $sql -> brow; + + echo "

Usuario: $user
"; + echo "Fecha: $whend
"; + echo "Hora: $whent
"; + echo "Dirección IP: $ip_add
"; + echo "Sistema operativo: $operat
"; + echo "Navegador: $browse

"; +} + +?> \ No newline at end of file diff --git a/no_access.html b/no_access.html new file mode 100644 index 0000000..9ec2599 --- /dev/null +++ b/no_access.html @@ -0,0 +1,29 @@ + + + + +NO ACCESS ALLOWED + + + + +Access Denied!!!

Please login with proper +credentials:

+
+

Username:
+
+

+

Password:
+
+

+

+Remember +me from this computer

+

+

+
+

 

+ + + + diff --git a/not_activated.html b/not_activated.html new file mode 100644 index 0000000..6025afb --- /dev/null +++ b/not_activated.html @@ -0,0 +1,15 @@ + + + + +Account Not Activated + + + + +

Your account must be activated before you can log in, please visit the +activation page that was included in the email we sent you.

+ + + + diff --git a/pass_change.html b/pass_change.html new file mode 100644 index 0000000..b8a936b --- /dev/null +++ b/pass_change.html @@ -0,0 +1,36 @@ + + + + +Password Change + + + + + + +
+

Password Change

+

New Password:
+

+ Confirm Password:
+

+

+
+  + + + diff --git a/pass_change.php b/pass_change.php new file mode 100644 index 0000000..9e854fe --- /dev/null +++ b/pass_change.php @@ -0,0 +1,80 @@ + + + + + + +Password Change + + + + + + + + + redirect; + } + +//sends the user to their redirect to + header("Location:$_SESSION[redirect]"); + exit; +?> diff --git a/redirect.php b/redirect.php new file mode 100644 index 0000000..798ffd9 --- /dev/null +++ b/redirect.php @@ -0,0 +1,108 @@ + no_access; + if ($username == $banned || $REMOTE_ADDR == $banned) + { + include ('banned.html'); + exit; + } + } + +$last_log = last_login(); + +//updates table with last log as now +$sql = "UPDATE $table_name SET last_login = '$last_log' WHERE username = '$_SESSION[user_name]'"; +$result = @mysql_query($sql,$connection) or die(mysql_error()); + +if (($_SESSION[redirect] != "$base_dir/errorlogin.html") && ($log_login == "1")) +{ + include('loglogin.php'); +} + +//redirects the user +header("Location:$_SESSION[redirect]"); + +?> + +Redirect \ No newline at end of file diff --git a/register.html b/register.html new file mode 100644 index 0000000..9f80a88 --- /dev/null +++ b/register.html @@ -0,0 +1,79 @@ + + +Registration + + + + + +

+Register

+
+

+First Name:
+
+

+

+Last Name:
+
+
+
+Username:
+

+

+Password:
+
+
+
Confirm Password:
+

+

+E-Mail Address:
+
+

+

+

+
+ + \ No newline at end of file diff --git a/register.php b/register.php new file mode 100644 index 0000000..6052112 --- /dev/null +++ b/register.php @@ -0,0 +1,98 @@ + + + + + + +Registration + + + + + + + + +Sorry, that username already exists.

"; +echo "

Try Another Username.

"; +exit; + +}else{ +$sql = "INSERT INTO $table_name VALUES +('$_POST[firstname]', '$_POST[lastname]', '$_POST[username]', password('$_POST[password]'), 'Users', '', '', '$pchange', +'$_POST[email]', '$default_url', '$verify', '')"; + +$result = @mysql_query($sql,$connection) or die(mysql_error()); +} + +//checks to see if the user needs to verify their email address before accessing the site +if ($verify == "0") +{ + $mailheaders = "From: www$domain\n"; + $mailheaders .= "Your account has been created.\n"; + $mailheaders .= "Please activate your account now by visiting this page:\n"; + $mailheaders .= "$base_dir/activate.html\n"; + + + $to = "$_POST[email]"; + $subject = "Please activate your account"; + +mail($to, $subject, $mailheaders, "From: No Reply <$adminemail>\n"); + +}else{ + header('Location:login.html'); +} + + + +?> + + + +Add a User + + +

Please check your email to activate your account.

+ + \ No newline at end of file diff --git a/smpl_sec_header.php b/smpl_sec_header.php new file mode 100644 index 0000000..0932284 --- /dev/null +++ b/smpl_sec_header.php @@ -0,0 +1,51 @@ +
+//prevents caching
+header(\"Expires: Sat, 01 Jan 2000 00:00:00 GMT\");
+header(\"Last-Modified: \".gmdate(\"D, d M Y H:i:s\").\" GMT\");
+header(\"Cache-Control: post-check=0, pre-check=0\",false);
+session_cache_limiter();
+session_start();
+
"; + +if (preg_match("/Windows NT/", $viewer)) +{ + echo "require('$abs\config.php');
+
+ require('$abs\functions.php');
+
"; +} +else +{ + echo "require('$abs/config.php');
+
+ require('$abs/functions.php');
+
"; +} + +echo " +//this is group name or username of the group or person that you wish to allow access to
+// - please be advise that the Administrators Groups has access to all pages.
+if (allow_access(Administrators) != \"yes\")
+{
+"; +if (preg_match("/Windows NT/", $viewer)) +{ + echo " + include ('$abs\\no_access.html');
+ "; +} +else +{ + echo "include ('$abs/no_access.html');
"; +} +echo " +exit;
+}
+?>"; + +?> diff --git a/style.css b/style.css new file mode 100644 index 0000000..9fb19af --- /dev/null +++ b/style.css @@ -0,0 +1,72 @@ +body { + font-family: Verdana; + font-size: 11px; +} + +a:hover { + color: #0000ff; + font-family: Tahoma; + text-decoration: underline overline; +} + +a:visited, a:active { + color: #0000ff; + font-family: Tahoma; + text-decoration: none; +} + +a:link { + color: #0000ff; + font-family: Tahoma; + text-decoration: overline underline; +} + +td { + font-family: Verdana; + font-size: 8pt; +} + +a { + font-family: Tahoma; +} + +h1 { + font-family: Tahoma; +} + +h2 { + font-family: Tahoma; +} + +h3 { + font-family: Tahoma; +} + +h4 { + font-family: Tahoma; +} + +h5 { + font-family: Tahoma; +} + +h6 { + font-family: Tahoma; +} + +p { + font-family: Tahoma; +} + +tr { + font-family: Tahoma; +} + +
{ + font-family: Verdana; +} + + { + color: #0080ff; + font-family: Verdana; +} \ No newline at end of file