php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.08.2008, 16:31   #1 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 40
Change befindet sich auf einem aufstrebenden Ast
Standard Session Problem

Hallo,
hab in mein ticketsystem ein session-system eingebaut!
Da ich mich damit aber nicht so gut auskenne, habe ich eines aus einem anderne Script das ich gefunden habe genommen!

Also, mein loginscript sieht folgendermaßen aus:

PHP-Code:
<?php
include"config.php"// config.php wird eingefügt
$PW1 $passwort1;
$PW2 $passwort2;
$PW3 $passwort3;
$PW4 $passwort4;
$PW5 $passwort5;


if(
$_POST['Login'] && $_POST['passwort'] == $PW1 OR $PW2 OR $PW3 OR $PW4 OR $PW5// Login ist der Submitbutton vom Formular und passwort das Feld vom Formular
{
session_start();
$_SESSION['CREATED'] = time();
$_SESSION['passwort'] = $PW1 OR $PW2 OR $PW3 OR $PW4 OR $PW5// Hier geben wir der Sessionen den Zugangsschlüssel.
}
?>

<?php
if($_SESSION['passwort'] == $PW1 OR $PW2 OR $PW3 OR $PW4 OR $PW5// Hier prüft es die obig-registrierte Session.
{
echo
"Sie sind erfolgreich eingeloggt!Sie werden zur Administration weitergeleitet.<script>top.location.href='ticketsystemadmin.php'</script><br/>";
// Nun eine Rückgabe, für die die JS deaktiviert haben:
echo'Falls Sie nicht automatisch weitergeleitet werden, klicken Sie <a href="admin.php">hier</a>';
}
else
{
// Und hier die Meldung, wenn es nicht gültig ist
echo '<CENTER><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>Sie sind nicht befugt, diese Seite anzusehen! <br/>Möglicherweise ist das eingegeben Passwort falsch.<br /><br />';
echo 
'Bitte loggen Sie sich <a href="admin.html">hier</a> erneut ein.';
}
?>
nun sollte ich in jedem zu schützenden script folgenden code einfügen:
PHP-Code:
 <?php
session_start
();
if( !isset(
$_SESSION['CREATED']) || time()-$_SESSION['CREATED'] > 1440 ) {
    
session_regenerate_id(true);
    
$_SESSION['CREATED'] = time();
}
  
?>
Die anderen scripts funktionieren zwar einwandfrei, jedoch steht jetzt jedesmal oben drüber:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\web-sql-server\htdocs\ticket\ticketsystemadmin.php:1) in D:\web-sql-server\htdocs\ticket\ticketsystemadmin.php on line 2

Auf line 2 ist: session_start();
Wo liegt nun der Fehler?
Vorher hat es auch geklappt...warum jetzt aufeinmal nicht mehr??

Danke schonmal im vorraus, Change
Change ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.08.2008, 16:41   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

erstmal
Zitat:
$_POST['passwort'] == $PW1 OR $PW2 OR $PW3 OR $PW4 OR $PW5
Das funktioniert nicht so, wie Du Dir das vorstellst.
Du kannst in PHP so nicht "Wenn $x gleich a oder b oder c ist...." ausdrücken.
PHP-Code:
$_POST['passwort'] == $PW1
or $_POST['passwort'] == $PW2
or $_POST['passwort'] == $PW3
... 
Oder die Passwörter als Feld speichern und in_array verwenden.

Und zur Warnmeldung: Du hast vor dem ersten <?php ein Leerzeichen. Dieses Leerzeichen wird an den Browser geschickt -> keine weiteren http header mehr möglich.
David ist offline  
Alt 18.08.2008, 17:09   #3 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 40
Change befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank,
Klappt super!

Zu den Passwörtern:
Ich habe eine config.php-datei, in der steht:

PHP-Code:
 <?php
$passwort1 
"elefant";  // Passwort für User1
$passwort2 "giraffe";  // Passwort für User2
$passwort3 "hund";  // Passwort für User3
$passwort4 "katze";  // Passwort für User4
$passwort5 "schwein";  // Passwort für User5
?>
Klappt super! ICh habe schon den tipp mit einem array bekommen, jedoch möchte ich die PAsswörter in der config.php-datei anordnen und nicht in den scripts selber!

Komme damit gut zurecht, vilen dank nochmal,
Change
Change ist offline  
Alt 18.08.2008, 17:14   #4 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Change Beitrag anzeigen
Komme damit gut zurecht
Genau so, wie es oben steht, funktioniert es jedenfalls nicht sinnvoll.
David ist offline  
Alt 18.08.2008, 17:21   #5 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 40
Change befindet sich auf einem aufstrebenden Ast
Standard

Ich habe bis jetzt keine probleme!
Was für probleme könnte ich denn bekommen?

Mein Problem ist halt, das ich ich die Passwörter in der Config.php
definieren möchte und dann nur noch abfragen muss in den zu schützenden scripts!

Weiß nur nicht wie ich das machen soll!

Und so funktionierts bisher bei mir!!!!
Change
Change ist offline  
Alt 18.08.2008, 17:24   #6 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Change Beitrag anzeigen
$_POST['passwort'] == $PW1 OR $PW2 OR $PW3 OR $PW4 OR $PW5
Das mit Deinen Werten immer wahr.
David ist offline  
Alt 18.08.2008, 17:25   #7 (permalink)
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.729
PHP-Kenntnisse:
Fortgeschritten
agrajag befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Change Beitrag anzeigen
Ich habe bis jetzt keine probleme!
Was für probleme könnte ich denn bekommen?
Hast du schonmal versucht dich mit einem ungültigen Passwort einzuloggen? Du wirst dich wundern


PHP funktioniert an dieser Stelle einfach nicht so, wie du dir das vorstellst. David hat dir die Alternative ja schon vorgestellt.
Und auch mit der in_array()-Methode könntest du deine Passwörter immernoch in der Config-Datei speichern...
__________________
"If you are worried about being bored without a job, first try cutting TV out of your life and see how you find ways to fill that space. A job is a TV that takes up even more time."
agrajag ist offline  
Alt 18.08.2008, 17:39   #8 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 40
Change befindet sich auf einem aufstrebenden Ast
Standard

OK, ihr habt recht, jedoch weiß ich nun nicht mehr wie ich es einbaue!

in meiner config.php steht bisher:
PHP-Code:
  <?php
$passwort1 
"elefant";  // Passwort für User1
$passwort2 "giraffe";  // Passwort für User2
$passwort3 "hund";  // Passwort für User3
$passwort4 "katze";  // Passwort für User4
$passwort5 "schwein";  // Passwort für User5
?>
und in den zu schützenden scripts:
PHP-Code:
<?php
include"config.php"// config.php wird eingefügt
$PW1 $passwort1;
$PW2 $passwort2;
$PW3 $passwort3;
$PW4 $passwort4;
$PW5 $passwort5;
if(
$_SESSION['passwort'] == $PW1 OR $PW2 OR $PW3 OR $PW4 OR $PW5)
{
?>
Wenn ich jetzt den array einbaue:
PHP-Code:
$passwords = array(
  
'Password1',
  
'Password2',
  
'Password3',
  
// usw.
); 
Das in die onfig.php

Und das in die scripts?:
PHP-Code:
if (false === empty ($_POST['password']) && 
    
in_array ($_POST['password'] , $passwords)) 
  {
  
// Zugang erlauben
  
}
else
  {
  echo 
'Kein Zugang';
  } 
???

Wo überprüfe ich dann:
PHP-Code:
if($_SESSION['passwort'
möchte ja das die session geschütz ist!
Change ist offline  
Alt 18.08.2008, 17:56   #9 (permalink)
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Du bist dir aber schon im klaren, dass du keinerlei Beziehung zwischen Benutzernamen und Passwort hast. D.h. es kann sich jeder mit einem dieser Passwörter einloggen.
__________________
Gruss
L
lazydog ist offline  
Alt 18.08.2008, 18:14   #10 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 25.134
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Können wir hier aufhören? @Change: Ich frage mich, warum Du nicht die Hinweise im anderen Thread umgesetzt hast.

Zu
Zitat:
Cannot send session cache limiter
findest Du Dutzende Einträge über die Boardsuche und wer weiß wie viele über Google.

[MOD: Thread geschlossen]
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Problem mit Session Charly Shop Sui PHP Tipps 2006 13 25.08.2006 17:08
Und noch ein Session Problem... Weyoun PHP Tipps 2006 9 27.02.2006 22:17
Problem mit Firefox und Session PHP Tipps 2005-2 5 25.08.2005 01:14
problem mit session LA-Finest PHP Tipps 2005-2 13 18.08.2005 15:54
Session wieder aufnehmen; Problem mit GET Jacks Rache PHP-Fortgeschrittene 9 12.08.2005 14:32
[Erledigt] Problem mit Session PHP Tipps 2005-2 1 06.08.2005 19:07
Problem mit Session PHP Tipps 2005-2 13 10.07.2005 18:20
seltsames php und session problem netti PHP-Fortgeschrittene 16 01.06.2005 17:01
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
Session Problem beim Login PHP Tipps 2004-2 6 15.12.2004 09:37
PHP Session Problem, dringend! PHP-Fortgeschrittene 17 21.10.2004 21:15
Session wird falsch wieder aufgenommen - Problem mit Session PHP Tipps 2004 2 16.10.2004 14:30
session problem PHP Tipps 2004 2 22.07.2004 08:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php \gleich a oder b\

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum