Pues para empezar ...
necesitarás un Ceritificado SSL y que la web corra bajo HTTPS, de modo que los datos no se envien en formato de texto plano nunca.
Luego, deberías utilizar algún script que ofusque los datos de la tarjeta, y los almacenes asi "encryptados" por llamarlo asi en la base de datos.
La idea, sería que utilice algún tipo de password para encriptarlos, que lo necesites al momento de desencriptarlos, de forma que si alguien te "roba" la DB por decirlo asi, no tenga acceso a esos datos.
Digamos, la idea es que ese password podría almacenarse (o deberia) en NINGUN LADO si es posible, o si necesitas por alguna causa mostrar los datos online (para que? ... podrias guardar los ultimos 4 digitios en otro lado y mostrar solo **********1234 ) pues podrías almacenar ese password en un archivo .php que luego comprimas con ZEND o ionCUBE, de manera que no quede almacenado en forma de texto en el servidor, y una vez compilado, es practicamente "imposible" descompiarlos (Seria como pasar un ejecutable a C++) inclusive, el password en este archivo podría ser una función que lo devolviera, solo si le envias otro password ... jeje... digamos que seria dificil que alguien le pudiera entrar a ver los datos :)
En fin ... creo que con eso tienes una idea de lo que es algo seguro no ?