Actually, you should have started a new thread rather than adding questions to two existing ones. But I'll answer.
The short answer: Yes, but only in very limited circumstances.
The long answer follows.
HTTP is stateless. This means that unlike a desktop application where the application is in constant contact with the user, each and every time a user clicks to a page on a web site, it's as if the browser has communicated to the server for the first time. Netscape invented HTTP cookies to work around this limitation/feature of the protocol.
Keep in mind, too, that since HTTP is stateless, the current session token must be sent to the server each and every time the browser communicates with the server. Otherwise the server has no way to tell my session variables from those of another user.
It's important to know also that there are exactly three ways for data to be transported from a web browser to a web server: HTTP headers (commonly cookies), URL variables (GET-method forms), and data streams (POST-method forms).
In its default configuration, PHP uses cookies to transport the session token back and forth between server and browser. It's quick, easy, and largely transparent to the user.
But if you don't want to or can't use cookies, you can set the php.ini directive "session.use_tran_sid" to "on". PHP can automagically start adding data to links, forms, and other tags (defined in the runtime configuration directive "url_rewriter.tags"

to transport the session token.
When not using cookies, if a PHP script outputs the HTML describing a POST-method form, PHP can automatically add an input of type "hidden" which contains the session ID. This allows sessions without cookies and without URL values.
But suppose you're not using cookies and you are using GET-method form. Then the only way to communicate the session token is on the URL. Even if you add a field to the form, you'll use the URL to transport the values.
Or suppose you're not using cookies and the user clicks on a <A> tag to go to another page in your site. Again, the only way to transport the value is on the URL.
So, if you use nothing but POST-method forms for navigation around your site, then you can use session variables without cookies and without URL values.
As to your second comment. Where are you going to write these files?
On the server? That's what PHP does anyway. But you're still going to need some way to differentiate my session variables from another user's. This means you still have to pass a session token back and forth between the server and the client. Which is what PHP does anyway, either through cookies or tag-rewriting.
On the client? How? And how are you going to insure that the browser transmits this data to the server every time it communicates with your server?
Want the best answers? Ask the best questions: TANSTAAFL!!