Forum

> > Off Topic > PHP session_start(); Frage
Forums overviewOff Topic overviewLog in to reply

German PHP session_start(); Frage

5 replies
To the start Previous 1 Next To the start

old PHP session_start(); Frage

Twonky
User Off Offline

Quote
Guten Tag, Unreal Software Community.
Ich weiß ja, dass sich hier ein paar mit PHP und MySQL auskennen, daher frage ich einfach mal hier.
Also, ich habe jetzt mein Loginformular, wenn ich nun auf einloggen klicke werde ich entweder drauf hingewiesen, dass mein Passwort falsch ist oder ich werde eingeloggt.
Nun ist mein Problem, egal was ich mache, oben links (vor dem Header) steht jetzt immer session_start(); und das möchte ich natürlich nicht!
Wenn ich die Seite neu lade, steht das nicht mehr da, weiß da vielleicht jemand eine Antwort?

old Re: PHP session_start(); Frage

Twonky
User Off Offline

Quote
Hier ist der Code von login.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
	if($_POST) {
		require_once 'config.php';
		$username = $_POST['username'];
		$password = $_POST['password'];		
		$conn = mysql_connect($dbhost,$dbuser,$dbpass)
			or die ('Error connecting to mysql');
		mysql_select_db($dbname);
		$query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'",
			mysql_real_escape_string($username),
			mysql_real_escape_string(md5($password)));
		$result = mysql_query($query);
		list($count) = mysql_fetch_row($result);
		if($count == 1) {
			$_SESSION['authenticated'] = true;
			$_SESSION['username'] = $username;
			$query = sprintf("UPDATE users SET last_login = NOW() WHERE UPPER(username) = UPPER('%s') AND password = '%s'",
				mysql_real_escape_string($username),
				mysql_real_escape_string(md5($password)));
			mysql_query($query);
			$query = sprintf("SELECT is_admin FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'",
				mysql_real_escape_string($username),
				mysql_real_escape_string(md5($password)));
			$result = mysql_query($query);
			list($is_admin) = mysql_fetch_row($result);
			if($is_admin == 1) {
				header('Location:admin.php');			
			} else {
				header('Location:index.php');				
			}
		} else {	?>
<span style='color:red'>Error: The password OR the username is wrong, please check it!</span>
<?php	}
	}
?>

Ach ja, wenn ich mich nun mit meinen Daten RICHTIG einlogge kommt:
Fehlermeldung has written
Warning: Cannot modify header information - headers already sent by (output started at /users/cs2dcd/www/login.php:32) in /users/cs2dcd/www/login.php on line 60

old Re: PHP session_start(); Frage

DC
Admin Off Offline

Quote
header-, session- und cookie-befehle müssen ausgeführt werden bevor du irgendwelchen (HTML) code für die seite ausgibst!

in deinem fall gibt die login.php in zeile 60 etwas aus, bevor das session/header zeugt gemacht wird. das ist nicht erlaubt.

eine lösung: speichere die ausgaben in einem string und gebe sie später aus.

andere lösung: strukturiere den kram um.

old Re: PHP session_start(); Frage

Twonky
User Off Offline

Quote
Danke DC, es funktioniert jetzt
Soll ich den Thread zu allgemeine PHP Fragen umbenennen? Falls dann noch jemand Probleme hat, kann der ja hier reinschreiben.
To the start Previous 1 Next To the start
Log in to replyOff Topic overviewForums overview