php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.12.2011, 19:14  
Neuer Benutzer
 
Registriert seit: 09.12.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
kordda1 befindet sich auf einem aufstrebenden Ast
Standard PHP-Update auf Version 5 - Login funktioniert nicht mehr.

Hallo zusammen,

unser Provider 1&1 hat bei einer Tarifumstellung ebenfalls die PHP Version auf 5 geändert. Seitdem funktionieren 2 Login-Skripte nicht mehr. Der Programmierer, der die seiten vor Jahren erstellt hat, berichtete, dass er in PHP3 programmiert hätte. Auf Basis von PHP4 funktionieren die Skripte.

Diese Loginskripte arbeiten mit einer MySQL-Datenbank. Gebe ich die Logindaten ein und klicke auf OK, werden die Eingabefelder "leer". Nichts passiert weiterhin.

Ich habe schon diverse Foren durchgeguckt, aber noch nichts passendes gefunden. Dazu muss ich sagen, dass ich auch relativ neu auf dem Gebiet PHP bin.

Anbei einmal der Code der login.php-Datei.

PHP-Code:
<?
include ("inc/fnc_dbconnect.inc");
include (
"inc/fnc_dbrequest.inc");
include (
"inc/fnc_login.inc");

if(
strlen($login) !=0){
        if(!
$username){
                
$message="Eingabe!";
                  
$msgArray=FncPosLayer('100','100','left','down','100','100');
        }
        elseif(!
$password){
                
$message="Eingabe!";
                  
$msgArray=FncPosLayer('100','100','left','down','100','100');
        }
        else{
                
$userid=FncReadIDFromLogin ($username,$password);
                if(
$userid){
                        
header("Location: navigation/initial.htm");
                }
                else{
                        
header("Location: login.php");
                        
$message="Abgewiesen!";
                          
$msgArray=FncPosLayer('100','100','left','down','100','100');
                }
        }
}
FncSetHeader(FncGetBrowser(),'Login K&amp;T Seminarverwaltung');
?>
<body onload="javascript:show_error('error','<?print $msgArray['posx']?>','<?print $msgArray['posy']?>','<?print $msgArray['status']?>')">
<h1>Login K&amp;T Seminarverwaltung</h1>
<form action="login.php" method="post">
<?
include("tpl/login_neu.tpl");
?>
</form>
<?
include("tpl/error.tpl");
FncPrintFooter();
?>

Ich hoffe, dass mir hier irgendwie jemand ein Tipp oder Anhaltspunkt geben kann...

Vielen Dank im Voraus!!

BG Daniel
kordda1 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.12.2011, 19:17  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Ohne die diversen Fnc*-Funktionen zu kennen, kann dir nur schlecht weitergeholfen werden.
Trainmaster ist offline   Mit Zitat antworten
Alt 09.12.2011, 19:18  
Neuer Benutzer
 
Registriert seit: 09.12.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
kordda1 befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,
zur Ergänzung hätte ich hier noch die INC.Datei.

Viele Grüße
Daniel

PHP-Code:
<?
/******************************************************************************
 function                 : FncReadIDFromLogin
 description        : ueberprueft Username und Passwort
 sign                        : MK
*******************************************************************************/
function FncReadIDFromLogin($username,$password){
    include(
"inc/fnc_dbconnect.inc");
        
$connectionID=FncOpenDatabase ();
        
$qbe="select person_id from $cfgTabPerson where person_username='$username' and person_password='$password'";
        
$result=mysql_query($qbe,$connectionID);
        
$row=mysql_fetch_row($result);
        
$value=$row[0];
        return 
$value;
};

/******************************************************************************
 function                 : FncPosLayer
 description        : Positioniert Meldungen
 sign                        : MK
*******************************************************************************/
function FncPosLayer($x_ie,$y_ie,$a,$va,$x_ns,$y_ns){
        if(
FncGetBrowser()=="ie"){
                
$msgArray["posx"]=$x_ie;
                
$msgArray["posy"]=$y_ie;
        }
        else{
                
$msgArray["posx"]=$x_ns;
                
$msgArray["posy"]=$y_ns;
        }
        
$msgArray["align"]=$a;
        
$msgArray["valign"]=$va;
        
$msgArray["status"]=1;
        return 
$msgArray;
};

/******************************************************************************
 function                 : FncSQLWhereString
 description        : bildet den zweiten Teil einer where-bedingung
 sign                        : MK
*******************************************************************************/
function FncSQLWhereString($array,$w){
        include (
"../inc/fnc_dbconnect.inc");
        if(
count($array)){
                if(
$w==1){
                        
$qbe=" where ";
                }
                else{
                        
$qbe=" ";
                        
$and=1;
                }
                for(
$i=0;$i<count($array);$i++){
                        
$tab=$array[$i][0];
                        
$tab=$$tab;
                        
$fld=$array[$i][1];
                        
$val =$array[$i][2];
                        
$comp=$array[$i][3]; // like oder '='
                        
$wcrd=$array[$i][4]; // Anzahl wildcards
                        
if($wcrd == 0){
                                
$_wcrd="";
                                
$wcrd_="";
                        }
                        elseif(
$wcrd==1){
                                
$_wcrd="";
                                
$wcrd_="%";
                        }
                        elseif(
$wcrd==2){
                                
$_wcrd="%";
                                
$wcrd_="%";
                        }
                        if(
$val){
                                if(
$and!=1){
                                        
$qbe.=" $tab.$fld $comp '$_wcrd$val$wcrd_' ";
                                        
$and=1;
                                }
                                else{
                                        
$qbe.=" and $tab.$fld $comp '$_wcrd$val$wcrd_' ";
                                        
$and=1;
                                }
                        }
                }
                return 
$qbe;
        }
        else
        {        return 
"";
        }
};

/******************************************************************************
 function             : FncGetRow
 description    : liest Datenreihe anhand id aus DB
 sign                    : MK
*******************************************************************************/
function FncGetRow($tab,$field,$where1,$where2){
        include(
"../inc/fnc_dbconnect.inc");
        
$connectionID=FncOpenDatabase();
        
$tabName=$$tab;
        
$qbe="select $field from $tabName where $where1='$where2' ";
        
//print ("QBE: $qbe");
        
$result=mysql_query($qbe,$connectionID);
        
$row=mysql_fetch_array($result);
        
$value=$row;
        if (
$result){
                return 
$value;
        }
        else{
                return 
"0";
        }
};

/******************************************************************************
 function                 : FncGetField
 description    : liest spezifischen Wert/Feld aus DB
 sign                        : MK
*******************************************************************************/
function FncGetField($tab,$field,$where1,$where2){
        include(
"../inc/fnc_dbconnect.inc");
        
$connectionID=FncOpenDatabase ();
        
$tabName=$$tab;
        
$qbe ="select $field from $tabName where $where1='$where2' ";
        
//print ("QBE: $qbe");
        
$result mysql_query($qbe$connectionID);
        
$row mysql_fetch_array($result);
        
$value $row[0];
        if (
$value){
                return 
$value;
        }
        else{
                return 
"0";
        }
};

/******************************************************************************
 function                 : FncDate2Datum
 description        : konvertiert Datum im Format yyyy-mm-dd in das Format tt.mm.jjjj
 sign                        : MK
 *******************************************************************************/
function FncDate2Datum ($dateVal)
{
        if (
ereg"([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})"$dateVal$regs ))
        {        
$datumVal "$regs[3].$regs[2].$regs[1]";
                if (
$datumVal==0)
                {        
$datumVal="";
                }
                return 
$datumVal;
        }
};

/******************************************************************************
 function                 : FncDatum2Timestamp
 description        : konvertiert Datum-String (t.m.j) in Timestamp
 sign                        : MK
 *******************************************************************************/
function FncDatum2Timestamp ($dateVal){
        
$dateValArray explode("."$dateVal);
        
$t=$dateValArray[0];
        
$m=$dateValArray[1];
        
$j=$dateValArray[2];
        
$datTmStmp=mktime(0,0,0,$m,$t,$j);
        return 
$datTmStmp;
};

/******************************************************************************
 function                 : FncGetBrowser
 description        : liest Browsertyp
 sign                        : MK
 *******************************************************************************/
function FncGetBrowser()
{
        if(
preg_match('~Nav~',(getenv ("HTTP_USER_AGENT"))) || preg_match('~drebags10~',(getenv ("HTTP_USER_AGENT"))) || preg_match('~drebazen10~',(getenv ("HTTP_USER_AGENT"))) || preg_match('~Mozilla/4.7~',(getenv ("HTTP_USER_AGENT"))) )
        {        
$browser="ns";
        }
        if(
preg_match('~MSIE~',(getenv ("HTTP_USER_AGENT"))))
        {        
$browser="ie";
        }
        else
        {
$browser="ns";
        }
        return 
$browser;
}

/******************************************************************************
 function                 : FncSetHeader
 description        :
 sign                        : MK
 *******************************************************************************/
function FncSetHeader($br,$titel){
        print 
"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>\n";
        print 
"<html>\n";
        print 
"<head>\n";
        print 
"<script language='JavaScript' src='js/cbt_".$br.".js' type='text/javascript'></script>\n";
        print 
"<script language='JavaScript' src='js/cbt_general.js' type='text/javascript'></script>\n";
        print 
"<link rel=stylesheet media='screen' href='css/cbt.css'>\n";
        print 
"<link rel=stylesheet media='print' href='css/css/cbt.css'>\n";
        print 
"<link rel=stylesheet media='screen' href='css/cbt_".$br.".css'>\n";
        print 
"<link rel=stylesheet media='print' href='css/cbt_".$br.".css'>\n";
        print 
"</head>\n";
};

/******************************************************************************
 function                 : FncPrintFooter
 description        : dynamisches includen der Abschluß
 sign                        : MK
*******************************************************************************/
function FncPrintFooter(){
        print 
"</body></html>";
};

/*****************************************************************************************
 function                 : FncDatum2Date
 description        : konvertiert Datum im Format tt.mm.jjjj in das Format yyyy-mm-dd
 sign                        : MK
*****************************************************************************************/
function FncDatum2Date($datum){
        list(
$tag,$monat,$jahr)=explode(".",$datum);
        return 
sprintf("%04d-%02d-%02d",$jahr,$monat,$tag);
};

/*****************************************************************************************
 function                 : FncCheckDatum
 description        : ueberprueft Datum auf richtiges Eingabeformat
 sign                        : MK
*****************************************************************************************/
function FncCheckDatum($datum){
        if(
ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$datum,$part)){
                return 
"0";
        }
        else{
                return 
"1";
        }
};

?>
kordda1 ist offline   Mit Zitat antworten
Alt 09.12.2011, 19:30  
Neuer Benutzer
 
Registriert seit: 05.11.2011
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
Soundz befindet sich auf einem aufstrebenden Ast
Standard

auf den ersten blick fällt mir nur ereg auf, welches deprecated sprich veraltet ist.

kannst du vllt noch die anderen beiden dateien posten? die funktion "FncOpenDatabase " kann ich nirgends im script finden, diese wird aber immer wieder aufgerufen.

Aber vllt hat jemand bessere augen als ich
Soundz ist offline   Mit Zitat antworten
Alt 09.12.2011, 19:55  
Neuer Benutzer
 
Registriert seit: 09.12.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
kordda1 befindet sich auf einem aufstrebenden Ast
Standard

Hier noch alles zur Funktion FncOpenDatabase...

PHP-Code:
<?
/******************************************************************************
 function                 : FncOpenDatabase
 description    : Öffnet Datenbank
 sign                    : K
*******************************************************************************/
function FncOpenDatabase(){
        include(
"fnc_dbconnect.inc");
        
$connectionID=MySQL_pconnect($cfgSQLDataSource,$cfgSQLUsername,$cfgSQLPasswd);
        
$dbConnect=mysql_select_db($cfgSQLDataBase,$connectionID);
        if(
$connectionID==0){
                print 
"Verbindung zum Server kann nicht hergestellt werden.";
                exit;
        }
        if(
$dbConnect==0){
                print 
"Wegen Wartungsarbeiten ist DB kurzzeitig au&szlig;er Betrieb. Wir bitten um Ihr Verst&auml;ndnis. Danke!";
                exit;
        }
        return 
$connectionID;
};

?>
kordda1 ist offline   Mit Zitat antworten
Alt 09.12.2011, 19:56  
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

Naja, was solls schon groß sein: register globals natürlich.
__________________
--
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   Mit Zitat antworten
Alt 09.12.2011, 19:58  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Ich habe mir nur jeweils die ersten paar Zeilen angesehen aber das Skript basiert offenbar auf register_globals, unter dem Stichwort solltest du genug Informationen finden. Andererseits ist es vielleicht ganz gut, dass das nicht mehr funktioniert, denn du bist die ganzen Jahre mit gravierenden Sicherheitslücken unterwegs gewesen (SQL Injection, dein nächstes Stichwort).
fab ist offline   Mit Zitat antworten
Alt 10.12.2011, 11:34  
Neuer Benutzer
 
Registriert seit: 09.12.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
kordda1 befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

vielen dank erstmal für die Hinweise. Nach Euren Einträgen wird es wohl an diesem "register_globals" liegen.

Wahrscheinlich ist es jetzt zu viel des Guten zu fragen, an welchen Stellen oder Bereichen ich Änderungen vornehmen muss. Und vor allem was überhaupt für Änderungen.

Von daher empfiehlt es sich sicherlich das ganze neu zu schreiben, oder?

Viele Grüße
Daniel
kordda1 ist offline   Mit Zitat antworten
Alt 10.12.2011, 11:54  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Neuschreiben empfiehlt sich hier definitiv.

- Verwendung von register_globals was eine Sicherheitslücke an sich darstellen kann
- SQL Injection möglich
- Wahrscheinlich noch weitere Lücken die so nicht erkennbar sind

Wenn dir das alles egal ist (was es viele Jahre gewesen zu sein scheint) schalte register_globals wieder an.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 10.12.2011, 19:09  
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

http://php.de/wiki-php/index.php/Reg...i-Direktive%29
__________________
--
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   Mit Zitat antworten
Antwort


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
[Erledigt] PHP Update auf den Wert 0 funktioniert nicht Extremefall PHP Tipps 2010 3 21.10.2010 12:10
Mysql fehler bei externen Zugriff SteiniKeule Datenbanken 4 18.06.2010 12:54
[Erledigt] Update Problem wegen MySQL Version ? JanM Datenbanken 16 15.11.2009 22:35
PEAR Auth - Login funktioniert nicht Hugooo PHP Tipps 2009 16 27.08.2009 14:08
Verständnissfrage - Login funktioniert mal, und dann wieder nicht. Larkin Off-Topic Diskussionen 3 14.08.2009 20:27
[Erledigt] Login funktioniert nicht Nickname PHP Tipps 2009 12 28.02.2009 13:49
MySQL UPDATE funktioniert nicht dampfrakete Datenbanken 16 20.02.2009 11:33
Login Bereich funktioniert nicht warum? Stefanos PHP Tipps 2008 5 15.11.2008 22:49
Update - Sperre funktioniert nicht areUkidding PHP Tipps 2008 39 26.06.2008 22:47
Update auf PHP Version 4.3.10 Sablot XML gibt jetzt Fehler a tekknotrip PHP Tipps 2005 1 23.02.2005 16:14
MySQL UPDATE Befehl funktioniert nicht PHP Tipps 2005 6 24.01.2005 15:03
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
[Erledigt] Session Login funktioniert nicht PHP-Fortgeschrittene 1 19.07.2004 17:23
UPDATE funktioniert nicht PHP Tipps 2004 4 08.06.2004 17:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fncsetheader, php login funktioniert mit neuer php version nicht mehr

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:32 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