Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 21%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 13%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 3%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 3%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 687 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Lieber Besucher, herzlich willkommen bei: WebmasterWork. Falls dies dein erster Besuch auf dieser Seite ist, lese dir bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

sword

Foren As

Dabei seit: 31.12.2011

Beiträge: 76

 

1 Zum Seitenanfang

Sonntag, 25. März 2012, 16:40

Problem mit meinem PHP Login Script

Hi leute,
also, ich habe ein Problem mit meinem login system von mir geschrieben.

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php

session_start();
include_once('sessionhelpers.inc.php');

if ( isset($_POST['login']) ) {
    $userid check_user($_POST['username'], $_POST['userpass']);
    if ( $userid ) {
        login($userid);
    } else {
        echo '<p>Ihre Anmeldedaten waren nicht korrekt!</p>';
    }
}

if ( !logged_in() ) {
    echo <<<END
<form method="post" action="login.php">
<label>Benutzername:</label> <input name="username" type="text"><br />
<label>Passwort:</label> <input name="userpass" type="password" id="userpass"><br />
<input name="login" type="submit" id="login" value="Einloggen">
</form>
END;
} else {
    echo '<p><a href="soll-geschuetzt-werden.php">Testseite</a></p>';
    echo '<p><a href="logout.php">Ausloggen</a></p>';
}

?>


Das ist meine sessionhelpers.inc.php

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php


/**
 * @return void
 */
function connect () {
    $con mysql_connect('localhost''wh30149sql1''*******') or exit(mysql_error());
    mysql_select_db('wh30149sql1'$con) or exit(mysql_error());
}


/**
 * @param string $name
 * @param string $pass
 * @return boolean
 */
function check_user $name$pass ) {
    // magic quotes anpassen
    if ( get_magic_quotes_gpc() ) {
        $name stripslashes($name);
        $pass stripslashes($pass);
    }
    // escapen von \\, \x00, \n, \r, \, ', " und \x1a
    $name mysql_real_escape_string($name);
    // escapen von Backticks (`)
    $name preg_replace(/x60/, '\\\x60'$name);
    // escapen von % und _
    $name str_replace('%''\%'$name);
    $name str_replace('_''\_'$name);

    $sql 'SELECT UserId FROM users WHERE UserName = \'' $name '\' AND UserPass=\'' md5($pass) . '\'';
    if ( !$result mysql_query($sql) ) {
        exit(mysql_error());
    }
    if ( mysql_num_rows($result) == ) {
        $user mysql_fetch_assoc($result);
        return ( $user['UserId'] );
    } else {
        return ( false );
    }
}


/**
 * @param int $userid
 * @return void
 */
function login $userid ) {
    $sql 'UPDATE users SET UserSession = \'' session_id() . '\' WHERE UserId = ' . ((int)$userid);
    if ( !mysql_query($sql) ) {
        exit(mysql_error());
    }
}


/**
 * @return boolean
 */
function logged_in () {
    $sql 'SELECT UserId FROM users WHERE UserSession = \'' session_id() . '\'';
    if ( !$result mysql_query($sql) ) {
        exit(mysql_error());
    }
    return (mysql_num_rows($result) == 1);
}


/**
 * @return void
 */
function logout () {
    $sql 'UPDATE users SET UserSession = NULL WHERE UserSession = \'' session_id() . '\'';
    if ( mysql_query($sql) ) {
        exit(mysql_error());
    }
}

connect();

?>


Wenn ich dann die login.php, logout.php aufrufe kommt folgender Error:

Zitat

Warning: session_start():
open(/home/customer/temp/wh30149//sess_5c1c5a5a80ff3c8fdd5d47e02f6a5cf5,
O_RDWR) failed: Permission denied (13) in
/home/customer/webs/wh30149/test/login.php on line 3

Parse error: syntax error, unexpected '/', expecting ')' in
/home/customer/webs/wh30149/test/sessionhelpers.inc.php on line 27

Warning: Unknown:
open(/home/customer/temp/wh30149//sess_5c1c5a5a80ff3c8fdd5d47e02f6a5cf5,
O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify
that the current setting of session.save_path is correct
(/home/customer/temp/wh30149/) in Unknown on line 0

Könnt ihr mir helfen??

MfG
sword
Ou man ... eine Signatur ?!?!? ... Ich muss was sinvolles schreiben ....

54556844253846425435484351463547314584344183485436454341843365325464
 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 159

 

2 Zum Seitenanfang

Sonntag, 25. März 2012, 21:46

Der Session - Pfad sieht komisch aus:

Quellcode

1
/home/customer/temp/wh30149//sess_5c1c5a5a80ff3c8fdd5d47e02f6a5cf5

(ich meine konkret '//' in der Mitte des Pfads)
scheint so für mich so, als sei da etwas falsch konfiguriert oder wird irgendwo falsch gesetzt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ospx« (25. März 2012, 21:46)

 

sword

Foren As

Dabei seit: 31.12.2011

Beiträge: 76

 

3 Zum Seitenanfang

Montag, 16. April 2012, 21:27

wo liegt denn da nun der fehler?
Ou man ... eine Signatur ?!?!? ... Ich muss was sinvolles schreiben ....

54556844253846425435484351463547314584344183485436454341843365325464
 

Deffcon

Kaiser

Dabei seit: 11.11.2010

Beiträge: 1 037

 

4 Zum Seitenanfang

Montag, 16. April 2012, 22:01

In der Sessionhelpers in line 27 liegt ja folgender Fehler:

$name = preg_replace(/x60/, '\\\x60', $name);

Das Suchmuster musst du auch in Anführungszeichen setzen.
Damit wärst du den Fehler schonmal los.

Bei den Sessions kann ich dir gerade nicht helfen.
Scheint eine Berechtigungssache zu sein.
 

Novalis

Eroberer

Dabei seit: 01.11.2002

Beiträge: 55

 

5 Zum Seitenanfang

Montag, 16. April 2012, 22:20

Kontrolliere mal ob es diesen Pfad überhaupt gibt (/home/customer/temp/wh30149//sess_5c1c5a5a80ff3c8fdd5d47e02f6a5cf5) und entferne das zweite /. Sollte zwar nicht ausschlaggebend sein, aber sieht nicht schön aus :)

Wenn der Pfad korrekt ist und du bekommst die Meldung nach wie vor, dann hat das Script offenbar keine Schreibrechte um das Session-File anzulegen.
I hacked 127.0.0.1
I'm sooooooooo good! ;)
 

sword

Foren As

Dabei seit: 31.12.2011

Beiträge: 76

 

6 Zum Seitenanfang

Donnerstag, 19. April 2012, 15:00

Also so?

$name = preg_replace(/x60/, '\\\x60', '$name');
Ou man ... eine Signatur ?!?!? ... Ich muss was sinvolles schreiben ....

54556844253846425435484351463547314584344183485436454341843365325464
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 3 179

 

7 Zum Seitenanfang

Donnerstag, 19. April 2012, 17:03

kommentier doch erstmal dieses $name = preg_replace um überhaupt zu sehen ob es desswegen der fehler kommt
 

Deffcon

Kaiser

Dabei seit: 11.11.2010

Beiträge: 1 037

 

8 Zum Seitenanfang

Donnerstag, 19. April 2012, 18:58

Also so?

$name = preg_replace(/x60/, '\\\x60', '$name');




Nein so steht es ja schon in deinem Quelltext.

So:
$name = preg_replace('/x60/', '\\\x60', '$name');

Du musst das Suchmuster entweder in Anführungszeichen setzen ' ' o. " " oder einen String einsetzen also davor $muster = '/x60/'; und dann kannst du
$name = preg_replace($muster, '\\\x60', '$name'); schreiben. Dann solltest du aber der Übersichtlichkeit den Ersatz auch als Variable reinbringen.
 

Deffcon

Kaiser

Dabei seit: 11.11.2010

Beiträge: 1 037

 

9 Zum Seitenanfang

Donnerstag, 19. April 2012, 19:04

Also so?

$name = preg_replace(/x60/, '\\\x60', '$name');




Nein so steht es ja schon in deinem Quelltext.

So:
$name = preg_replace('/x60/', '\\\x60', $name);

Du musst das Suchmuster entweder in Anführungszeichen setzen ' ' o. " " oder einen String einsetzen also davor $muster = '/x60/'; und dann kannst du
$name = preg_replace($muster, '\\\x60', $name); schreiben. Dann solltest du aber der Übersichtlichkeit den Ersatz auch als Variable reinbringen.


Edit: Habe gerade noch nen Fehler gesehen => hinten setzt du die Variable $name in anführungszeichen. Die müssen weg.
Strings müssen mit Anführungszeichen begonnen und beendet werden, bei Variablen darf man das nicht. (sonst werden diese als Strings vom parser interpretiert).
 

sword

Foren As

Dabei seit: 31.12.2011

Beiträge: 76

 

10 Zum Seitenanfang

Freitag, 20. April 2012, 09:02

Wie soll ich jetzt das zweite / entfernen?
Ou man ... eine Signatur ?!?!? ... Ich muss was sinvolles schreiben ....

54556844253846425435484351463547314584344183485436454341843365325464
 

Deffcon

Kaiser

Dabei seit: 11.11.2010

Beiträge: 1 037

 

11 Zum Seitenanfang

Freitag, 20. April 2012, 11:21

Was für ein zweites / sollst du entfernen?


$name = preg_replace('/x60/', '\\\x60', $name);


So sollte die Zeile aussehen.
 

Ähnliche Themen