zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Problem mit login.

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.07.2009, 14:14
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard Problem mit login.

Hallo zusammen,
ich habe auf unter dem Menü ein Login Feld. Ich wollte mit folgendem code bewirken, dass wenn man eingeloggt ist der Text: "sie sind eingeloggt" erscheint und wenn man nicht eingeloggt ist soll das einlogg feld erscheinen. Aber irgendwo ist der Wurm drinnen:
PHP-Code:
<div id="login">

<?php
if (!isset ($_SESSION["user_id"]))
{
  echo (
"Sie sind eingeloggt.");
<
input type="submit" value="Logout">
}


?>
<?php
session_start 
();
if ((
session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {
  (echo &
#8222;Du bist eingeloggt“)
} else {
 <
form action="../login/login.php" method="post">
  
Name:&nbsp <input type="text" name="name" size=15"><br>
  Kennwort: <input type="
password" name="pwd" size="15"><br>
  <input type="
submit" value="Login">
<form action="
../login/logout.php" method="post">

  
}
?>






</div>

Geändert von rs-web (13.02.2010 um 00:46 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.07.2009, 14:33
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Dir fehlen eindeutig die Grundlagen, diese kannst du z.B. hier nachlesen:
Quakenet/#php Tutorial - de - Grundlagen

Hier im Forum finden sich aber auch noch ein paar weitere Links dazu.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 22.07.2009, 15:28
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard

Ja ok ich habs jetzt wie folgt:
PHP-Code:
<div id="login">
<?php

if (isset($_SESSION['user_id'])){

echo 
"Du bist eingelloggt";
} else{
echo 
"Bitte einloggen";


}
?>






</div>

aber wie füge ich jetzt noch das formulafeld ein?!
LG rs-web
Mit Zitat antworten
  #4 (permalink)  
Alt 22.07.2009, 16:00
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

In dem Codebeispiel in deinem ersten Post, rufst du die Sessionvariablen ab, bevor die Session gestartet wurde. Afaik geht das nicht, wenn die Session nicht automatisch startet. Ein Formularfeld fügst du genauso wie anderen HTML-Code ein, entweder über Befehle wie echo() oder print() oder in dem du es als Text außerhalb der PHP-Tags schreibst. Wie inta schon sagte, mach dich mit den Grundlagen vertraut und dann schau dir folgendes Tutorial an, welches ein Sessionbasiertes Loginsystem anschaulich erklärt:
[PHP] Ein sessionbasiertes Loginsystem - Developer's Guide

Das mit den Grundlagen ist schon deshalb wichtig, damit du dir nicht unnötigerweise Sicherheitslücken in dein System schreibst.
__________________
github | http://dnaber.de
Mit Zitat antworten
  #5 (permalink)  
Alt 22.07.2009, 16:15
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard

Ich hab deinen Rat befolgt aber es via include gemacht:
PHP-Code:
<div id="login">
<?php

if (isset($_SESSION['user_id'])){

echo 
"Du bist eingelloggt";
} else{
include
"../login/feld.php"
?>
}





</div>
wenn ich anstatt include echo hab geht es..
LG rs-web
Mit Zitat antworten
  #6 (permalink)  
Alt 22.07.2009, 17:19
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Include und echo bzw. print sind zwei völlig verschiedene Sachen, also kann man das nicht irgendwie durch das jeweils andere ersetzen.
__________________
github | http://dnaber.de
Mit Zitat antworten
  #7 (permalink)  
Alt 22.07.2009, 19:15
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard

ja ok ich habe jetzt das turtorial ausprobiert und ein neues login gemacht!
aber jetzt ist folgendes:
PHP-Code:
WarningCannot modify header information headers already sent by (output started at /var/www/web38/html/login/config.inc.php:7in /var/www/web38/html/login/validateLogin.inc.php on line 47 
natürlcih hab ich erst gesucht und gegoogelt, und herraus gefunden, dass es an den leerzeichen liegt, aber an welchen?!

PHP-Code:
<?php

session_start
();

// Überprüfen, ob das Formular abgeschickt wurde und ob beide Angaben gemacht wurden.
if( isset($_POST['username'], $_POST['passwort'])
AND
strcmp(trim($_POST['username']),'') != 0
AND
strcmp(trim($_POST['username']),'') != ) {


// Einbinden der Konfigurationsdatei
include_once 'config.inc.php';

// Erstellen der Verbindung zur MySQL-Datenbank
if( !$connection mysql_connect$_config['host'], $_config['user'], $_config['password'] ) ) {
die( 
'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
}

if( !
mysql_select_db$_config['database'], $connection ) ) {
die ( 
'Die Datenbank ' $_config['database'] . ' kann nicht verwendet werden. <br />
MySQL-Error: <br />' 
mysql_error() );
}


// SQL-Anweisung an die Datenbank senden, um erstens herauszufinden, ob
// diese Kombination von Usernamen und Passwort überhaupt existiert und
// zweitens bei Existenz Userinformationen auszulesen
$sql "SELECT
_id,
_anzahlLogins
FROM
archiv_login
WHERE
_username = '" 
trim($_POST['username']) . "'
AND
_passwort = '" 
md5(trim($_POST['passwort'])) . "'";

$res mysql_query($sql) or die( 'Error[SELECT|User]: <br />
<pre>' 
$sql '</pre>
<br />
MySQL-Error: ' 
mysql_error() );

// Nur wenn genau ein Datensatz selektiert wurde wird der User eingeloggt.
// In allen anderen Fällen wird er zurück zum Loginformular geleitet.
if( mysql_num_rows($res) != ) {
header('Location:loginfehler.html');
exit();
}
else {
// Der Schlüssel 'loggedIn' erhält den Wert 'true'. So kann überprüft später werden,
// ob der User eingeloggt ist oder nicht.
$_SESSION['loggedIn'] = true;

// Die userspezifischen Daten werden ausgelesen und der Session hinzugefügt
$user mysql_fetch_object($res);
$_SESSION['anzahlLogins'] = $user->_anzahlLogins;
$_SESSION['id'] = $user->_id;

// Aktualisierung des Anzahl der Logins
$sql 'UPDATE
archiv_login
SET
_anzahlLogins = _anzahlLogins + 1
WHERE
_id = ' 
$user->_id;

mysql_query($sql) or die( 'Error[UPDATE|User]: <br />
<pre>' 
$sql '</pre>
<br />
MySQL-Error: ' 
mysql_error() );

// Der Login war erfolgreich und der User wird zur Startseite des
// passwortgeschützen Bereichs weitergeleitet
header('Location:geheim.php');
exit();
}

}
else {
header('Location:loginformular.html');
exit();
}

?>

Geändert von rs-web (22.07.2009 um 19:23 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 22.07.2009, 20:29
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard

An alle die auch das Problem habe:
geht ans ende des php scripts und drückt 2-3 Mal die enf Taste....
LG rs-web
Mit Zitat antworten
  #9 (permalink)  
Alt 22.07.2009, 21:08
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard

Ok ich habs so emacht wie du geasgt hast aber etz kommt wieder ne fehlermeldung:
PHP-Code:
<div id="login">
     <?php

    session_start
();

    if( !
$_SESSION['loggedIn'] ) { 
        echo 
"Du bist eigeloggt!";
    }
else{
post"<form action="../login/validateLogin.inc.php" method="post">

         <input type="
text" name="username"> 
         <input type="
password" name="passwort">

         <input type="
submit" name="login" value="Einloggen">

     </form>"
;
}
?> 






</div>
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 23.07.2009, 01:34
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.04.2005
Ort: Kuchen
Beiträge: 119
Dani@okraina befindet sich auf einem aufstrebenden Ast
Standard

session_start() muss aufgerufen werden, bevor irrgendeine ausgabe an den browser versendet wird. Steht aber auch in der Manual PHP: session_start - Manual unter Anmerkung
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Text neben Navigationsleiste andi01 CSS 6 08.06.2011 17:54
Font der Überschrift ändern (Problem) artist CSS 2 07.12.2007 11:01
Design zu CSS/HTML verarbeiten - Problem häufen sich. Grafikamateur CSS 2 06.08.2007 10:57
Problem mit WordPress und dem Bilder Upload Maxefix Serveradministration und serverseitige Scripte 0 19.12.2006 15:58
Problem bei Div's - zwei mal das gleiche und doch nicht ... Niriel CSS 10 09.06.2005 18:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:00 Uhr.