anpera.net
https://anpera.homeip.net/phpbb3/

Update zu PHP 7 (Kyria)
https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=5581
Seite 1 von 2

Autor:  Kyria [ Mi 13 Feb, 2019 15:03 ]
Betreff des Beitrags:  Update zu PHP 7 (Kyria)

Hallo ihr Lieben,

Da nun wieder eine PHP 5 Version nicht mehr funktioniert und es immer weiter voran geht, bis wir bei der 7 angekommen sind, wollte ich meinen Server gleich auf die PHP 7 Version setzten.

Leider bin ich nur ein Laie was Programmieren betrifft und hänge nun an zwei Fehlermeldungen fest, zu denen ich einfach keine Lösung finde. Ich hoffe ihr könnt mir vielleicht helfen.

Da ich durch diese Fehlermeldung nicht auf die Source zugreifen lassen kann, werde ich euch hier die betreffenen Zeilen geben, ich hoffe das wird reichen, ansonsten werde ich auch gerne die Dateien reinstellen.


1. Fehlermeldung:

Warning: A non-numeric value encountered in /www/htdocs/w00f1fd7/testermagicwunder/common.php on line 16

betrifft folgendes in der common.php

$HTTP_GET_VARS &= $_GET;
$HTTP_POST_VARS &= $_POST;
$HTTP_COOKIE_VARS &= $_COOKIE;
$HTTP_SESSION_VARS &= $_SESSION;
diese Zeile wird benannt in der Fehlermeldung


2. Fehlermeldung:

Warning: mysqli_select_db() expects parameter 1 to be mysqli, null given in /www/htdocs/w00f1fd7/testermagicwunder/dbwrapper.php on line 123

betrifft folgenden Befehl:

function db_select_db($dbname){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();
$fname = DBTYPE."_select_db";
$r = $fname($link,$dbname);
$dbtimethishit += getmicrotime();
return $r;
}

Ich bedanke mich schon jetzt für jede Hilfe und Zeit die ihr mir geben könnt. :)

Autor:  Taikun14 [ Fr 22 Feb, 2019 17:35 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Hi,

Zusammenfassung der 7.1 Änderung:

PHP:

Autor:  Kyria [ Mi 27 Feb, 2019 08:26 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Vielen Dank! *_*

Autor:  Kyria [ Sa 16 Mär, 2019 19:05 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Also.. ich habe dank dem Link die meisten Fehler beheben können, allerdings habe ich einen neuen bekommen.. ich hab echt alles versucht was mir eingefallen oder ich gefunden habe. Aber ich komme nicht weiter.
Der Fehler:

Warning: session_start() expects parameter 1 to be array, string given in /www/htdocs/w00f1fd7/times_of_mystery/common.php on line 2529

Irgendwie ist mir die session funktion doch zu hoch. :(

Vielleicht könnt ihr mir nochmal helfen?

Vielen Dank schon mal im Vorraus.

Liebe Grüße

Autor:  Taikun14 [ Mi 20 Mär, 2019 14:51 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Kyria hat geschrieben:
Also.. ich habe dank dem Link die meisten Fehler beheben können, allerdings habe ich einen neuen bekommen.. ich hab echt alles versucht was mir eingefallen oder ich gefunden habe. Aber ich komme nicht weiter.
Der Fehler:

Warning: session_start() expects parameter 1 to be array, string given in /www/htdocs/w00f1fd7/times_of_mystery/common.php on line 2529

Irgendwie ist mir die session funktion doch zu hoch. :(

Vielleicht könnt ihr mir nochmal helfen?

Vielen Dank schon mal im Vorraus.

Liebe Grüße


Die Datei bitte offen legen ( hochladen der so ).

Autor:  Eliwood [ Mi 20 Mär, 2019 17:37 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Kyria hat geschrieben:

Warning: session_start() expects parameter 1 to be array, string given in /www/htdocs/w00f1fd7/times_of_mystery/common.php on line 2529


Entferne alle parameter von session_start(). Die Zeile müsste so aussehen:

$this->bbcode_second_pass_code('', 'session_start();')

Autor:  Kyria [ Fr 22 Mär, 2019 13:06 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Vielen Dank für die Hilfe. :)

Autor:  Kyria [ So 14 Apr, 2019 13:48 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Es tut mir leid das ich schon wieder, um Hilfe bitten muss, aber ich finde leider wieder keine Lösung.

Nachdem nun keine Fehlermeldung mehr kommt, finde ich den Fehler einfach nicht. Ich kann mich nach dem Update leider nicht mehr einloggen. Ich dachte erst es liegt an der Kodierung der Htm Datei, aber das zeigte keinerlei Wirkung.

Meine einzige Vermutung wäre, daß was in der login.php noch nicht korrekt ist, aber null plan was.

Ich hab hier mal meine datei:

PHP:
<?php
require_once "common.php";

if ($_POST['name'] != ""){
if ($session['loggedin']){
redirect($session['user']['restorepage']);
}else{
if(0){
}else{
$result = db_fetch_assoc(db_query("SELECT COUNT(acctid) AS onlinecount FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."'"));
$onlinecount = $result['onlinecount'];

$sql = "SELECT * FROM accounts WHERE login = '" . $_POST['name'] . "' AND password=MD5('" . $_POST['password'] . "') AND locked=0";
$result = db_query($sql);
if (db_num_rows($result)==1){
$session[user]=db_fetch_assoc($result);
//echo "Ooga Booga";
//flush();
//exit();
checkban($session[user][login]); //check if this account is banned
checkban(); //check if this computer is banned
/*if (strpos($_SERVER['SERVER_NAME'],"logd.mightye.org")!==false && $session['user']['superuser']<1){
if (date("H")<2 || date("H")>17){
$session[message]="`\$The dev server shuts down in the
evening now so that I may partake of my home
bandwidth. This server is only available from
2am to 5pm from now on.";
//echo $session[message];
header("Location: index.php");
exit();
//redirect("index.php");
}
}*/
if ($session[user][emailvalidation]!="" && substr($session['user']['emailvalidation'],0,1)!="x"){
$session[user]=array();
$session[message]="`4Fehler: Du musst deine E-Mail Adresse best&auml;tigen lassen, bevor du dich einloggen kannst.";
echo $session[message];
//header("Location: index.php");
exit();
}else{
if ($onlinecount<getsetting("maxonline",10) || getsetting("maxonline",10)==0 || $session[user][superuser]>0){
//loaduser($session['user']);
$session[loggedin]=true;
$session[output]=$session[user][output];
$session['petitions'] = array();
$session[laston]=date("Y-m-d H:i:s");
$session[sentnotice]=0;
$session[user][dragonpoints]=unserialize($session[user][dragonpoints]);
$session[user][prefs]=unserialize($session[user][prefs]);
$session['bufflist']=unserialize($session['user']['bufflist']);
if (!is_array($session[user][dragonpoints])) $session[user][dragonpoints]=array();
if ($session[user][loggedin]){
$session[allowednavs]=unserialize($session[user][allowednavs]);
saveuser();
header("Location: {$session['user']['restorepage']}");
exit();
//redirect($session['user']['page']);//"badnav.php");
}
db_query("UPDATE accounts SET loggedin=".true.", location=0 WHERE acctid = ".$session[user][acctid]);
$session[user][loggedin]=true;
$location = $session[user][location];
$session[user][location]=0;
if ($session[user][alive]==0 && $session[user][slainby]!=""){
//they're not really dead, they were killed in pvp.
$session[user][alive]=true;
}
if (getsetting("logdnet",0)){
//register with LoGDnet
@file(getsetting("logdnetserver","http://lotgd.net/")."logdnet.php?addy=".URLEncode(getsetting("serverurl","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI'])))."&desc=".URLEncode(getsetting("serverdesc","Another LoGD Server"))."&version=".URLEncode($logd_version)."");
}


redirect($session['user']['restorepage']);
exit();

/*if ($location==0){
redirect("list.php");
}else if($location==1){
redirect("linesheim.php");
}else if($location==2){
redirect("houses.php?op=newday");
}else if($location==3){
redirect("schlafline.php");
}else if($location==4){
redirect("jasonsheim.php");
}else if($location==5){
redirect("schlafjason.php");
}else {
saveuser();
header("Location: {$session['user']['restorepage']}");
exit();
}*/
}else{
$session['user'] = array();
$session[message]="`4Fehler: Der Server ist voll.`0";
redirect("index.php");
}
}
}else{
$session[message]="`4Fehler: Login-Daten waren ung&uuml;ltig.`0";
//now we'll log the failed attempt and begin to issue bans if there are too many, plus notify the admins.
$sql = "DELETE FROM faillog WHERE date<'".date("Y-m-d H:i:s",strtotime(date("r")."-".(getsetting("expirecontent",180)/4)." days"))."'";
checkban();
db_query($sql);
$sql = "SELECT acctid FROM accounts WHERE login='{$_POST['name']}'";
$result = db_query($sql);
if (db_num_rows($result)>0){ // just in case there manage to be multiple accounts on this name.
while ($row=db_fetch_assoc($result)){
$sql = "INSERT INTO faillog VALUES (0,now(),'".addslashes(serialize($_POST))."','{$_SERVER['REMOTE_ADDR']}','{$row['acctid']}','{$_COOKIE['lgi']}')";
db_query($sql);
$sql = "SELECT faillog.*,accounts.superuser,name,login FROM faillog INNER JOIN accounts ON accounts.acctid=faillog.acctid WHERE ip='{$_SERVER['REMOTE_ADDR']}' AND faillog.date>'".date("Y-m-d H:i:s",strtotime(date("r")."-1 day"))."'";
$result2 = db_query($sql);
$c=0;
$alert="";
$su=false;
while ($row2=db_fetch_assoc($result2)){
if ($row2['superuser']>0) {$c+=1; $su=true;}
$c+=1;
$alert.="`3{$row2['date']}`7: Failed attempt from `&{$row2['ip']}`7 [`3{$row2['id']}`7] to log on to `^{$row2['login']}`7 ({$row2['name']}`7)`n";
}
if ($c>=10){ // 5 failed attempts for superuser, 10 for regular user
$sql = "INSERT INTO bans VALUES ('{$_SERVER['REMOTE_ADDR']}','','".date("Y-m-d H:i:s",strtotime(date("r")."+".($c*3)." hours"))."','Automatischer Systembann: Zu viele fehlgeschlagene Loginversuche.')";
db_query($sql);
if ($su){ // send a system message to admins regarding this failed attempt if it includes superusers.
$sql = "SELECT acctid FROM accounts WHERE superuser>=3";
$result2 = db_query($sql);
$subj = "`#{$_SERVER['REMOTE_ADDR']} failed to log in too many times!";
for ($i=0;$i<db_num_rows($result2);$i++){
$row2 = db_fetch_assoc($result2);
//delete old messages that
$sql = "DELETE FROM mail WHERE msgto={$row2['acctid']} AND msgfrom=0 AND subject = '$subj' AND seen=0";
db_query($sql);
if (db_affected_rows()>0) $noemail = true; else $noemail = false;
systemmail($row2['acctid'],"$subj","This message is generated as a result of one or more of the accounts having been a superuser account. Log Follows:`n`n$alert",0,$noemail);
}//end for
}//end if($su)
}//end if($c>=10)
}//end while
}else{

}//end if (db_num_rows)
redirect("index.php");
}
}
}
}else if ($_GET[op]=="logout"){
$session['user']['donationconfig']=serialize($config);
$session['user']['location']=0;
$session['user']['loggedin']=0;
$session['user']['lastlogoff'] = date('Y-m-d H:i:s');
saveuser();
$session=array();
redirect("index.php");
}
// If you enter an empty username, don't just say oops.. do something useful.
$session=array();
$session[message]="`4Fehler: Die Login-Daten waren fehlerhaft.`0";
redirect("index.php");
?>


Vielleicht kann jemand mir auch hier helfen? Vielen Dank schon mal im voraus.

Autor:  Eliwood [ So 14 Apr, 2019 15:38 ]
Betreff des Beitrags:  Re: Update zu PHP 7

Bleibst du beim Login in der URL auf login.php stecken, oder wirst du weitergeleitet? Wenn ja, wohin?

Autor:  Kyria [ So 14 Apr, 2019 15:52 ]
Betreff des Beitrags:  Re: Update zu PHP 7

In die Einwohnerliste, da wo man auch eingeloggt hinkommen sollte.

Autor:  Eliwood [ Mo 15 Apr, 2019 13:54 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

@Kyria:

Beim registrieren auf deiner Seite begegnet mir:

$this->bbcode_second_pass_code('', 'Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, string given in /www/htdocs/w00f1fd7/magicworld/dbwrapper.php on line 93')

Könntest du deinen Source-Code durchsuchen, ob du irgendwo $global_mysqli_link auf einen Wert setzt? Eigentlich sollte der nur von db_pconnect() gesetzt werden:

$this->bbcode_second_pass_code('', 'function db_pconnect($host,$user,$pass){
global $dbtimethishit, $global_mysqli_link;
$dbtimethishit -= getmicrotime();
$fname = DBTYPE."_connect";
$r = $fname($host,$user,$pass);
$global_mysqli_link = $r;
$dbtimethishit += getmicrotime();
return $r;
}')

Scheint bei dir aber anderswo Probleme zu geben.

Autor:  Kyria [ Di 16 Apr, 2019 10:33 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Oh, moment. Das ist ein testserver bei dem ich versucht habe heraus zu finden wieso da das Login klappt, aber bei meinem Hauptserver nicht.

Das ist der Hauptserver: http://www.times-of-mystery.de/

Tut mir leid, mein Fehler. :(

Aber da ist genau das selbe Problem :shock: und in der dbwrapper hab ich das genauso drinne stehen, wie du das hier gezeigt hast. :(

Autor:  Eliwood [ Mi 17 Apr, 2019 08:39 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Ja, ich weiss, das war auf deiner Hauptseite und der Code von deinef dbwrapper.php.

Sieht auch in Ordnung aus.

Interessanterweise wird aber irgendwo (common, oder sonstwo) $global_mysqli_link überschrieben. Such bitte Dateiübergreifend danach und poste die Ergebnisse (ohne dbwrapper.php).

Autor:  Kyria [ Do 18 Apr, 2019 16:40 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Also, irgendwie finde ich außer in der dbwrapper nichts in der Richtung. o.o

Vielleicht gucke ich auch total falsch. :(

Aber ich wünsche auf jeden Fall ein schönes verlängertes Wochenende und schöne Ostern. :)

Autor:  Eliwood [ Do 18 Apr, 2019 18:36 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Du solltest nichts ändern während man dir zu helfen versucht. Deine source.php quittiert nun mit einem Fehler, das war vorhin nicht. Zudem unterdrückt dein Template den Link zur Source UND hat das Copyright entfernt. Das ist beides nicht okay.

Hast du eine Dateiübergreifende Suche gemacht, oder von Hand geschaut? Notepad++ kann das z.B..

Autor:  Kyria [ So 21 Apr, 2019 12:42 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Ich hab nichts geändert an diesem Server, das hab ich mir nicht getraut, auch wenn mir die Fehler selber schon aufgefallen sind. :(

Ja ich weiß, ich war auch gerade dabei es wieder in die Templates einzubauen, aber da kam dann das Update dazwischen.

Mit Notepad++ und Datenübergreifend, jap. Aber es wurde nix gefunden.. das irritiert mich, hab auch nochmal auf der Seite geguckt, wo ich die Veränderungen nachempfunden habe. Da ist zumindest in der Common auch nichts zu finden.

*seufz* tut mir leid das es so kompliziert ist.

Autor:  Kyria [ Di 23 Apr, 2019 11:11 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Oh mir muss diese Source.func.php durch die Lappen gegangen sein, denn die hat mit dem ysql_escape_string probleme. :(

Autor:  Kyria [ Sa 27 Apr, 2019 10:23 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Ich hab das Problem der Source behoben, ich hoffe es ist noch genug Geduld für mein Problem da? :(

Autor:  Eliwood [ So 28 Apr, 2019 15:14 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Ein paar Dinge die mir auffallen:
- Der Code verwendet nach wie vor viele array-Schlüssel ohne Anführungszeichen.
- Das Login leitet auf die list.php weiter, obwohl die nirgendwo steht. Was steht beim Testcharakter in der Datenbank in der Spalte "restorepage"?
- Herumnavigieren scheint den Zähl-Parameter nicht zu ändern, das deutet auf ein Problem mit dem Session-Management hin.

Autor:  Kyria [ So 28 Apr, 2019 16:18 ]
Betreff des Beitrags:  Re: Update zu PHP 7 (Kyria)

Also das mit der list.php hatte ich schon vorher.

Aber.. es ist tatsächlich ein Problem mit der Session gewesen.. in der common.php

Ich hab auf dem Tester einfach jede Datei nach einander drauf gemacht und dann bei der common.php Vergleiche gezogen.

PHP:
//session_register("session");
session_name('TimesOfMysterySession');
session_start();

function register_global(&$var){
@reset($var);
while (list($key,$val)=@each($var)){
global $$key;
$$key = $val;
}
@reset($var);
}
$session =& $_SESSION['session'];


Hier war der Fehler.. ich habe das rot markierte nicht dabei gehabt. :(

Danke aber für deine Hilfe!

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/