clairement ta requet SQL va être
select * from users where nom like 'truc' and password like '' or '1'='1' LIMIT 1
ce qui sera toujours vrai car le or à la fin ben il est toujours vrai (si sis la chaine 1 c'est égale à la chaine 1, ça aussi avec bob ou marcel

).
Après quel est le problème ?
on met le nom de n'importe qui est on se connecte avec son compte sans aucune soucis

(et pour faire vraiment ce que l'on veux on regarde aqui appartient et zou ton site ne t'appartient plus

).
la fonction indiqué par mazarini (mysql_real_escape_string) permet "d'échapper" les caractères spéciaux de mysql et donc d'éviter ce type de soucis.
la requete deviendrait
select * from users where nom like 'truc' and password like '\' or \'1\'=\'1' LIMIT 1
et donc myqsl va chercher un mot de passe identique à ' or '1'='1, qu'il ne devrait pas trouver
autre chose, pourquoi utilise like ? il est utile en cas de recherche "partielle" pas dans ce cas l'équalité et la chose à utiliser
select * from users where nom='truc' and password = 'mdp' LIMIT 1
deplus j'ajouterais que la limite n'est pas utile, si tu a plus d'une réopnse c'est que tu a merdé la vérification à l'inscription

(ça ne doit pas arriver si c'est le merdier).
dernière chose, petite remarque sur la fonction session_register
Avertissement
Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.
je t'invite donc a lire
ce tuto relatant de la chose
edit : bordel je suis trop long a taper :/
@+