Blog Entry: 3/25/2006 2:32:22 PM
Just to let you know that i figured out my problem. I had to modify the connection in the email code and get the correct path from my provider.
I hope you enjoyed your vacation.
Wondering what might be causing a long delay to display the login screen? This does seem to be intermittent. Could be server/ISP related? Have experienced enough times to justify posting this question.
I can count up to 20 seconds after clicking on the link. After login all other selections zip right along without problem.
Did you do what that thread said so you see a more detailed error ?
Can I see the site and look around.. ?
I just am not sure what is going on from what you are explaining ?
If so private message me with the admin account details and tell me what to do to reproduce the error. ,
you basically have to edit the html in the links in the various pages and remove them... some are in includes files
use a text editor and be causious / back things up before you remove links so you can revert back,
BTW.. I dont know what is going on But I keep getting all these returned emails. My forum is sending you emails and they are coming back as undeliverable saying your storage space is exceeded on your server.
Could not deliver message to the following recipient(s):
Failed Recipient: firstname.lastname@example.org
Reason: Remote host said: 552 Requested mail action aborted: exceeded storage allocation
-- The header and top 20 lines of the message follows --
Received: from server.powerasp.com [220.127.116.11] by mail.cjwsoft.com with SMTP;
Thu, 28 Apr 2005 15:34:44 -0400
From: "CJWSoft Support Info" <email@example.com>
Subject: CJWSoft Support Info : Thumbnail creation
Date: Thu, 28 Apr 2005 15:34:44 -0400
Hi srgould41,<br /><br />A message has been posted in the info area on CJWSoft Support Info that you asked us to keep an eye on.<br /><br />To view and/or reply to the info then click on the link below : -<br /><a href="http://support.cjwsoft.com/code/code_info.asp?TID=249& amp;TPN=1">http://support.cjwsoft.com/code/code_info.asp? TID=249&TPN=1</a><br /><br />If you no-longer wish to recieve email notification for this Info or Infor Area click on the link below : -<br /><a href="http://support.cjwsoft.com/code/email_notify.asp?TID=2 49&FID=4&M=Unsubscribe">http://support.cjwsoft.co m/code/email_notify.asp?TID=249&FID=4&M=Unsubscribe& lt;/a><br /><br /><hr /><br /><b>Information Area:</b> ASP Photo Gallery Pro Version<br /><b>Info:</b> Thumbnail creation<br /><b>By:</b> cwilliams<br /><br /><P>trust me, they (serverobjects) does not check.. as a matter of fact they havent answered support emails for about 3 years. All they do is sell that crap and forget the customer. But the stuff does work well and always has. (that guy took all the money he made/makes from those components and took off to Jamaica or something sitting on the beach drinking margaritas)<BR><BR>regardless,<BR>ASP just cant resize pictures on it's own. <BR>It' just not possible. You need a 3rd Party component.<BR><BR>There isn't much to say about the ASP.NET thing.<BR><BR>If your server has ASP.NET installed (meaning you can run aspx pages on your server and the ASP.NET framework is installed) and running you just pick that option in the config file and ASP Photo Gallery will use ASP.NET to make dynamic thumbnails for you.<BR><BR>To run ASP.NET it must be a 2000 or 2003 server.</P>
I have reviewed the permissions requirements for folders from the support documentation but do not see the 'internal guest' account shown in our system to allow internet access to read/write to the access database.
How else can we locate the proper account (or is it possible there is none?) to use to allow permissions to access the Data directory if it doesn't show up as 'Internal Guest'?cwilliams38417.7773032407,
Adding Support For ServerObjects ASPMail
ASPProtect as you know does not support ServerObjects ASPMail component by default.
cwilliams38419.7864351852, 1st. Please understand you have to purchase two licenses to do such a thing as each installation will need a valid license purchased.
Here are directions to make it work.
In the ASPProtect admin settings area simply pretend as if you are using the softartisans sasmtp mailer component. ASPMail and that sasmtp component share the same properties… and the code used for them is nearly identical.
So search through the code for any place where email is sent and simply change
Set Mailer = Server.CreateObject("SoftArtisans.SMTPMail")
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
It is about 4 places. They are not too hard to find.
That’s the easy way to get all the emailing functions working with ASPMail
ASPProtect using a industry standard concept called "Forms Based Authentication"
This primarily relies on session variables keeping track of login status.
Each installation must be in it's own unique "IIS Application" so it will have it's own set of application and session variables.
That is often not possible with shared hosting plans as the server admins may not be willing to set a folder in your web as a separate IIS application. You would need to ask. It is going to depend on the quality of your hosting plan whether they do it or not.
technically it takes about 1 minute to open up the "IIS Console" and set up a folder in your web as a separate "application"
Based on what you are telling me that you want to do I think it would make a lot more sense to have one installation and one user database and customize your sites so ASPProtect users that are part of certain "groups" have access to things others do not or see things on pages other users would not. That is after all the entire point of Dynamic web sites and also why ASPProtect has "groups".
Then as far as the registration differences go you would make a copy of the users area folder area and manual customize it to register users in an alternate fashion than the main "users" folder. And then send people there if that is how you want them to register.
I don't support customizations but that is the gist of it. It's really not difficult work, but you have to be good with ASP.,
in both the admin and users area needs to be edited
You'll see something like this...
If Len(Image_Description) > 250 Then
just change 250 to something higher.. I wouldn't go much over 500 though as it may cause problems.. I am really not sure.. Changing it higher is done at your own risk.cwilliams38300.5727314815, I am running into problems with the import function. I have 25 photos loaded into the import folder. The page see all of the photos. But after I click on the import process it takes me Picture Manager with no pictures loaded. I have hit the refresh button, but there is nothing there. dr_bones38394.676412037,
I installed the ASPProtect.NET project no problem. I am using VS.NET 2003 on Windows XP SP2 (and fully patched). I am able to build the project successfully, however I cannot debug the project. I get an error "Unable to start debugging on the web server. The project is not configured to be debugged." The web app runs fine just browsing to it.
I know this is an isolated problem particular to this project. I have MANY other .NET projects that I can debug without any problems. I have tried going into IIS and turn on the debugging for server-side script debugging and making sure my IIS application setting were configured correctly.
Can anyone shed any light on this at all? Christopher, is there any reason I should not be able to debug this? (i.e. the aspprotectlicense.dll)
The only reason no one else
asked this many questions is possibly because they didnt NEED the functions i
am TRYING to do.
We offer tech support for
installation of the base application purchased in it's native form.
In other words were not planning on spending weeks holding your hand and
teaching you how to build your application or modify the one you bought. Not
because anyone wants to make it hard on you but because there is a practically infinite
number of things someone could be trying to do and the only way to give you the
exact answer would pretty much involve either writing it for you or having a
look at your code to see what the heck your doing. Sorry but my time isn’t cheap
nor do I have a lot to spare. I already gave you my approach on what to do and
what you should be looking at but obviously you’re not catching on. SO ONCE
AGAIN, PLEASE LOOK AT THE SOURCE CODE AND DECIDE HOW YOU WANT TO HANDLE YOUR
END OF THINGS BASED ON HOW THE APP DOES ITS THING. I really don’t know how I
can be more clear that that. I don’t have a crystal ball that can tell me where
you’re going with your own code, what the final requirements are... what field
you want to add or remove for the database etc. There is a demo up that
everyone can look at and play with so they can get a feel for how the things
behave and look. It’s not my fault your naivety led you to believe you could do
anything with it in ten seconds. I mean if I just add some wings to my car
maybe it will fly, and if you just add a shopping cart and a few products maybe
you can start your own Amazon.com with that software right? Sounds good to me…
It would take me longer to re-write YOUR code
than it would to have LEARNED ASP.NET and made MY OWN.
Well thats one thing we both agree on, I bet it would take you a long
time to rewrite the code when you dont know how to write it in the
first place. By you own admission you dont know enough about what your
doing to be messing
with a .NET app at this point. Maybe you should take your own advice
SOMETHING ABOUT IT. What’s even worse is that application isnt even
complicated, its 101 stuff honestly. One class, thats it! Your not
looking at thousands
and thousands of them that you will have to read and comprehend. If you
actually “read” the code we kept it lean and mean and to the point.
strange or random, no references to a zillion things all sprinkled here
there. Its reads like a book if you know the language. That’s why
buy these apps all the time. Not because they couldn’t write one
but because they know their time is valuable as well and for $150 which
than most get paid an hour they couldn’t be bothered. Furthermore we
both spend a lot of time making sure these apps are "dumbed down" so
that the average programmer without a lot of object oriented background
can pick up the coding style tweak it if they need to. Some people do
modify things to suite their needs and
happy with our apps "as is".
Just to recap we already wasted two days yappin about your
jacked up servers and after you went through THREE of them and finally got one
working you said the code was working. Red lights started flashing in my office
by the time you got to the second screwed up machine, but hey weird things
happen so at that point I wasn’t 100% concerned. Technically we could have and
possible should have cut you off there as the policy in place is pretty clear
about us not being your tech support crew when it comes to getting your machine
working properly (especially one we cant even look at). Go check those posts
again both Chris and I were answering your questions and being as helpful as
anyone could possibly expect.
Several more days have been spent answering questions about
how to modify your application and again that’s not our responsibility and we don’t
support modified versions of the software for all the reasons that should be
obvious. No software company does and if I have to explain why that is well this
conversation is beyond hope.
Bottom line is the responsibility to support that
application ends the moment you get it running the way it was shipped. Were
pretty damn decent about going above and beyond and a lot of the time we go
into things we shouldn’t have to. If you have well thought out and specific
questions by all means ask, this isn’t some sort of thanks for your money now
get lost operation. CJWSoft has been around since the beginning of Microsoft’s
entrance into the web application market. We have thousands and thousands of
happy customers because we are developers and enjoy working with other
developers along the way.
You’re not the first N0oB to show up, but you’re the first
one I can think of that ever tried to tell us we didn’t write the apps we sell and essentially
wanted to argue that we don’t know what were talking about. Meanwhile you
should have been done with your thing days and days and days ago, not in here
yapping off and showing your ignorance to the other developers that regularly
browse these forums. You trying to tell me how CafePress works is a joke, I happened
to have been part of the team that worked on the first few revisions of that
site and again you really didn’t even understand what I was getting at in that
LINK TO LOGIN PAGE not link to every protected page on the site.
If you think I am pissed off at you, your wrong. I'm
just irritated with the whining about this and that and rather than
admit your over your head you come back with half baked remarks that
only make sense to you. If you think you can
a few terms and come back here talking smack like you’re actually
knows what you’re talking about your just making a fool of yourself.
You sound like a guy from China trying to tell me how to speak
is get a few books and start learning or try actually reading up and
to the other bazillion knowledgeable developers out there that do a
posting articles about the subject. You might just learn something and
get your project finished before 2010 and when you do please come back
re-read your posts with "enlightened eyes" so you can see what a goofball you are for saying half
things you have said. I am not in the mood to keep helping you get your
project done step by step. I have huge projects of my own going on and
if I thought you could actually provide a descent project specification
I might offer to make the changes for you at a serious discount so you
could go away and everyone would be happy. Problem is I dont get the
feeling you could explain your way out of a paper bag let alone provide
a group of programmer the techinal specs for your project.
Your best bet is to post a link to the start of
this thread at www.AngryCoder.com I'm sure a few of people over there would be more than willing to give you a ton of usefull advice
Google 4GuysFromRolla… a great resource site with example, just
dont come back here telling me those guys/ladies posted things
that dont work either.
Chris has written hundreds of articles on PowerASP, a great
place to start looking as well… www.powerasp.com
I've been spitting out code for longer than I can remeber and I still look
thing up on this site because its LOADED with great info. That happens
to be one of the very first ASP sites that went up on the net so lets
just say he knows a bit or two about the subject.
I'm sure your frusturated but
your pushing your luck
seriously. 38 posts about this subject in a week and your over there
hacking away on your virus infested WaReZ machine which isnt exactally
the ideal development rig. I mean we provide the code and your supposed
to provide at
the least a very basic knowlege of what your doing and a production
grade platform to test it out on. To me thats like buying a
car and then asking how to drive it... then bugging the dealer to teach
you and when you smash the thing complaining because no one told you
that your not supposed to drive into a wall. I have the same policy as
the dealer, show me something wrong with the car from the factory and
we will fix it for you NO QUESTIONS at all with our appoligies, but
really once you take it off the lot what you do with it is your deal
and its not our responsability in the least.
, Actually it is my own server (retired email server from my employer). I will check out the documentation again. I DID read that part, but didn't understand it enough. I'll dig deeper. Also my box has 2 CPU's, hence the $125 for ASPImage...,
that really does not make any sense...,
I dont know what else to tell you as this really shouldn't be anything too difficult to sort out...
redirection based on criteria is not something aspprotect does by default... I try to help a bit... I've shown everyone how to do it in this thread...I know plenty of people doing it... I've done it myself... I know it works
let me ask you this... are you using ASPProtect 6 with the Option Pack ?
I assume you must be or you would not have the Groups feature ?
And you asked this question in the ASPProtect 6 section.
but then maybe your using 7.. I do not know
this should all work the same either way
No rush, I have it out on the internet, but have not gone live with the site yet.
Thanks for responding,
Enjoy your well deserved break, Its not a known issue.. I would try the original code before you made any changes and see if it still happens to you.
It seems to be working fine here for me in amy test web.
I am going to look into some more in the meantime.cwilliams38341.7166782407,
Ok i am having an issue with my other comp. I have spent ANOTHER 3 hours researching this one.... it WONT START THE IIS SERVICE!!!
I get this error:
The service did not respond to the start or control request in a timely fashion
I decided to use one of my client's hosts; which happens to be Network Solutions.
I uploaded the whole thing there and they advised me they cannot do the explicit permissions on that _database folder. This is what they said: I would also would like to point out that ASP.NET applications and permissions do not extend to any other folder, other than the root, (/htdocs/), and the bin, (/htdocs/bin/) folders. Sub-directories and folder after bin and htdocs will not have ASP.NET permission (read or write).
If you could move or reconfigure your application to save all your code behind, include and dll files onto the root or bin folder, your application could work or possibly run as you would expect. Please have this done and retest your application. If and when you get a different problem or another error after doing so, please let us know, and we shall be happy to help you troubleshoot any problems that you may have.
There is a 'create database option' where i can create a database..create a dsnname, user name, password and have to specify the database file name. Once i do this i need to place the database file (aspprotectnet2002.mdb) in the /db folder within the root. I also tried this and made the appropriate change in the web.config but it STILL DOES NOT WORK. I AM PULLING MY HAIROUT WHY WONT ANYTHING WORK.
ALL THE FILES ON ON THE ROOT OF THE WEB HOST. I PULLED THE FILES OUT OF THE _DATABASE FOLDER AND DUMPED THEM ON THE ROOT. I CHANGED THAT ON THE WEB.CONFIG BUT ITS STILL LOOKING FOR SOME .XML FILE IN THAT _DATABASE FOLDER.
I'VE BEEN TRYING EVERYTHING AND IT SEEMS THAT I CANT USE THIS SOFTWARE FOR THE LIFE OF ME,
If logfiles do not get created it is most likely one of 3 things
- invalid physical path specified
- filesystem object is disabled on the server
that path doesn't look correct to me for a live professionally set up server but only you or your server admins can know that for sure
you will not get any errors when things arent perfect.. just no physical logs, Bingo! that did it. Somehow the data must have gotten corrupted.
RecentActiveUsers and RecentPageRequrests are not related to the stored logfile feature.. Recent Activity is a different thing
Hopefully that will do for me. Seems like everything is humming along and looks great!
I just took a look and that is definetly what happened.
It has nothing to do with the registration process as far as I can see.
Just running this page triggers it and I know it does not do that the way it comes.
Please back up what you changed and put the user area back the way it came..cwilliams38456.0957060185,
If error still happens then I can help you.. It it works fine with the default files from the zip archive then you messed something up in the code.
You have to be really careful when working with ASP code.
Also: just in case you did this. " you should not be password protecting any files in the users area that are already there " the users area does it's own thing and there is no reason to be doing anything like that to the files that are already there. You can do whatever you like to files you add on your own.
If you are developing using Windows XP Pro and running the NTFS file system setting proper permissions on a folder in your website requires that you 1st disable simple file sharing.
To do so open up "my computer". At the top open up "tools/folder options"
Then the "view" tab.
Then at the bottom uncheck "use simple file sharing"
After that that is done... using "my computer" browse to the folder in your web that you need to set permissions on.cwilliams38203.582337963, Well you can put a link on all your pages that links to the login page?
modify the code in the login page so the return page is members.aspx or
whatever you need and thats it?
Right click on that folder and then choose the "security" tab.
(If simple file sharing is on that tab wont be there)
Give the "Internet Guest Account" Modify Permissions
This will check all the boxes under modify as well.
You can also give permissions to the everyone account and accomplish the same thing.
If you are using ASP.NET you need to give permissions to an account called ASPNET. It wont show up in the user list. You'll need to click "add" and then type in "ASPNET"
I dont see your point? probably because I understand how the program works and your not 100% up to speed on how it works.
- I am using the original files that came with the software.
- The software ads items to the database flawlessly.
- ASPImage works great.
- When I try to remove an ad or an image it says it's been removed.
- The ad does not show up on the site anymore.
- BUT, when looking at the sql database the ad is still listed there.
Why is the software not deleting the columns from the database and the images from folder?
Note: My other tables for other projects, in the database, allow me to delete them. ,
yes, How can I have fixed size height and width image without distortion. Is there a component that I can use or how can I change the existing code.
yes, unless its ratio matches
how could it not be ?
Please keep questions like this in the forums... thx.
there is no need for this to be a private message
-- Previous Private Message --
Sent by : eeye
Sent : April/29/2005 at 2:19pm
If I choose fixed width and height is the thumbnail image going to be distorted?
-- Previous Private Message --
Sent by : cwilliams
Sent : April/29/2005 at 1:17pm
that is not possible unless you rewrite the code.
You onlyahve the two options we give in the config file for thumbnails
fixed width and height all the time
fixed width / dynamic height
-- Previous Private Message --
Sent by : eeye
Sent : April/29/2005 at 1:07pm
One more questions for you. is there a way to make sure that all the thumbnails are the same size without distorting the images (in the thumbnails). Or if a picture's height is bigger than its width is there to create the thumbnail such that the height of the orginal becomes the width of the thumbnails and vice versa.
Basically I just want the thumbnail pictures to be in a perfect row with all the picture heights the same and all the pic width the same.
humm, I dont know then..
If you want PM me your site info and I will go in and troubleshoot., no the "expected path" is something that gets generated for you if you have parent paths enabled. to help you fill things in correctly...
Frontpage or frontpage access, either way
and also the site URL
basically if parent paths are enabled it shows you what the path should be for each path field on the settings page... if parent paths are disabled there will be nothing to the right of expected path for technical reasons (lack of being able to do a "../../" to figure out the paths more or less)
in that case there is a file called "expected_paths" in the data folder that you can run to tell you the expected path info
for an admin..,
you view albums for a user.. make a new album... then click manage pictures
for a regular user you log in.. go to user user area.. create an album..then click on manage your albums
ok, then I need more information.
Was the code changed ? Thats the big one. If it worked and now it doesn't something must have changed. Things just don't stop working on their own. I would try putting the original files back in there for everything but the config and dataconn files just to make sure and see and if it works with the original files. (back up your old ones 1st so you can copy them back of course),
Also, perhaps PM me the site info so I can go look as well.
I apologize if I've missed this, but I would love to see the ability to auto-e-mail the advertiser at some randomly set interval before the banner expires. Ideally, I would also be cc'd on this e-mail so I can stay in touch. If the advertiser wants to renew, I can receive payment and change the expiration date without their banner ever falling out of service.
Since e-mail is already built into the program, would it be difficult to add a routine that checks for expiring banners at some daily interval, and contacts the advertiser?
To get really fancy, the e-mail could include the ability for me to add a button for paypal, allowing the advertiser to easily click and send off another payment.
no.., not unless you come up with some clever way to handle it on your own
read 2nd to last post
The way ASPProtect ships it is designed to either be in http:// the whole time or https:// the whole time.... (there curently is no solution from me allowing going from one to the other),
I have connected to countless DB's using my own applications written in dreamweaver and have tested them on my own server and also my web facing one. BUT this seems to be different. no matter what I try I still get this error.
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x440 Thread 0x6b0 DBC 0x1f995bc Jet'.
On both a windows 2000 server and also a windows 2003 server. Also using both DSN and DSN less connection and oledb.
Any help would be greatly apprectiated.
Yeah, its working great witht he Access database. Now I just need to get it all set up. I like how the config file is set up with all the comments, it really helped allieviate the 40k thumbnails,
One quick question though, and I haven't looked through all the code yet... Is there a quick way to have pic_window.asp open full screen by default? I just want to minimize having to either scroll through, or maximize, the screen
I am just wondering if anyone else has had this problem. Even though the guestbook is empty, it takes just about 20 to 30 seconds for the guestbook/default.asp lto oad. Is this normal has anyone else has had this problem.
Yes, you are right.
We have now tested it using the DSN less connection with Access 2002 and it works fine. We have also tested it again with a DSN using 2002 and this also seems to work.
The comment about speed is a consideration although I have not noticed any differences. ( we only have a few database entries at this time).
Thanks for your help, Done!
I was able to put my experience was based on *40 months* of usage! I
think I bought a version way back in 2001, IIRC, so it's been a long,
happy trip with ASPProtect for me!
Has anyone used the aspmail function to send and recieve emails from within your forms? If so what string did you use in the aspmail_host field in the connections database.
thank you, as an update... it is now possible to use Website Payments Pro with classic ASP..
However, you basically need to own/run your own server because of certificate signing and special things that must be installed on it. The certificates you have to generate requires your paypal username and password so it's definetly not something hosts are going to do for people.
So... this still isn't plausible at this time...,
A general question - Can you have multiple instance of the gallery on the same server? , ok, now were getting somewhere
I didn't know you imported from another system,
chances are you are missing field information that an ASPProtect user requires.
Start off from scratch with a new aspprotect database... create a new user and look at the info that gets entered by default for every field in the database
make sure when you import a user that you mimic it all
dont import directly using access because the passwords will not get converted to encrypted versions of themselves correctly.. and the whole process will be usesless as no passwords will be correct
Use the import feature built into ASPProtect.. because it is smart enough to take the clear text passwords and encrypt them accordingly
if you want to know a correctly formatted import file needs to look like make one and check it out
do one user at a time and make sure you can log in to an example protected page till you get it right...
once you get that working do them all
Thats really the best advice I can give you. ,
option pack: yes (after the install I have this problems with groups and edit users )
host permissions: yes
Active Server Pages error 'ASP0113' Script time out/password_admin/groups.asp The maximum amount of the time for a script to execute was exceeded. ...
Timecard Entry: 3/25/2006 2:32:22 PM
on line and rad log, modem checks, stuffing envelopes and sealing, mandatory employee meeting, Lifetimedocks- appointmentr on friday- go over billing- get him setup
left mesage for heritage cheese-
clear up billing foir timberview
Clear up billing for Best Machine
Talk with Smat 101- hoisting site with us send out hosting agreement
Cerow agency- research search engines- sent email back
Mckinely house- call to let her know about web site - up on local links
Allied coops- putin work request, mils cottages- creat work order for- go over with tom
Watetrown Surgical group- question about visitor counter
Reed benoit- add statstracker to web site and location map, will be sending article for web site design.
Senatoir jim wright- spoke with kim- go over contact form-
, daily ticc meeting, After fixing the SoftMLS autoresponder problem I had to modify all the existing sites with the new code and fixes, web billing, email, phone calls, MS Tech re: FrontPage client issues, DS0 MUX, running cable, testing amphenol cables, Attempted to publish wwnytv.net/72k updates/fixes back to server. had same problem as with watertown school district. folders become corrupt and access denied. contacting Andy at Watertown office to see if we can figure out the problem. Contacting CB to let him know whats going on., tour for bspp, finish Business Fair, tear down equipment, To Clayton, read and sent emails, help Crispin with association tables for TIITC project. , Nice scrumpcious ham sandwich at Skeemers., On phone w/Chris B. - User admin for Riverroadpartners.com and questions about FXCaprara.Com upload manager., Installing frame circuit in co-location space at Borders, edavisproducts.com: site design. BILLABLE, Reading and responding to emails and voice mails, entered yesterday's inventory into the database, searched chamber sites for corporate partners in syracuse and burlington. conference call with snook and jg. call into meridian technologies. staff meeting on dsl., Herald Building Work, Electrical Eng., lunch with ben, tech stations loaded, started working on a Mac that was brought in to be fixed., got reports done, Rearranging furniture & getting settled in!, Our authenicator was down for
about 40 mins., Met with NIC, lunch,