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 05.02.2012, 00:44  
Neuer Benutzer
 
Registriert seit: 04.02.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
-=Liquid GER=- befindet sich auf einem aufstrebenden Ast
Standard PHP/Webseiten Problem seit PHP-Update auf 5.3.9

Unser Hoster hat ein PHP update auf 5.3.9 gemacht(die vorgänger version ist mir bisher nicht bekannt), seither haben wir folgende fehlermeldung :

Notice: Undefined variable: installation in /pfad/etc/blah/inc/config.php on line 89

Was bedeutet das die Webseite bis auf die fehlermeldung gänzlich nicht mehr funktioniert.

Hier der zugehörige PHP-code :
PHP-Code:
<?php
## REQUIRES ##
require_once(basePath."/inc/mysql.php");

function 
show($tpl$array)
{
  global 
$tmpdir;
    
$template "../inc/_templates_/".$tmpdir."/".$tpl;
  
    if(
$fp = @fopen($template.".".html"r"))
      
$tpl = @fread($fpfilesize($template.".".html));
    
    
$array['dir'] = '../inc/_templates_/'.$tmpdir;
    foreach(
$array as $value => $code)
    {
      
$tpl str_replace('['.$value.']'$code$tpl);
    }
  return 
$tpl;
}

//-> MySQL-Datenbankangaben
$prefix $sql_prefix;                      
$db = array("host" =>           $sql_host,
            
"user" =>           $sql_user,
            
"pass" =>           $sql_pass,
            
"db" =>             $sql_db,
            
"artikel" =>        $prefix."artikel",
            
"acomments" =>      $prefix."acomments",
            
"awards" =>         $prefix."awards",
                  
"away" =>           $prefix."away",
            
"banned" =>         $prefix."banned",
            
"buddys" =>         $prefix."userbuddys",
            
"ipcheck" =>        $prefix."ipcheck",
            
"clankasse" =>      $prefix."clankasse",
            
"c_kats" =>         $prefix."clankasse_kats",
            
"c_payed" =>        $prefix."clankasse_payed",
            
"config" =>         $prefix."config",
            
"counter" =>        $prefix."counter",
            
"c_ips" =>          $prefix."counter_ips",
            
"c_who" =>          $prefix."counter_whoison",
            
"cw" =>             $prefix."clanwars",
            
"cw_comments" =>    $prefix."cw_comments",
            
"cw_player" =>      $prefix."clanwar_players",
            
"downloads" =>      $prefix."downloads",
            
"dl_kat" =>         $prefix."download_kat",
            
"events" =>         $prefix."events",
            
"f_access" =>       $prefix."f_access",
                  
"f_abo" =>          $prefix."f_abo",
            
"f_kats" =>         $prefix."forumkats",
            
"f_posts" =>        $prefix."forumposts",
            
"f_skats" =>        $prefix."forumsubkats",
            
"f_threads" =>      $prefix."forumthreads",
            
"gallery" =>        $prefix."gallery",
            
"gb" =>             $prefix."gb",
            
"glossar" =>        $prefix."glossar",
            
"links" =>          $prefix."links",
            
"linkus" =>         $prefix."linkus",
            
"msg" =>            $prefix."messages",
            
"news" =>           $prefix."news",
            
"navi" =>           $prefix."navi",
            
"navi_kats" =>      $prefix."navi_kats",
            
"newscomments" =>   $prefix."newscomments",
            
"newskat" =>        $prefix."newskat",
            
"partners" =>       $prefix."partners",
            
"permissions" =>    $prefix."permissions",
            
"pos" =>            $prefix."positions",
            
"profile" =>        $prefix."profile",
            
"rankings" =>       $prefix."rankings",
            
"reg" =>            $prefix."reg",
            
"server" =>         $prefix."server",
            
"serverliste" =>    $prefix."serverliste",
            
"settings" =>       $prefix."settings",
            
"shout" =>          $prefix."shoutbox",
            
"sites" =>          $prefix."sites",
            
"squads" =>         $prefix."squads",
            
"squaduser" =>      $prefix."squaduser",
            
"sponsoren" =>      $prefix."sponsoren",
            
"taktik" =>         $prefix."taktiken",
            
"users" =>          $prefix."users"
            
"usergallery" =>    $prefix."usergallery",
            
"usergb" =>         $prefix."usergb",
            
"userpos" =>        $prefix."userposis",    
            
"userstats" =>      $prefix."userstats",
            
"votes" =>          $prefix."votes",
            
"vote_results" =>   $prefix."vote_results"
            
);

if(
$installation)
{
  
$msql = @mysql_connect($db['host'],$db['user'],$db['pass']);
          @
mysql_select_db($db['db'],$msql);
} else {    
  if(!
$msql mysql_connect($db['host'],$db['user'],$db['pass'])) die("<b>Fehler beim Zugriff auf die Datenbank!");
  if(!
mysql_select_db($db['db'],$msql)) die("<b>Die angegebene Datenbank <i>".$db['db']."</i> existiert nicht!");
}

function 
db($db)
{
  global 
$prefix;
  if(!
$qry mysql_query($db)) die('<b>MySQL-Query failed:</b><br /><br /><ul>'.
                                   
'<li><b>ErrorNo</b> = '.str_replace($prefix,'',mysql_errno()).
                                   
'<li><b>Error</b>   = '.str_replace($prefix,'',mysql_error()).
                                   
'<li><b>Query</b>   = '.str_replace($prefix,'',$db).'</ul>');
  return 
$qry;
}
?>
Ab Zeile 89 :
PHP-Code:
{
  
$msql = @mysql_connect($db['host'],$db['user'],$db['pass']);
          @
mysql_select_db($db['db'],$msql);
} else {    
  if(!
$msql mysql_connect($db['host'],$db['user'],$db['pass'])) die("<b>Fehler beim Zugriff auf die Datenbank!");
  if(!
mysql_select_db($db['db'],$msql)) die("<b>Die angegebene Datenbank <i>".$db['db']."</i> existiert nicht!");
}

function 
db($db)
{
  global 
$prefix;
  if(!
$qry mysql_query($db)) die('<b>MySQL-Query failed:</b><br /><br /><ul>'.
                                   
'<li><b>ErrorNo</b> = '.str_replace($prefix,'',mysql_errno()).
                                   
'<li><b>Error</b>   = '.str_replace($prefix,'',mysql_error()).
                                   
'<li><b>Query</b>   = '.str_replace($prefix,'',$db).'</ul>');
  return 
$qry;
}
?> 
Die Autoren zu kontaktieren hat bisher zu keinem ergebnis geführt, suche per google/foren führte zu folgendem ergebniss :
Eine variable ist nicht definiert was sie aber sein sollte, auch anleitungen hierzu(variable vor-definieren, string, 0 etc.) haben bisher nicht zum gewünschten ergebnis geführt.

Durch weitere nachforschungen sieht es bisher so aus das obiges PHP-script kompatibel zu PHP 5.3.9 ist (zb. mysql_connect, mysql_select_db)

Demnächst sollte ein PHP update auf 5.3.10 folgen(sicherheitsfix), ob dies zur behebung des fehlers führt bleibt abzuwarten.

Ich setze daran das problem zu lösen in dem die betroffene variable vor-definiert wird, allerdings habe ich bisher keine funktionierende lösung gefunden.

Wenn ihr sonst noch infos braucht bitte euere fragen posten, danke !

Nachgereichte Infos :
Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 PHP/5.3.9-1~dotdeb.2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_ssl/2.2.9 OpenSSL/0.9.8g Server

Geändert von -=Liquid GER=- (05.02.2012 um 02:59 Uhr).
-=Liquid GER=- ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.02.2012, 01:56  
Benutzer
 
Benutzerbild von trollface
 
Registriert seit: 24.09.2011
Beiträge: 62
PHP-Kenntnisse:
Fortgeschritten
trollface befindet sich auf einem aufstrebenden Ast
Standard

Ersetze das->
PHP-Code:
if($installation
durch das
PHP-Code:
if(isset ($installation)) 
trollface ist offline   Mit Zitat antworten
Alt 05.02.2012, 02:23  
Neuer Benutzer
 
Registriert seit: 04.02.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
-=Liquid GER=- befindet sich auf einem aufstrebenden Ast
Standard

Ok also die fehlermeldung ist jetzt weg dadurch, allerdings funktioniert die webseite nachwievor nicht.
Sie öffnet sich und bleibt komplett weis, auch quelltext ist nachwievor nicht anzeigbar.

Geändert von -=Liquid GER=- (05.02.2012 um 02:27 Uhr).
-=Liquid GER=- ist offline   Mit Zitat antworten
Alt 05.02.2012, 02:58  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.549
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

also - diese Änderungen sind meist etwas umfangreicher ... der Code "riecht" zumindest nach register_globals = on, das ist aber schon seit halben Ewigkeiten auf Off gesetzt - daneben werden sinnvolle Fehler unterdrückt.

Du müsstest zumindest mal die @-Zeichen entfernen, um zu sehen ob es an der Datenbankverbindung liegt. Daneben .. und da wirds kompliziert .. müsstest du versuchen herauszufinden, woher Variablen wie eben $installation wirklich kommen sollen - in der Beziehung war der Tipp von trollface noch nich das "Gelbe vom Ei" .. ich vermute ja, dass es aus einem der Superglobalen Arrays stammt.

Aber das kann man bei dem kurzen Code-Schnipsel wirklich nicht sagen.

Schalte wenigstens mal am Anfang jedes PHP-Scriptes das Error-Reporting ein, solange du den Fehler suchst

Zum Thema Register-globals ... wenn es auf "on" steht, werden für sämtliche Post / Get / Cookie Variablen automatisch globale Variablen erstellt, was natürlich eine Sicherheitslücke erster Güte darstellt - wenn diese Einstellung auf off steht, musst du deinen gesamten Code zu rate ziehen und ermitteln, woher jede deiner Variablen wirklich stammt - etwa aus einem form method="post" -> $_POST['feldname'] oder als URL-Parameter $_GET['parameter'] und genau so bei Cookie-Variablen ...das ist nicht ganz einfach, dort den Überblick zu behalten
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (05.02.2012 um 03:10 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 06.02.2012, 12:30  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 472
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Ergänzend zu:

Zitat:
Zitat von eagle275 Beitrag anzeigen
also - diese Änderungen sind meist etwas umfangreicher ... der Code "riecht" zumindest nach register_globals = on, ...

... Daneben .. und da wirds kompliziert .. müsstest du versuchen herauszufinden, woher Variablen wie eben $installation wirklich kommen sollen ... ich vermute ja, dass es aus einem der Superglobalen Arrays stammt.
Wenn keine speziellen Tricks (wie extract() usw.) angewandt wurden, sollte sich $installation also in $_POST finden lassen. Ein
PHP-Code:
ksort($_POST);
var_dump($_POST); 
am Anfang des Scripts listet die POST-Variablen auf. Findet sich dort kein Eintrag 'installation', kommt die Variable $installation woanders her[0], oder du musst dich im aufrufenden Script auf die Suche nach einem HTML-Formular machen, das vergessen hat, dieses Feld zu setzen.

Das Gleiche gilt prinzipiell auch für $_GET, aber da müsste man 'installation' schon im Query-String (also bspw. in der Adressleiste des Web-Browsers) sehen können.

--
[0] Möglicherweise aus dem Script, welches dein gepostetes Teilstück inkludiert. In Zeile drei steht
PHP-Code:
require_once(basePath."/inc/mysql.php"); 
Die Konstante 'basePath' muss vorher irgendwo definiert worden sein, sonst würdest du eine ähnliche Fehlermeldung zu sehen bekommen wie bei nicht deklarierten Variablen.

Geändert von fireweasel (06.02.2012 um 12:55 Uhr). Grund: s/install(?!ation)/installation/g
fireweasel 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] Problem Update eines Datensatz NTM Datenbanken 2 10.11.2011 13:24
Problem mit Jquery und update Funktion NTM PHP Einsteiger 5 09.11.2011 13:18
[Erledigt] Update Problem Sickone4 PHP Einsteiger 7 31.08.2011 18:23
[Erledigt] INSERT ... ON DUPLICATE KEY UPDATE Problem Leberwurstbrot Datenbanken 9 29.05.2011 12:33
UPDATE Set WHERE Problem IIYTII PHP Tipps 2009 6 07.12.2009 12:20
[Erledigt] Update Problem wegen MySQL Version ? JanM Datenbanken 16 15.11.2009 22:35
[Erledigt] Problem bei Update einer Spalte über Join fulltilt Datenbanken 6 31.10.2009 17:37
[Erledigt] Problem beim UPDATE sqldb largo PHP Tipps 2009 4 29.09.2009 01:41
[Erledigt] UPDATE Problem choice PHP Tipps 2009 9 21.05.2009 02:36
[Erledigt] UPDATE Problem fulltilt PHP Tipps 2009 24 10.02.2009 16:50
[Erledigt] sql update problem malisha Datenbanken 3 31.10.2008 16:36
db update problem annaloga PHP Tipps 2006 4 11.06.2006 22:25
Update Befehl Problem! Datenbanken 9 16.08.2005 18:01
PHP Update Problem! PHP Tipps 2004 1 28.09.2004 23:13
[Erledigt] UPDATE Syntax problem Datenbanken 6 17.08.2004 16:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php update schleife, php 5.3.10 $_post geht nicht, php 5.3.9 @mysql_connect, debian phpupdate 5.3.10, php 5.3.9 debian, php kontaktformular senden phpupdate, update php 5.3 datenbank fehler, php 5.3.10 mysql_coonect()

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