tobsp
28. Juli 2010 um 19:12
1
wie bekomme ich folgende fehlemeldung behoben? ich habe zwar gegoogelt aber zu einer richtigen lösung bin ich nciht gekommen.
Warning: 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
hummer
31. Juli 2010 um 13:09
3
tobsp
31. Juli 2010 um 13:13
4
ja. die seite hatte ich auch entdeckt, nur ist mir da im script nichts aufgefallen.
<?php
session_start();
require("connect.inc.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>LogIn zum Adminbereich</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?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 bgcolor="#e7e7e7" align="center" colspan="2">
<input type="submit" name="submit" value="Anmelden" 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">Zurück</a></p>';
}elseif(!$_POST['password'] || $_POST['password'] == "") {
echo '<form action="index.php" 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($_POST['password']);
$query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'");
$result = @mysql_fetch_array($query) or die('<p align="center">
Sorry, aber dieser Benutzername existiert nicht!<br /><a
href="index.php">Zurück</a></p>');
if($password != $result['pass']){
echo '<form action="index.php" 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="sichere_seite.php">Weiter</a></p>';
}
}
?>
</body>
</html>
Ausgegeben wird dann:
LogIn erfolgreich!
Weiter
sowie oben genannte Fehlermeldung
hummer
31. Juli 2010 um 13:16
5
Und du hast dir die Seite auch ganz durchgelesen?
[quote]Ursache:
Die Funktion session_register() funktioniert nicht in Umgebungen wo register_globals auf off gestellt ist.
In PHP Versionen bis 4.2.0 konnte man durch einen Fehler in PHP, die Session-Variable dennoch im globalen Bereich zu initialisieren. Ab der Version 4.3.0
gibt PHP bei aktivierten bug_compact_42 und bug_compact_warn eine Warnung aus.
Da session_register() als veraltet gilt, sollte man diese PHP Funktion nicht mehr nutzen.[/quote]
Edit: Informiere dich über SQL injection
tobsp
31. Juli 2010 um 13:37
6
da war ich dann wohl in meinem script ein wenig blind.
dann muß ja wohl aus
das in
$_SESSION['user'] = $user;
ändern