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 19-06-2007, 10:11
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Cookie Problem?

Hallo,
ich habe gerade erst mit PHP angefangen deshalb bitte nicht verwundern wenn ich die eine oder andere vermeintlich dumme Frage stelle.

Zu dem was gegeben ist:
PHP Version 5.2.1
phpMyAdmin 2.9.2
MySQL 5.0
Apache 2.2

Ich habe ein Script geschrieben mit dem man Blogeinträge verfassen kann. Diese werden auf einer Seite angezeigt. Bei dem Script war noch ein Usermanagment, Kategorieren verwalten und Bilder hochladen dabei. Das hat auch alles wunderbar geklappt und ich habe ihn schon online.

Nun habe ich mich daran gemacht, eine setup.php zu erstellen, die in der angegeben Datenbank die Tabellen erstellt und in der Usertabelle noch einen User anlegt (den, den man im Formular der setup.php eingetragen hat).

Das hat auch alles wunderbar geklappt (die Tabellen und der User wurde erstellt) aber man kann sie nicht einloggen, bzw man kann es schon aber... das ist eine komische Geschichte.

Der Login-Vorgang ist erfolgreich, es werden auch cookies mit dem richtigen Inhalt (username + md5pw) gesetzt, aber der login ist doch irgendwie untrue. Denn statt der Willkommensnachricht im Adminbereich kommen nochmal die 2 Loginfelder für Username + Passwort. Ich bin echt verzweifelt, keine Ahnung wieso das jetzt auf einmal so ist, bisher hat es auch funktioniert und ich habe an den Cookies nichts verändert.

Vielleicht könnt ihr mir ja weiterhelfen.

Hier ein paar Codeschnipsel:

setup.php
PHP-Code:
<?php
require_once('data/blog_DB.php'); // da steht die db + die zugangsdaten für die db drin

if ($_POST['setup'])    {

// jetzt kommen die ganzen mysqlbefehle, create etc. pp.

    
setcookie("username"$_POST['username']);
    
setcookie("password"md5($_POST['password']));
    
$login=true;
// hab ich frisch eingebaut als das Problem aufgetaucht ist
?>
config.php
PHP-Code:
<?php
ob_start
();
require_once(
'blog_DB.php');
$login=false;
$user=array();
$query_mysqldb "SELECT * FROM blog_users INNER JOIN 
         blog_rechte on blog_users.grpid = blog_rechte.id
         WHERE blog_users.name='"
.$_COOKIE['username']."' AND
         blog_users.password='"
.$_COOKIE['password']."' ";
$result mysql_query($query_mysqldb$verbindung) or die(mysql_error());
while (
$row mysql_fetch_assoc($result)) {  
$user $row;
$login=true;
?>
login.php:
PHP-Code:
<?php
require_once('../data/config.php');
require_once(
'../data/blog_DB.php');
$login=false;
$query_mysqldb "SELECT * FROM blog_users WHERE name='".$_POST['username']."' AND
                        password='"
.md5($_POST['password'])."' ";

$result mysql_query($query_mysqldb$verbindung);
while (
$row mysql_fetch_assoc($result)) {  
setcookie("username"$_POST['username']);
setcookie("password"md5($_POST['password']));
$login=true;
}
?>

Geändert von dc111 (19-06-2007 um 12:46 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 19-06-2007, 11:31
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Bitte ändere mal die Codeblöcke
Code:
    <?php
    require_once('data/blog_DB.php'); 
#(...Viel Text)
    // hab ich frisch eingebaut als das Problem aufgetaucht ist
    } ?>
in
PHP-Code:
    <?php
    
require_once('data/blog_DB.php'); 
#(...Viel Text)
    // hab ich frisch eingebaut als das Problem aufgetaucht ist
    
?>
um.

Und dann solltest du dir gedanken darüber machen was nachdem der Login True geworden ist passieren soll.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #3 (permalink)  
Alt 19-06-2007, 12:49
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es soll nur was passieren wenn der Login nicht true ist, dann soll nämlich der Zugang gesperrt sein.

Hab in allen Adminbereich-Seiten am Anfang ein
PHP-Code:
if($login!==true){
                    die(
"kein Zugriff");} 
drin.
Mit Zitat antworten
  #4 (permalink)  
Alt 19-06-2007, 13:08
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

ähm ok. versteh das zwar gerade nicht ganz aber egal.

vieleicht solltest du nach erfolgreichem Einloggen auch weiterleiten.

PHP-Code:
header("Location: deine_url"); 
PHP-Code:
if($login!==true){ 
dürfte auf der adminseite nicht mehr existent sein da sie nur in der login.php existent ist. und ich nirgends sehen kann wo du diese Variable mit an das cookie übergibst. also solltest du lieber auf das Cookie prüfen. und vieleicht mit $_SESSION arbeiten.

Aber aus dem wenigen kann man nur schwer erkennen was die skripte nun im ganzen machen.

Wie gesagt der bezug zur weiterleitung fehlt völlig. Die prüfung mag schon richtig sein aber. wenn auf der admin seite nur auf $login!== true geprüft wird und nicht auf die existens des Cookies und des richtigen inhaltes. Dürfte sich der Fehler auf der Admin seite erklären lassen.

Ich kann aber mit meiner vermutung auch total falsch liegen. Da ich nicht nachvollziehen kann was du da eigentlich GENAU machen willst.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #5 (permalink)  
Alt 19-06-2007, 13:16
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe eine HTML-Weiterleitung im head:

Code:
	<meta http-equiv="refresh" content="1; URL=index.php">
Was mich wirklich verwirrt ist, dass es bis vor kurzem funktioniert hat und jetzt nicht mehr, obwohl ich an dem Code für die Cookies nichts verändert habe.

Naja ich möchte einfach das man, wenn man Username + Passwort richtig eingegeben hat, von der Seite als eingeloggt erkannt wird und im Adminbereich arbeiten kann.
Mit Zitat antworten
  #6 (permalink)  
Alt 19-06-2007, 13:22
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Und wie prüfst du in der Index.php die Exitens des Cookies und die Datenrichtigkeit darin?


Wie gesagt ... bei Sowas bietet sich $_SESSION an . wenn man unbedingt zwischen eingelogt und nicht eingelogt unterscheiden will.

Such hier im Forum mal nach Login formular . findest jede menge Beiträge dazu. mit Cookies ohne Cookies ... mit Cookie und $_SESSION
und so weiter und so fort.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #7 (permalink)  
Alt 19-06-2007, 13:30
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

In der index habe ich nur
PHP-Code:
<?php
require_once('config.php');
?>
und eben:

PHP-Code:
<?php if($login===true
// willkommen }
else
// login formular }
?>
Ich habe gerade die Sachen die ich gestern gemacht habe (bevor es nicht mehr ging) hochgeladen und auf dem Webspace geht alles.
Mich wurmt es eben sehr dass ich nicht weiss wieso es bisher funktioniert hat und jetzt nicht mehr.
Mit Zitat antworten
  #8 (permalink)  
Alt 19-06-2007, 13:32
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

Schalte mal das Error Reporting auf E_ALL.
__________________
ich glaube
Mit Zitat antworten
  #9 (permalink)  
Alt 19-06-2007, 13:48
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ministry
Schalte mal das Error Reporting auf E_ALL.
Da kam auch schon einiges:

Zitat:
Notice: Undefined index: username in D:\XAMPP\xampp\htdocs\blog\data\config.php on line 8

Notice: Undefined index: password in D:\XAMPP\xampp\htdocs\blog\data\config.php on line 9

Notice: Undefined index: grpid in D:\XAMPP\xampp\htdocs\blog\data\config.php on line 16

Notice: Undefined index: name in D:\XAMPP\xampp\htdocs\blog\data\config.php on line 17
Die entsprechenden Zeilen:

PHP-Code:
$query_mysqldb "SELECT * FROM blog_users INNER JOIN 
         blog_rechte on blog_users.grpid = blog_rechte.id
         WHERE blog_users.name='"
.$_COOKIE['username']."' AND 
         blog_users.password='"
.$_COOKIE['password']."' "// Zeile #9 
PHP-Code:
$grpid $user['grpid']; // Zeile 16
$curname $user['name']; // Zeile 17 
Die besagten Tabellen & Spalten existieren in der DB.
Mit Zitat antworten
  #10 (permalink)  
Alt 19-06-2007, 13:53
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

gib mal per
PHP-Code:
var_dump($_COOKIE); 
aus was in ihm nach dem einloggen steht.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #11 (permalink)  
Alt 19-06-2007, 14:02
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
array(2) { ["username"]=> string(6) "rainer" ["password"]=> string(32) "b27e07073cc5f1f933bbb0da07d97a8b" }
Mit Zitat antworten
  #12 (permalink)  
Alt 19-06-2007, 14:15
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

hmm, Und und die Fehlermeldungen bleiben alle erhalten?

Selbst die, die sich auf das Cookie beziehen?

Währe dann nämlich etwas komisch.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #13 (permalink)  
Alt 19-06-2007, 14:21
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann kommen nur noch die Error in Zeile 16+17.
Mit Zitat antworten
  #14 (permalink)  
Alt 19-06-2007, 14:23
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Und wenn du dir jetzt noch mal den Inhalt von $user anschaust, siehst du was ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #15 (permalink)  
Alt 19-06-2007, 15:01
dc111
 Newbie
Links : Onlinestatus : dc111 ist offline
Registriert seit: Jun 2007
Beiträge: 26
dc111 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja, wenn ich mir nach dem Login Vorgang in der index.php $user ausgeben lasse meint er sie ist leer:

Zitat:
array(0) { }
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 15:21 Uhr.