Find all the functions $f:R\to R$ which satisfy the identity $f(x+y)+f(xy)=f(x)\cdot f(y)+1$ for all $x,y\in R$ 
Find all the functions $f:R\to R$ which satisfy the identity $$f(x+y)+f(xy)=f(x)\cdot f(y)+1$$ for all $x,y\in R$

My solution
Taking $x=y=0$, we get $f(0)=1$.
Taking $y=-x$, we get $$f(-x^2)=f(x)\cdot f(-x)$$ which is true for all $x\in R$. Let's name this equation as ($i$).
Taking $x=1$ in eqn($i$), we get $$f(-1)=f(1)\cdot f(-1)$$
This implies that $f(-1)=0$ or/and $f(1)=1$
Case 1: $f(1)=1$
Taking $y=1$ in original equation, we get $$f(x+1)+f(x)=f(x)+1$$ which is true for all $x\in R$. Therefore $$f(x+1)=1\Rightarrow \fbox{f(z)=1}$$ for all $z\in R$. We see that this equation satisfies the given relation.
Case 2: $f(-1)=0$
Taking $y=-1$ in the original equation, we get$$f(x-1)+f(-x)=1$$ for all $x\in R$
Taking $x=-1/y$, we get $$f(y-1/y)=f(y)\cdot f(-1/y)+1$$ for any $y\in R-\{0\}$
It seems that I have come to an dead end and I am not able to proceed beyond this. It would be better if someone helps proceeding in this method instead of any other way, if possible.
 A: Continuing your Case 2, note that setting $x=1/2$ and $y=-1$ gives $2f(-1/2)=1$ so $f(-1/2)=1/2$. Now let $c=f(1)-1$.  Setting $y=1$ in the functional equation gives $$f(x+1)=cf(x)+1.$$  Iterating this starting from $f(0)=1$ we see that $f(n)=c^n+c^{n-1}+\dots+c+1$ for all $n\in\mathbb{N}$.  Similarly, iterating starting from $f(-1/2)=1/2$ gives $f(n-1/2)=c^n/2+c^{n-1}+\dots+c+1$ for all $n\in\mathbb{N}$.  Now taking $x=2$ and $y=1/2$ we have $$f(5/2)+f(1)=f(2)f(1/2)+1.$$ Plugging in the expressions we have for all of these in terms of $c$ and simplifying, this reduces to just $c^2=c$ so $c$ is either $0$ or $1$.  If $c=0$ then we just get $f(x+1)=1$ and so $f$ is the constant function $1$ which is the solution you have already found, so we may assume $c=1$.
Thus we have $f(x+1)=f(x)+1$ and so $f(x+n)=f(x)+n$ for all $n\in\mathbb{Z}$, and in particular $f(n)=n+1$ for all $n\in\mathbb{Z}$.  It is now convenient to consider the function $$g(x)=f(x)-1$$ and observe that our functional equation for $f$ is equivalent to $$g(x+y)-g(x)-g(y)+g(xy)-g(x)g(y)=0.$$  In particular, for fixed $x$ and $y$, we have $g(x+y)=g(x)+g(y)$ iff $g(xy)=g(x)g(y)$.  We know that $g(x+n)=g(x)+n$ and also that $g(n)=n$ for any $n\in\mathbb{Z}$, and thus $g(x+n)=g(x)+g(n)$. So, we conclude that $g(nx)=ng(x)$ for any $n\in\mathbb{Z}$, from which it follows that $g(qx)=qg(x)$ for any $q\in\mathbb{Q}$.  Since $g(1)=1$ this gives $g(q)=q$ and thus $g(qx)=g(q)g(x)$ and thus also $g(q+x)=g(q)+g(x)$ for all $q\in\mathbb{Q}$.
To find $g(x)$ when $x$ is irrational we will now need to use some trickery involving squares (this is the only place where we are using something special about $\mathbb{R}$ that would not work over, say, a general field of characteristic $0$; see my comments on the question for more discussion).  Setting $y=x$ in the functional equation for $g$ (and recalling that $g(2x)=2g(x)$) we find that $g(x^2)=g(x)^2$.  For $q\in\mathbb{Q}$, we then get $$g(q+x^2)=g(q)+g(x^2)=q+g(x)^2\geq q$$ and $$g(q-x^2)=g(q)+g(-x^2)=q-g(x)^2\leq q.$$ That is, if $y\geq q$ (so it can be written in the form $q+x^2$) then $g(y)\geq q$ and if $y\leq q$ then $g(y)\leq q$.  Since a real number is uniquely determined by the rational numbers that are above and below it, this implies $g(y)=y$ for all $y\in\mathbb{R}$.
So, in terms of the original function $f$, this says $f(x)=x+1$ for all $x\in\mathbb{R}$, which is indeed another solution.

There are a couple techniques used in this argument which are valuable tools for many functional equations of this sort, beyond just the usual messing around with various substitutions to figure out more and more values of the function.  First, we noticed that it looked like we were going to have $f(x)=x+1$, so we considered the function $g(x)=f(x)-1$ which should be just $x$.  The idea behind this is that it is probably easier to prove a function is the identity function than that a function is $x\mapsto x+1$.  And indeed, rewriting the functional equation in terms of $g$ revealed a nicer structure that made it very easy to go back and forth between the additive and multiplicative properties of $g$, to bootstrap from integers up to rational numbers.  In general, making substitutions like this which reduce your solution function to something simpler can often turn the functional equation into something that is easier to work with.
Second, at the end we had control over $g(q)$ for rational $q$ but wanted to get control for all real values.  Moreover, our functional equation only involves outputs of our function, not the inputs, and so we will never be able to use it to directly algebraically express $g(x)$ in terms of $x$ for arbitrary $x\in\mathbb{R}$ (we can only express it in terms of other values of $g$).  In the absence of anything like a continuity assumption, this means we're probably going to need to somehow use the ordering of the real numbers, since we can determine a real number in terms of which rational numbers are on each side of it.  And given that our functional equation uses only algebraic operations, the only way we have to access the ordering is by using the fact that a real number is nonnegative iff it is a square.  So, this suggests we should investigate things like $g(x^2)$ or values of $g$ which we can write as squares to deduce they are nonnegative.
