mysqli_sql Fehler beim Account Löschen (Bugs)

by fritzweisshart @, (121 days ago)
edited by fritzweisshart,

Hallo,

beim Löschen eines Accounts erhalte ich folgende Fehlermeldung.
Fatal error: Uncaught mysqli_sql_exception: Incorrect integer value: '' for column 'user_id' at row 1 in /home/w10500/web/public_html/wdw/forum/includes/functions.inc.php:1118 Stack trace: #0 /home/w10500/web/public_html/wdw/forum/includes/functions.inc.php(1118): mysqli_query(Object(mysqli), 'INSERT INTO mlf...') #1 /home/w10500/web/public_html/wdw/forum/includes/main.inc.php(268): user_online('10') #2 /home/w10500/web/public_html/wdw/forum/index.php(36): include('/home/w10500/we...') #3 {main} thrown in /home/w10500/web/public_html/wdw/forum/includes/functions.inc.php on line 1118
Das Forum ist anschließend von dem User, der seinen Accoung gelöscht hat, nicht mehr benutzbar. Mit der Zurück-Taste komme ich zur Seite Account Löschen index.php?mode=user&action=remove_account
alle anderen Versuche oder Links führen wieder zu obiger Fehlermeldung. Schuld an Letzterem ist das Session-Cookie


Der Account wird aber korrekt gelöscht.

Gruß Fritz

Avatar

mysqli_sql Fehler beim Account Löschen

by Micha ⌂, (121 days ago) @ fritzweisshart

Hi Fritz,

kannst Du den Test noch einmal wiederholen, wenn Du zuvor die Funktion user_online in der Datei functions.inc.php wie folgt ersetzt?


/**
 * counts the users that are online
 */
function user_online($user_online_period = 10) {
 global $connid, $db_settings, $settings;
 if (isset($_SESSION[$settings['session_prefix'].'user_id']) && is_numeric($_SESSION[$settings['session_prefix'].'user_id'])) {
  $user_id = $_SESSION[$settings['session_prefix'].'user_id']; 
  $ip = "uid_" . $user_id;
 }
 else {
  $user_id = 0;
  $ip = $_SERVER['REMOTE_ADDR'];
 }
 
 $diff = TIMESTAMP-($user_online_period * 60);
 
 @mysqli_query($connid, "DELETE FROM ".$db_settings['useronline_table']." WHERE time < ".$diff);
 list($is_online) = @mysqli_fetch_row(@mysqli_query($connid, "SELECT COUNT(*) FROM ".$db_settings['useronline_table']." WHERE ip= '".mysqli_real_escape_string($connid, $ip)."'"));
 if ($is_online > 0) 
  @mysqli_query($connid, "UPDATE ".$db_settings['useronline_table']." SET time='".TIMESTAMP."', user_id='".intval($user_id)."' WHERE ip='".mysqli_real_escape_string($connid, $ip)."'");
 else 
  @mysqli_query($connid, "INSERT INTO ".$db_settings['useronline_table']." SET time='".TIMESTAMP."', ip='".mysqli_real_escape_string($connid, $ip)."', user_id='".intval($user_id)."'");
}

Ist der Fehler dann weg?

/Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

mysqli_sql Fehler beim Account Löschen

by fritzweisshart @, (121 days ago) @ Micha

Hallo Micha,

passt. Der Fehler ist weg, auch alle Folgefehler, der Account wird korrekt gelöscht.

Gruß Fritz

Avatar

mysqli_sql Fehler beim Account Löschen

by Micha ⌂, (121 days ago) @ fritzweisshart

Hallo Fritz,

passt. Der Fehler ist weg, auch alle Folgefehler, der Account wird korrekt gelöscht.

Danke für Deine Rückmeldung. Ich habe die Änderung eingespielt, sodass sie in der nächsten version auch offiziell enthalten sein wird.

Beste Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

RSS Feed of thread