严格的说,合同主体如果是自然人应该签字,如果是公司法人应该盖章。合同是否有效具体应该看实际履行情况,即合同的签订主体是否履行了该合同。
正常来说,是要签字加盖章。问题是在中国大陆这边公章的效力胜过签字,所以基本上一份合同一旦加盖公章后就生效。除某些特别情况,比如公司合并合约,这种情况下则需要法人的签章。