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 05-01-2012, 03:35
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Exclamation Login Problem

Servus,
ich bin noch relativ neu im Umgang mit PHP und habe ein Problem mit dem folgenden Skript.

Vorweg möchte ich sagen das ich in phpmyadmin eine Datenbank erstellt in die sich bereits über 2 andere Skripte meine Nutzer registrieren könnten.
Aufbau:
db Name: buchungsliste
db Tabelle: daten
# Spalte
1. ..........
2. .........
3. .........
4.............
5.benutzer
6..............
7...............
8................
9.................
10...............
11...........
12.Passwort

Jetzt wollte ich eig noch einen login dazu gestalten, damit sich halt direkt einloggen kann, wenn man schon registriert ist.

s.h. folgende Skripte

1. Skript: pw_eingabe scheint zu funktionieren...
PHP-Code:

<?php session_start();

/*
   * Benutzer- und Passworteingabe
   * BA - pw_eingabe.php
*/

?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
<title>Login</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h2>Login</h2>

<form action="pw_kontrolle.php" target="_self" method="post">
<table>
<?php
if ( isset( $_SESSION['pw_mitteilung'] ) ) {
    
// Es ist ein Passwort-Fehler aufgetreten
echo '
    <tr><td colspan="2" style="color:red">'
.$_SESSION['pw_mitteilung'].'</td></tr>';
    unset( 
$_SESSION['pw_mitteilung'] );
}
?>
<tr>
<td><strong>benutzer</strong></td>
<td><input name="benutzer" size="30" type="text"
</td>
</tr>
<tr>
<td><strong>Passwort</strong></td>
<td><input name="passwort" size="30" type="password" /></td>
</tr>
<tr><td colspan="2">&nbsp;</td></tr>
<tr>
<td colspan="2" align="right">
<input name="absenden" value="Absenden" type="submit" />
</td>
</tr>
</table>
</form>

</body>
</html>




2. Skript pw_kontrolle funktioniert nicht!!!!
Angezeigt wird diese zeile $result= mysql_query.....
könnte es vllt an der Bez. zu der darüberliegen Zeile liegen?
Um Hilfe wär ich sehr dankbar, bin schon am verzweifeln...

<?php session_start();
PHP-Code:

// Den Benutzer permanent speichern
$_SESSION['benutzer'] = $_POST['benutzer'];

include( 
'db_abfrage.inc.php' );


$sql 'SELECT * FROM daten WHERE benutzer=\''.$_SESSION['benutzer'].'\'';
$result mysql_query'buchungsliste'$sql );
#echo 'Zeile 15 - $result='.( $result === FALSE ? 'FALSE' : 'Ergebnis' );exit();

if ( mysql_num_rows$result ) == ) {
    
// Für die Bedingung SELECT * FROM daten WHERE benutzer='benutzer'
    // wurde kein Eintrag gefunden, d.h. Benutzer ist in der Datenbank nicht vorhanden

$_SESSION['pw_mitteilung'] = 'Der Benutzer <strong>'.$_SESSION['benutzer']
    .
'</strong> ist nicht bekannt.';
    
header'Location: pw_unbek_benutzer.php' );
    exit();
}

$nutzer mysql_fetch_array$result );
if ( 
$nutzer['passwort'] != md5$_POST['passwort'] ) ) {
    
// Das eingegebene Passwort stimmt nicht mit dem gespeicherten überein
$_SESSION['pw_mitteilung'] = 'Das Passwort zum Benutzer '.$_SESSION['benutzer']
    .
' ist falsch.';
    
header'Location: pw_eingabe.php' );
    exit();
}

$_SESSION['login_iO'] = TRUE;

// weiter im normalen Ablauf
echo 'Alles i.O.<br />'
.'Nutzer = '.$_SESSION['benutzer'].'<br />'
.'Passwort = '.$_POST['passwort'].'<br />'
.'md5_PW = '.md5$_POST['passwort'] ).'<hr />';

?> 
Mit Zitat antworten
  #2 (permalink)  
Alt 05-01-2012, 09:50
ddel
 Registrierter Benutzer
Links : Onlinestatus : ddel ist offline
Registriert seit: Jan 2012
Beiträge: 9
ddel befindet sich auf einem aufstrebenden Ast
Standard

Hi Steinchen87

Da hat sich ganz ein kleiner Fehler eingeschlichen!
Und zwar in folgender Zeile:

PHP-Code:
$sql 'SELECT * FROM daten WHERE benutzer=\''.$_SESSION['benutzer'].'\''
Du hast ein Anführungszeichen zu viel drinn. Darum denkt der PHP Intepreter dass es sich bei der nächsten Zeile auch noch um einen String handelt und gibt diesen aus.

Du könntest die Sache auch so schreiben:

PHP-Code:
$sql "SELECT * FROM daten WHERE benutzer='".$_SESSION['benutzer']."'"
Ich gehe davon aus, dass der Benutzer bei dir ganz normal abgelegt ist und nicht mit Sonderzeichen davor und dahinter?


Gruss

Geändert von ddel (05-01-2012 um 09:53 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 05-01-2012, 09:56
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
PHP-Code:
// Den Benutzer permanent speichern 
$_SESSION['benutzer'] = $_POST['benutzer']; 
Das würde ich so nicht tun!!

1. So landet u.U. Schadcode in Session.
2. Die UserId zu speichern ist vollkommen ausreichend.
3. Erst die ID in Session speichern wenn die User Prüfung erfolgreich war
4. Beachte/vermeide SQL Injections
5. Das Passwort prüft man auch sofort im SQL
__________________
Wir werden alle sterben
Mit Zitat antworten
  #4 (permalink)  
Alt 05-01-2012, 12:31
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ddel Beitrag anzeigen
Hi Steinchen87

Da hat sich ganz ein kleiner Fehler eingeschlichen!
Und zwar in folgender Zeile:

PHP-Code:
$sql 'SELECT * FROM daten WHERE benutzer=\''.$_SESSION['benutzer'].'\''
Du hast ein Anführungszeichen zu viel drinn. Darum denkt der PHP Intepreter dass es sich bei der nächsten Zeile auch noch um einen String handelt und gibt diesen aus.

Du könntest die Sache auch so schreiben:

PHP-Code:
$sql "SELECT * FROM daten WHERE benutzer='".$_SESSION['benutzer']."'"
Ich gehe davon aus, dass der Benutzer bei dir ganz normal abgelegt ist und nicht mit Sonderzeichen davor und dahinter?


Gruss
Danke schon mal, der Benutzer soll keine Sonderzeichen enthalten das ist korrekt ja.

Kannst du mir die Zeile mal bitte so wieder geben das sie passt? Habe diese
eingefügt und das Anführungszeichen was meines erachtens zu viel war wegg gemacht, aber es geht immer noch nicht
Mit Zitat antworten
  #5 (permalink)  
Alt 05-01-2012, 12:36
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Du wirst renovieren müssen!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #6 (permalink)  
Alt 05-01-2012, 12:43
ddel
 Registrierter Benutzer
Links : Onlinestatus : ddel ist offline
Registriert seit: Jan 2012
Beiträge: 9
ddel befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Steinchen87 Beitrag anzeigen
Kannst du mir die Zeile mal bitte so wieder geben das sie passt? Habe diese
eingefügt und das Anführungszeichen was meines erachtens zu viel war wegg gemacht, aber es geht immer noch nicht
Du kannst direkt die zweite Zeile verwenden, sollte so funktionieren!
Mit Zitat antworten
  #7 (permalink)  
Alt 05-01-2012, 12:47
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ddel Beitrag anzeigen
Du kannst direkt die zweite Zeile verwenden, sollte so funktionieren!
Leider nicht wenn ich dieses eingebe wird immer noch: Parse error: syntax error, unexpected bei - $result = = mysql_query
(wie auch schon vorher) angezeigt.
Mit Zitat antworten
  #8 (permalink)  
Alt 05-01-2012, 13:00
ddel
 Registrierter Benutzer
Links : Onlinestatus : ddel ist offline
Registriert seit: Jan 2012
Beiträge: 9
ddel befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$result mysql_query'buchungsliste'$sql ); 
Diese Zeile ist falsch. mysql_query erwartet einen String welcher den SQL Statement beinhaltet ("SELECT * FROM TABELLE).

Die Datenbank (buchungsliste) musst du nicht migeben. Wenn du mit verschiedenen Datenbanken arbeitest, kannst du mysql_query noch die entsprechende Verbindung mitgeben. Wenn das aber nicht der Fall ist, reicht nur das SQL.

Die Datenbank musst du beim Aufbau der Verbindung auswählen:

PHP-Code:
$db_sel mysql_select_db('buchungsliste'); 
Nachdem du das alles gemacht hast, würde deine Zeile so aussehen:

PHP-Code:
$sql "SELECT * FROM daten WHERE benutzer='".$_SESSION['benutzer']."'"
$result mysql_query($sql); 
Mit Zitat antworten
  #9 (permalink)  
Alt 05-01-2012, 13:03
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Steinchen87 Beitrag anzeigen
Leider nicht wenn ich dieses eingebe wird immer noch: Parse error: syntax error, unexpected bei - $result = = mysql_query
(wie auch schon vorher) angezeigt.

ach ja un wenn ich nicht über Debug gehe, sondern über den localhost und den Benutzer mit Passwort eingebe (der bereits regestriert ist) dann findet er den nicht.
Mit Zitat antworten
  #10 (permalink)  
Alt 05-01-2012, 13:09
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ddel Beitrag anzeigen
PHP-Code:
$result mysql_query'buchungsliste'$sql ); 
Diese Zeile ist falsch. mysql_query erwartet einen String welcher den SQL Statement beinhaltet ("SELECT * FROM TABELLE).

Die Datenbank (buchungsliste) musst du nicht migeben. Wenn du mit verschiedenen Datenbanken arbeitest, kannst du mysql_query noch die entsprechende Verbindung mitgeben. Wenn das aber nicht der Fall ist, reicht nur das SQL.

Die Datenbank musst du beim Aufbau der Verbindung auswählen:

PHP-Code:
$db_sel mysql_select_db('buchungsliste'); 
Nachdem du das alles gemacht hast, würde deine Zeile so aussehen:

PHP-Code:
$sql "SELECT * FROM daten WHERE benutzer='".$_SESSION['benutzer']."'"
$result mysql_query($sql); 

Okay ja das habe ich bereits bei der Verbindung schon gemacht. Wenn ich das jetzt so eingebe dann sagt er mir das das Passwort zum Benutzer falsch ist. Was aber nicht stimmt. Habe mehrer Datenbanken in phpmyadmin drinn, arbeite aber hier nur mit der Datenbank buchungsliste.
Mit Zitat antworten
  #11 (permalink)  
Alt 05-01-2012, 13:14
ddel
 Registrierter Benutzer
Links : Onlinestatus : ddel ist offline
Registriert seit: Jan 2012
Beiträge: 9
ddel befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Steinchen87 Beitrag anzeigen
Wenn ich das jetzt so eingebe dann sagt er mir das das Passwort zum Benutzer falsch ist. Was aber nicht stimmt.
Wenn "er" das sagt, dann hat er zu 100% Recht Überprüfe nochmals ob du die richtige Datenbank anziehst, der Benutzer korrekt eingegeben ist und das Passwort stimmt.

Wenn das alles zutrifft und der Fehler ist noch da: Lösche den Benutzer und lege einen neuen an und merke dir gut das Passwort

Je nach Hoster den du hast, wird dem Benutzernamen noch etwas hinzugefügt. Bsp: du legst den Benutzer Test an. Abgespeichert wird das aber als Test_xy. Das kannst du am besten überprüfen wenn du in der Übersicht de Benutzer nachschaut wie der Name genau ist. Du musst natürlich genau diesen Namen verwenden!
Mit Zitat antworten
  #12 (permalink)  
Alt 05-01-2012, 13:15
ezkimo
 Registrierter Benutzer
Links : Onlinestatus : ezkimo ist offline
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 279
ezkimo befindet sich auf einem aufstrebenden Ast
ezkimo eine Nachricht über ICQ schicken
Standard

Wie wäre es denn mal mit der kompletten Fehlermeldung?
Die Funktion mysql_query ist falsch angewendet. Einfach mal einen Blick in die PHP Dokumentation werfen: PHP: mysql_query - Manual

EDIT: Was passiert wenn Du das SQL Statement über phpMyAdmin direkt ausführst?
__________________
MM Newmedia | MeinBlog
Mit Zitat antworten
  #13 (permalink)  
Alt 05-01-2012, 13:47
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:

// Daten des Servers:
$dbhost_ip 'localhost';    //Hostname
$dbuser    'php';         //Benutzer
$dbpw      '';             //Passwort
$dbname    'buchungsliste';

//----------------------------------------------------------
// Funktion Datenbankabfrage
function db_query$dbname$sql )
{
    global 
$dbhost_ip$dbuser$dbpw;

    
// Verbindung zum DB-Host herstellen
    
$verbindung = @mysql_connect$dbhost_ip$dbuser$dbpw )
         or die (
'Verbindung zum Datenbank-Rechner (IP-Adresse '.$dbhost_ip.')
                  konnte nicht hergestellt werden!<br />Fehlertext: '
         
.mysql_error());

    
// auswählen der Datenbank
    
mysql_select_db$dbname$verbindung );

    
// ausführen einer SQL-Anfrage
    
$result mysql_query$sql );

    
// Datenbankverbindung schließen
    
mysql_close$verbindung );

    
// Rückgabe des Ergebnisses
    
return( $result );
}
?> 

hier noch ma die datei db_abfrage.inc.php die ich includiert hatte.
Vllt ist ja hier der Fehler versteckt. Weil meines erachtens nach greift er ja nicht auf die gewünschten Datensätze zu oder? Login benutzer wird ja nie erkannt
Mit Zitat antworten
  #14 (permalink)  
Alt 05-01-2012, 13:53
ddel
 Registrierter Benutzer
Links : Onlinestatus : ddel ist offline
Registriert seit: Jan 2012
Beiträge: 9
ddel befindet sich auf einem aufstrebenden Ast
Standard

Nimm mal vor dem mysql_connect das @ Weg. Ich denke du wärst sehr interessiert daran zu sehen was da schief läuft..

Zudem, hast du überprüft ob der Benutzer php existiert? Und du bist dir ganz sicher, dass der Benutzer KEIN Passwort hat?

Wie ezkimo bereits gesagt hat, es wäre sehr hilfreich die ganze Fehlermeldung zu sehen dann.
Mit Zitat antworten
  #15 (permalink)  
Alt 05-01-2012, 14:10
Steinchen87
 Registrierter Benutzer
Links : Onlinestatus : Steinchen87 ist offline
Registriert seit: Jan 2012
Beiträge: 11
Steinchen87 befindet sich auf einem aufstrebenden Ast
Standard

Das einzigste was angezeigt wird ist der oben erwähnte Fehler aber nur beim Debugen. Sonst wird kein Fehler angezeigt. Bin absolut am verzweifeln, könnte mir jemand vllt einen Login mit allem drum un drann schreiben? Also abfrage, eingabe, kontrolle???

Servername = localhost
Benutzer = php
Passwort gibt es nicht!

Datenbankname: buchungsliste
Tabellename: daten

Spalten die angesprochen werden sollen:
1.Spalte: benutzer
2.Spalte: Passwort

Dafür wäre ich sehr dankbar sitze seit Tagen drann, komm einfach nicht weiter...
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
fehler, login, script


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Login Problem nevermind PHP Developer Forum 27 16-09-2008 15:54
Login Problem~ Lini PHP Developer Forum 2 22-03-2008 02:24
Login-Problem dr_mario PHP Developer Forum 8 17-05-2007 22:58
Login problem enoNdo PHP Developer Forum 22 09-01-2005 00:12
Login Problem guest0815 SQL / Datenbanken 8 10-09-2003 21:23

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 00:48 Uhr.