How do I use AES-256-CTR correctly? Is there any specific method to use AES-256-CTR correctly? I heard a Playstation 3 security vulnerability was exploited due to a CTR error. I would like to avoid this. 

How Do I Use AES-256-CTR Correctly?

Currently I am using PHP with OpenSSL. I have a key specified as well as the contents of the unencrypted data but I feel there is something else I should add. If it makes a difference, the key and the data will be different each time.
Use the PHP libsodium extension or the PHP encryption library.  Both are high-quality libraries that provide well-documented functions that allow you to do what you need.  They also includes automatic integrity check (this is crucial!), and their operations are protected against timing attacks.

AES256-CTR provides only unauthenticated encryption, which is almost never what you want.  You need authenticated encryption.

The libsodium extension has the advantage of being faster in most cases, but it depends on an extension module written in C, so it might not be available everywhere.  php-encryption is slower, but it only uses PHP’s built-in OpenSSL binding, so it runs everywhere.

Note that nonces must never be loaded from disk and then used for encryption.  It’s way too easy to have a collision that way.  Instead, you should generate a fresh encryption key from a master key each time your program starts (using a KDF and some secure random bytes.)