php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2008, 20:06  
Neuer Benutzer
 
Registriert seit: 12.10.2008
Beiträge: 14
MasterChief befindet sich auf einem aufstrebenden Ast
Standard Problem mit altem Code auf PHP5

Hallo!

Ich habe heute damit begonnen ein altes Skript auf PHP5 zu aktualisieren. Das Problem daran ist nur das ich mein Login Skript nicht mehr zum Laufen bekomme. Es gibt keine Fehlermeldung oder ähnliches, aber das Problem äußert sich dadurch das einfach immer der Login Screen angezeigt wird... ob richtige Eingaben nun getätigt wurden oder nicht. Hier mal der Code meiner login.php die auf jeder Seite included ist.

PHP-Code:

<?php
session_start
();
include (
$_SERVER['DOCUMENT_ROOT'] . '/lan/database.php');
?>

<html>
<head>

<title>L.A.N. Headquarters</title>
<style type="text/css">

<!--
body {
    background-image: url(bilder/hintergrund_hauptseite.jpg);
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    background-repeat: no-repeat;
}
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #c69b9b;
}
a:link {
    color: #C69B9B;
    text-decoration: none;
    font-weight:bold;
}
a:visited {
    color: #C69B9B;
    text-decoration: none;
    font-weight:bold;
}
a:hover {
    color: #FFFFFF;
    text-decoration: none;
    font-weight:bold;
}
a:active {
    color: #C69B9B;
    text-decoration: none;
    font-weight:bold;
}
.textfeld {
border: none;
direction: ltr;
color: #6E0000;
background-color: #c69b9b;
}

.button {
border: 1;
width: 100px;
direction: ltr;
height: 24px;
color: #6E0000;
background-color: #c69b9b;
}
-->

</style>
</head>
<body>

<?php
if(!isset($_SESSION['username'], $_SESSION['password'])) 
{
?>

<form action="<? $_SERVER['PHP_SELF']?> <? if($QUERY_STRING){ echo"?"$QUERY_STRING;}?>" method="post">
    <table width="565" height="624" border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td align="left" valign="top">
            <br><br>
            Du kannst dich hier mit deinem Benutzernamen und Passwort einloggen. Solltest du noch nicht über einen Account verfügen so kannst du dich mit einem Klick auf <a href="register.html" target="iframe">diesen Link</a> registrieren.
                <p align="left">
                    Username:<br><input class="textfeld" type="text" name="username"><br><br>
                    Password:<br><input class="textfeld" type="password" name="password"><br><br>
                    <input class="button" type="submit" value="Login">    
                </p>
            </td>
        </tr>
    </table>
</form>
</body>
</html>

<?php
exit();
}

$_SESSION['username'] = $username;
$_SESSION['password'] = $password;


$sql mysql_query("SELECT password FROM users WHERE username = '$_POST[username]'");
$fetch_em mysql_fetch_array($sql);
$numrows mysql_num_rows($sql);

if(
$numrows != "0" $_POST['password'] == $fetch_em["$password]"]) 
    {
$valid_user 1;}
else 
    {
$valid_user 0;}

if (!(
$valid_user))
    {
    
session_unset();   
    
session_destroy(); 
    
?>

<form action="<?php $_SERVER['PHP_SELF'?> <? if($QUERY_STRING){ echo"?"$QUERY_STRING;}?>" method="post">

    <table width="565" height="624" border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td align="left" valign="top">
            <br><br>
                <p align="left">
                    Du kannst dich hier mit deinem Benutzernamen und Passwort einloggen. Solltest du noch nicht über einen Account verfügen so kannst du dich mit einem Klick auf <a href="register.html" target="iframe">diesen Link</a> registrieren.
                </p>
                <p align="left">
                    Username:<br><input class="textfeld" type="text" name="username"><br><br>
                    Password:<br><input class="textfeld" type="password" name="password"><br><br>
                    <input class="button" type="submit" value="Login">
                </p>
                <p align="left">
                    Eingabe falsch. Bitte nochmals versuchen.
                </p>
            </td>
        </tr>
    </table>
</form>
</body>
</html>

<?php
exit();
}
else
{
echo 
"<script type='text/javascript'>
function FrameAendern (URI) {
  parent.header.location.href = URI;
}
FrameAendern ('header_2.php');

</script>"
;
}
?>
Da ich mit PHP 5 und den neueren 4er Versionen nicht so vertraut bin würde ich gerne mit euch auf Fehlersuche gehen. Probiere nämlich auf XAMPP das ding zum laufen zu bringen. Und dort gehts halt nimmer mit dem alten Skript (ist auch sinnvoll das mal zu erneuern)

Bitte um Hilfe!

Mfg
MasterChief

Geändert von MasterChief (16.10.2008 um 20:35 Uhr).
MasterChief ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2008, 22:32  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

benutze nicht $_SERVER['PHP_SELF'], sondern $_SERVER['SCRIPT_NAME']:

PHP_SELF ist böse! Potentielles Cross Site Scripting (XSS)! | Technik, Gothic und Anderes

Ansonsten eben Debuggen:
error_reporting(E_ALL); mysql_error(); und echo- bzw. print_r-Ausgaben.
Koala ist offline  
Alt 16.10.2008, 22:33  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo MasterChief,

ich tippe, dass du ein session_start() am Anfang des Sktiptes platzieren und deine Query syntaktisch korrigieren solltest. Insbesondere sollte der Offset in einfachen Quotes dargestellt werden.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 16.10.2008, 22:45  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
dass du ein session_start() am Anfang des Sktiptes platzieren
hat er doch
Zitat:
deine Query syntaktisch korrigieren solltest
wieso ? wenns doch lokal funktioniert, dann wird die Syntax ok sein.

Aber er speichert den Zustand "eingeloggt" nicht in der Session: $valid_user = 1;
und vertraut auf register globals = on
(auch ein Sicherheitsrisiko, wird mit PHP 6 abgeschafft)


Also: Stichwort zur Lösung ist "register globals"
Koala ist offline  
Alt 16.10.2008, 23:26  
Neuer Benutzer
 
Registriert seit: 12.10.2008
Beiträge: 14
MasterChief befindet sich auf einem aufstrebenden Ast
Standard

also ich hab mal E_all gemacht und auch das mysql_error; eingebaut...
es gibt aber keine Fehlermeldungen aus...

und zur der Sache mit dem eingeloggt in die Session... Wie muss ich das genau ausführen?

mfg
MasterChief ist offline  
Alt 16.10.2008, 23:31  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

du kannst in die Session ablegen ob ein gültiger Login vorliegt oder nicht, und prüfst in der if Abfrage ähnlich folgendem

PHP-Code:
if($_SESSION['valid_login'] == 1
Ablegen kannst du es in der Session wie du es auch mit dem Usernamen und dem Passwort machst

Sessions (PHP-Tutorial)
moveax1 ist offline  
Alt 16.10.2008, 23:42  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
hat er doch
Sorry, überlesen. Danke, Koala!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 17.10.2008, 00:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

benutze mal error_reporting (E_ALL|E_STRICT);
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 17.10.2008, 00:23  
Neuer Benutzer
 
Registriert seit: 12.10.2008
Beiträge: 14
MasterChief befindet sich auf einem aufstrebenden Ast
Standard

nö, auch nix...
schreib hier noch mal den Code rein... könnte sein das ich Fehler hab

PHP-Code:
<?php
session_start
();
include (
$_SERVER["DOCUMENT_ROOT"] . 'database.php');

//error_reporting(E_ALL);
error_reporting(E_ALL|E_STRICT);
?>

<html>
<head>

<title>L.A.N. Headquarters</title>
<style type="text/css">

CSS

</style>
</head>
<body>

<?php
if(!isset($_SESSION["valid_login"])) {
?>

<form action="<? $_SERVER["SCRIPT_NAME"]?> <? if($QUERY_STRING){ echo"?"$QUERY_STRING;}?>" method="get">

HTML FORM --> PASSWORT UND BENUTZER ANGEBEN

<?php
exit();
}

$sql mysql_query("SELECT password FROM users WHERE username = '$_GET[username]'");
$row mysql_fetch_array($sql);


if(
$_GET[password] == $row[password]) 
    {
$_SESSION['valid_login'] = 1;}
else 
    {
$_SESSION['valid_login'] = 0;}

if(
$_SESSION['valid_login'] == false)
    {
    
session_unset();   
    
session_destroy(); 
    
?>

<form action="<?php $_SERVER["SCRIPT_NAME"?> <? if($QUERY_STRING){ echo"?"$QUERY_STRING;}?>" method="get">

HTML AUSGABE --> FEHLER BEI DER EINGABE

<?php
exit();
}
else
{
echo 
"<script type='text/javascript'>
function FrameAendern (URI) {
  parent.header.location.href = URI;
}
FrameAendern ('header_2.php');

</script>"
;
}
?>
mfg
MasterChief ist offline  
Alt 17.10.2008, 00:25  
Benutzer
 
Registriert seit: 26.09.2008
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Hewan befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
Thema: Register Globals

Zitat:
$sql = mysql_query("SELECT password FROM users WHERE username = '$_POST[username]'");
Thema: SQL Injection
Hewan ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
PHP5 SOAP - Problem mit Arrays Calexico PHP-Fortgeschrittene 0 11.09.2008 12:06
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
[Erledigt] PHP5: &quot;Private Lazy Initialization&quot; mit __get() mo PHP-Fortgeschrittene 10 16.10.2005 16:57
Apache2 und PHP5 Problem Server, Hosting und Workstations 2 09.09.2005 17:14
bb code problem schmiddy PHP Tipps 2005-2 4 10.08.2005 13:58
SOAP in PHP5 für NuSoap deaktivieren PHP-Fortgeschrittene 2 03.08.2005 18:23
PHP Problem im IE PHP Tipps 2005-2 7 31.07.2005 17:37
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
Problem mit Code PHP Tipps 2004-2 14 01.12.2004 14:10
Problem beim Update aus altem Output-File. woods Datenbanken 2 26.11.2004 14:44
Problem im Code Lia PHP Tipps 2004-2 14 23.11.2004 10:18
Code PRoblem (FOrmular) PHP Tipps 2004-2 20 07.11.2004 01:07
Galerie code problem PHP Tipps 2004 1 29.09.2004 10:35
[Erledigt] Problem mit ASCII Code PHP-Fortgeschrittene 4 06.06.2004 20:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php5 mysql_fetch_array, mysql_num_rows php5, php5 action=\$_server[php_self]\, action=\<?php $_server[\'script_name\'] ?>\ method=\get\> geht nicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum