php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-08-2007, 19:05
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit Login und Sessions

Hi,
ich habe ein Problem mit einem Login Script:
hier erstmal die dateien (2 stück):
(benutze php 5)

login.php:
PHP-Code:
<?php session_start();
require(
'system/connect.forum.inc.php'); 

if(!isset(
$_POST['submit'])){?>
<form action="<?php $PHP_SELF ?>" method="post">
  <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" 
align="center">
    <tr>
      <td bgcolor="#e7e7e7" align="center" colspan="2">
      <b>Bitte erst anmelden</b>
      </td>
    </tr>
    <tr>
      <td width="170" bgcolor="#e7e7e7">Benutzername</td>
      <td width="230" bgcolor="#ffffff">
<input type="text" name="username" size="20" class="input"
<?php if($_POST['username'] != "" )
 {echo 
' value="'.$_POST['username'].'"';} ?>></td>
    </tr>
    <tr>
      <td width="170" bgcolor="#e7e7e7">Passwort</td>
      <td width="230" bgcolor="#ffffff">
<input type="password" name="password" 
size="20" class="input"></td>
    </tr>
    <tr>
        <td colspan="2" width="170" bgcolor="#e7e7e7" align="center">
<a href="forum/register.php">
Noch nicht registriert?</a></td>
        
    </tr>
    <tr>
      <td bgcolor="#e7e7e7" align="center" colspan="2">
      <input type="submit" name="submit" value="Login" class="button">
      </td>
    </tr>
  </table>
  </form>
  
<?php
} elseif(!$_POST['username'] || $_POST['username'] == "") {
    echo 
'<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br>
<a href="index.php?site=login">Zurück</a></p>'
;
  }elseif(!
$_POST['password'] || $_POST['password'] == ""
{
    echo 
'<form action="index.php?site=login" method="post">';
    echo 
'<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
    echo 
'<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo 
'<input type="submit" name="zurueck" value="Zurück">';
    echo 
'</p>';
    echo 
'</form>';
  }
  
  else{
      
$username1 $_POST['username'];
    
$username mysql_real_escape_string($username1);
    
$password1 $_POST['password'];
    
$password mysql_real_escape_string($password1);

    
    
$query mysql_query("SELECT * FROM bb1_users WHERE username = '".$username."' AND
 password = '" 
.$password"'")
 or die(
"Select ist fehlgeschlagen!");
    
$result mysql_fetch_array($query) or die('<p align="center">
Bitte überprüfe deine Eingaben nochmal!<br>Benutzername oder
 Passwort falsch!<br><a href="index.php?site=login">Zurück</a></p>'
);

      
$_SESSION['timeout'] = time()+3600;
      
$_SESSION['username'] = $result['username'];
      
$_SESSION['user_ID'] = $result['user_ID'];
      
session_register('username');
      echo 
'<p align="center">
Login erfolgreich!<br><br><a href="news_write.php?"' 
SID '>Weiter</a></p>';

  }
  
?>
und hier die datei auf die nach login verwiesen wird:
PHP-Code:
<?php 
session_start
();

if(!isset(
$_SESSION['username'])) {

    echo 
'Authentifizierung fehlgeschlagen.';
    die;
}

//GESCHÜTZTER INHALT
//Wenn noch nicht auf "send" geklickt wurde dann wird Formular zum Erstellen gezeigt
if(!isset($_POST['send'])){
?>

<fieldset>
<form action=index.php?site=news_write method="post">
<table cellpadding="0" cellspacing="5" border="0">
    <tr>
        <td>
            NEWSTITEL</td><td><input name="news_header" maxlength="120" size="50"/></td>
        <td><input type="hidden" name="action" value="insert" /></td>
        <td><input type="hidden" name="news_datetime" value="
<?php echo date("Y-m-d H:i:s"); ?>"
 size="19" maxlength="19" /></td>
    </tr>        
    <tr>
        
<td>NEWSTEXT</td><td><textarea cols="60" rows="14" name="news_main"></textarea></td>
    </tr>
    <tr>
        <td>RECHENAUFGABE</td><td><input name="rechnen" maxlength="10" size="10" /></td>
    </tr>
</table>
<input type="submit" name="send" value="Eintragen!" />
</form>
</fieldset>
<?php
}
else{
//News eintragen, mit Freischalten=false
include("system/connect.inc.php");

if(isset(
$_REQUEST['action'])) $action=$_REQUEST['action'];

if(
$action=="insert"){
//Übergabeparameter auslesen
    
$news_main=$_POST['news_main'];
    
$news_header=$_POST['news_header'];
    
$news_datetime=$_POST['news_datetime'];
    
$rechnen=$_POST['rechnen'];
    
    
//Freischalten auf false setzen
    
$freigeschaltet=0;
    
    
//Zeilenumbrüche im Haupttext in HTML-Zeilenumbrüche konvertieren
    
$news_main=nl2br($news_main);
    
$news_main=ereg_replace("\n"""$news_main);
    
    
//Hier fehlt noch die Überpfrüfung druch Mysql-Abfrage der Rechenaufgabe
    
if($news_main!=|| $news_header!=|| $rechnen==mysql_fetch_array('rechnen')){
$news_SQL_insert=sprintf("INSERT INTO news (news_header,news_datetime,news_main
,freigeschaltet) 
VALUES ('$news_header','$news_datetime','$news_main','$freigeschaltet')"
,mysql_real_escape_string($news_header),
mysql_real_escape_string($news_main));

    
$bool=mysql_query($news_SQL_insert);
    if(
$bool==1) echo "Vielen Dank für deinen Eintrag.
 Wir werden ihn schnellstmöglich überprüfen, und dann freischalten!
<br><a href='javascript:history.back(-1)'>zurück</a>"
;
    if(
$bool<>1) echo "Beim Eintragen der News trat leider ein Fehler auf. 
News konnten nicht eingetragen werden...
<br> alle Felder ausgefüllt?"
;
    }
    }
    

}



?>
Mein Problem:
es wird nach dem login immer Authentifizierung fehlgeschlagen. ausgegeben

hoffe ihr könnt mir helfen!

mfg

Geändert von Tarik (29-08-2007 um 19:37 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 29-08-2007, 19:07
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bemühe dich um das umbrechen des codes. steht in den posting regeln. dann schaue ich mir das mal an.
Mit Zitat antworten
  #3 (permalink)  
Alt 29-08-2007, 19:23
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, habs jetzt bearbeitet!
Mit Zitat antworten
  #4 (permalink)  
Alt 29-08-2007, 19:30
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
if (! isset($_SESSION['username'])) 
anstatt
PHP-Code:
if (! session_is_registered('username')) 
.

Siehe Hinweis im Manual.
__________________
ich glaube
Mit Zitat antworten
  #5 (permalink)  
Alt 29-08-2007, 19:39
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab das schonmal editiert, aber es kommt dennoch immer "Authentifizierung fehlgeschlagen"..
mfg
Mit Zitat antworten
  #6 (permalink)  
Alt 29-08-2007, 19:45
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

entsprechende session_register() - Aufrufe natürlich auch anpassen. Das ist unnötig, wenn du es vorher normal ins Session-Array geschrieben hast.
__________________
ich glaube
Mit Zitat antworten
  #7 (permalink)  
Alt 29-08-2007, 19:50
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab ich gemacht, aber leider will es immernoch nicht funktionieren..

ps: es wird übrigens auch keine session id über GET im link weitergegeben an news_write.php...

mfg
Mit Zitat antworten
  #8 (permalink)  
Alt 29-08-2007, 19:56
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Stell dein Error_reporting auf E_ALL und mach an verschiedenen Stellen Testausgaben (var_dump($_SESSION)). Das Weitergeben per GET ist i.d.R. nicht nötig.
__________________
ich glaube
Mit Zitat antworten
  #9 (permalink)  
Alt 29-08-2007, 20:07
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

error reporting habe ich auf E_All gestellt und apache neugestartet.
var_dump($_SESSION)); hab ich am ende von login.php und in der aller ersten if-schleife von news_write.php eingebaut:
login.php:
array(3) { ["timeout"]=> int(1188410116) ["username"]=> string(2) "Me" ["user_ID"]=> NULL }

finde ich ein bisschen komisch, weil wenn ich die datenbank im phpmyadmin aufrufe, steht unter user_ID "3" eingetragen.


news_write.php:
array(0) { }


mfg..
Mit Zitat antworten
  #10 (permalink)  
Alt 29-08-2007, 20:14
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber Cookies hast du eingeschaltet?
__________________
ich glaube
Mit Zitat antworten
  #11 (permalink)  
Alt 29-08-2007, 20:17
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hhm.. ich habe session.use_only_cookies = 1, was müsste denn beim rest hin?
ich hab jedenfalls folgendes:
; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =localhost

mfg
Mit Zitat antworten
  #12 (permalink)  
Alt 29-08-2007, 20:39
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Er meinte glaube ich eher, ob du die akzeptanz von Cookies in deinem Browser eingeschaltet hast (weil die SessionID sonst nicht abgelegt werden kann)
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #13 (permalink)  
Alt 29-08-2007, 20:40
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja im browser (firefox 2) sollten cookies eingeschaltet sein! :-/
Mit Zitat antworten
  #14 (permalink)  
Alt 29-08-2007, 20:41
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Sollten is natürlich ne tolle Aussage. Dann guck doch mal ob du ein cookie von der entsprechenden Domain vorliegen hast.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #15 (permalink)  
Alt 29-08-2007, 20:43
Tarik
 Newbie
Links : Onlinestatus : Tarik ist offline
Registriert seit: Aug 2007
Beiträge: 12
Tarik ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, phpmyadmin hat einige cookies hinterlegt, aber sonst nichts von localhost!

mfg
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:35 Uhr.