Forum

> > Off Topic > PHP session_start(); Frage
ForenübersichtOff Topic-ÜbersichtEinloggen, um zu antworten

Deutsch PHP session_start(); Frage

5 Antworten
Zum Anfang Vorherige 1 Nächste Zum Anfang

alt PHP session_start(); Frage

Twonky
User Off Offline

Zitieren
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?

alt Re: PHP session_start(); Frage

Twonky
User Off Offline

Zitieren
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 hat geschrieben
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

alt Re: PHP session_start(); Frage

DC
Admin Off Offline

Zitieren
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.

alt Re: PHP session_start(); Frage

Twonky
User Off Offline

Zitieren
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.
Zum Anfang Vorherige 1 Nächste Zum Anfang
Einloggen, um zu antwortenOff Topic-ÜbersichtForenübersicht