Trying to get FPS ladder script to work

I've been trying this code out. Which so far is the ONLY one I've been able to get any headway with. But what happens is, is that if I press Jump repeatedly I will eventually get to the top of the ladder.

Secondly, I am now able to climp terrain sloaps that are very steep which I DO NOT WANT! How can this be fixed?

That 2nd Debug does NOT seem to get called for some reason when I exit the ladder?

function OnTriggerEnter (other : Collider)

    {
    Debug.Log("Was Triggered");
        if(other.gameObject.tag == "ladder")
        {
            transform.GetComponent(CharacterController).slopeLimit = 99; 
            transform.GetComponent("CharacterMotor").sliding.enabled = false;
        }
    }

    function OnTriggerExit (other : Collider)
    {
    Debug.Log("Was a ladder");
        if(other.gameObject.tag == "ladder")
        {
            print("leaving ladder");
            transform.GetComponent(CharacterController).slopeLimit = 45;
            transform.GetComponent("CharacterMotor").sliding.enabled = true;
        }
    }

In this answers http://answers.unity3d.com/questions/31275/fps-ladder-script you mentioned that it did not work for you but did not give any details. It looks like to me that it should work.

Is the object named 'ladder?'

Are you using a standard character control or motor?

Did you play around with the slop limit value?

Try adding in some debug lines to see where it is failing.

 function OnTriggerEnter (other : Collider)     {
Debug.log("Was Triggered");
         if(other.gameObject.name == "ladder")        {
Debug.log("Was a ladder");

For example. If it never gets to the second debug line, that will give you an indication that you went wrong somewhere setting up the trigger.