ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
396
396
EMPFEHLEN
-
13.04.06 15:17 #1
- Registriert seit
- Jan 2004
- Beiträge
- 144
Hallo.
Ich habe heute meinen neuen Server bekommen.
Leider habe ich jetzt das problem das ich das Script was auf dem alten Server lief auf dem neuen nicht mehr läuft.
Genauer gesagt das einloggen nicht mehr.
PHP Version ist auf beiden Servern identisch.
Der einzige Unterschied ist diese Zeil aus der phpinfo
Neuer Server
Server API Apache 2.0 Handler
Alter server
Server API CGI/FastCGI
Hat das was zu bedeuten?
PHP-Code:<?php
}elseif(!$_POST['username'] || $_POST['username'] == "") {
echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="index.php?page=login">Zurück</a></p>';
}elseif(!$_POST['password'] || $_POST['password'] == "") {
echo '<form action="index.php?page=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{
$password = md5($password);
$query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist hlgeschlagen!');
$result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a ef="index.php?page=login">Zurück</a></p>');
if($password != $result['pass']){
echo '<form action="index.php?page=login" method="post">';
echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
echo '<input type="submit" name="zurueck" value="Zurück"></p>';
echo '</form>';
die;
}else{
$user = $result['user'];
session_register('user');
echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="user/index.php?page=start">Weiter</a></p>';
}
}
?>
-
Gibt es eine Fehlermeldung?
Vielleicht wenn Du mal den MySQL-Funktionen die Moeglichkeit gibst sich zu beschweren?PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
13.04.06 15:25 #3
- Registriert seit
- Jan 2004
- Beiträge
- 144
Gibt keine Fehlermeldung.
Er sagt beim einloggen nur das das Passwort nicht stimmt.
Oder kann es auch sein das ein Server nicht mit MD5 Verschlüsselung klarkommt?
-
MySQL nimmt die Daten nur entgegen. Da Du nicht ueber die MySQL-eigene MD5-Funktion den Hash erzeugst faellt MySQL in der Hinsicht flach. Es koennte aber sein, dass Du die Feldlaenge zu kurz gewaehlt hast sodass nicht der gesamte Hash gespeichert wird und somit der Hash des eingegebenen Passworts nicht mit dem gespeicherten Hash uebereinstimmen kann.
Wuerde, aus welchem Grund auch immer, md5() in PHP nicht funktionieren wuerdest Du wohl eine Fehlermeldung bekommen.
MD5 ist uebrigens keine Verschluesselung sondern ein Hash-Verfahren.
Gib doch testweise einfach mal den aus der Eingabe erstellten und den aus der Datenbank geholten Hash untereinander aus. Dann solltest Du ja sehen ob diese identisch sind.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Probier mal Folgendes:
PHP-Code:<?php
$query = '
SELECT
1
FROM
`users`
WHERE
`user` = "'.mysql_real_escape_string($_POST['username']).'"
AND `pass` = "'.md5($_POST['password']).'"
';
if( mysql_num_rows(mysql_query($query)) <= 0 ) {
echo 'Benutzername und Passwort stimmen nicht überein! Prüfen Sie bitte Ihre Eingaben und versuchen Sie es erneut.';
} else {
echo 'Erfolgreich angemeldet.';
}
?>Markus Wulftange
-
13.04.06 15:42 #6
- Registriert seit
- Jan 2004
- Beiträge
- 144
hm habe es Probiert.
Komischerweise ist der Hash aus der DB anders als der Hash den ich als passwort eingebe.
Ist aber exakt das Passwort das ich vorher angelegt habe
-
Ist der Hash aus der Datenbank vielleicht kuerzer? Wie gesagt, ist es moeglich, dass das Feld fuer den Passwort-Hash nicht lang genug ist um den gesamten Wert aufzunehmen?
Womit hast Du das Passwort gespeichert? Auch mit einem PHP-Script?PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
13.04.06 15:49 #8
- Registriert seit
- Jan 2004
- Beiträge
- 144
Ja das passwort wird auch mit einem php script gespeichert.
Die Hash länge in der DB ist auf 50 gestellt. Das hat bisher immer gereicht
@Gumbo bei deiner Version kommt sofort ein fehler
Parse error: parse error, unexpected $ in /var/www/vhosts/bilder-gigant.de/subdomains/caseconstruction/httpdocs/login.php on line 52
Hier ist das Script womit ich user anlege
PHP-Code:<?php
$query = '
SELECT
COUNT(*)
FROM
`users`
WHERE
`user` = "'.mysql_real_escape_string($_POST['username']).'"
';
if( mysql_result(mysql_query($query), 0) > 0 ) {
echo 'Der Username ist bereits vergeben.';
die;
}
$query = '
INSERT INTO
`users`
SET
`user` = "'.mysql_real_escape_string($_POST['username']).'",
`pass` = "'.md5($_POST['password']).'"
';
$result = mysql_query($query)
or die(mysql_error());
//mkdir ("user/uploadbin/$_POST[username]", 0777);
echo '<p>Der neue Benutzer wurde erfolgreich angelegt!</p><p><a href="index.php?page=login">Zur Startseite</a></p>';
?>Geändert von funnyzocker (13.04.06 um 15:52 Uhr)
-
13.04.06 20:25 #9
- Registriert seit
- Jan 2004
- Beiträge
- 144
so habe den Fehler gefunden.
Allerdings taucht nun folgendes auf
Kann mir jemand sagen was das bedeutet? Mein English ist grausamWarning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
-
Mal sehen, was meine Englischkenntnisse noch so hergeben:
Warnung: unbekannt(): Ihr Skrip verlässt sich vielleicht auf einen Nebeneffekt von Sitzungen, der seit PHP 4.2.3 existert. Bitte seien Sie darauf aufmerksam gemacht, dass Sitzungen nicht globale Variablen als Datenquelle berücksichtigen, außer register_globals ist aktiv. Sie können diese Funktionsweise und damit diese Warnung unterbinden, indem sie session.bug_compat_42 beziehungsweise session.bug_compat_warn auf off setzen.Markus Wulftange
-
13.04.06 21:16 #11
- Registriert seit
- Jan 2004
- Beiträge
- 144
Vielen vielen Dank. Das war es. Habe eben mal die php.ini geändert und schon luppts.
Zitat von Gumbo
Ähnliche Themen
-
PHP script auf einem server läufts auf dem anderen nicht
Von MS[shady] im Forum PHPAntworten: 21Letzter Beitrag: 10.02.07, 19:08 -
script geht bei server wechsel nicht
Von jackob100 im Forum PHPAntworten: 3Letzter Beitrag: 01.05.06, 16:06 -
Upload-Script geht auf Localhost / aber nicht auf dem Server
Von dabauer82 im Forum PHPAntworten: 7Letzter Beitrag: 09.09.05, 17:51 -
WinTV-Karte auf einem PCI erkannt aufm andern nicht!?
Von titusas im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 19.02.05, 00:54 -
access problem, auf einem server gehts auf dem andern nich
Von visionsign im Forum PHPAntworten: 4Letzter Beitrag: 27.11.04, 19:15





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren