Gracias a ti claudiovega he conseguido saber lo que era, una chorrada, el código estaba bien, era otra cosa. El caso es que en mi ordenador no me mostraba ningún error, pero lo he subido a internet y si me muestra el error. Solucionado, gracias a todos