Thread Verfasser: Herr_Wunderlich
Thread ID: 1308
Thread Info
Es gibt 24 Beiträge zu diesem Thema, und es wurde 8054 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
Fehler beim Parsen - Advanced Online Panel
Herr_Wunderlich
Hallo, ich bin ein Neuling in Sachen PHPFusion. Ich nutze die Version 7.1 und habe heute das "Advanced Online Panel" eingebaut. Und bekomme nun folgenden Fehler:
Error!
Undefined index: user_web



if($data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span
          class=\'small\'>keine Angabe</span>";


Ich würde mich über Hilfe freuen. Viele Grüße und Danke.
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Die Fehlermeldung bedeutet, dass die Angabe user_web nicht vorhanden ist.

1.) Wurde das Benutzerfeld "Webseite" installiert?

Falls Ja, bitte das Addon anhängen.

-----------
Weiteres, mit 7.1 meinst du die PHP-Version oder die PHP-Fusion Version? Die aktuelle PHP-Fusion Version wäre 7.02.07 ..
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Herr_Wunderlich
Ich habe kein Addon mit der Bezeichnung installiert. Sollte ich das machen?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Wenn du unter "Administration -> Benutzer -> Benutzerfelder" das Benutzerfeld "Webseite (oder Homepage)" installierst, sollte die Fehlermeldung verschwinden.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Herr_Wunderlich
Ich konnte das Benutzerfeld dort hinzufügen aber die Meldung ist noch da. jetzt alledings mit folgendem Fehler:

Zitat

online_showbots = '".$_POST['showbots']."',

Bearbeitet von Herr_Wunderlich am 13. Juli 2017 10:47:38
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Fehlerlog auch geleert?

Weiteres bitte das Addon anhängen.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Herr_Wunderlich
Ich habe die Datei mal angehängt.

Vielen Dank für deine Geduld.
Herr_Wunderlich hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Betreffend des Fehlers

Zitat

online_showbots = '".$_POST['showbots']."'


Öffne die Datei advanced_online_panel_admin.php und suche in Zeile 39 nach folgenden

if(isset($_POST['update'])) {


Direkt darunter füge ein

$_POST['showbots'] = isset($_POST['showbots']) ? "1" : "0";



--------------------
Betreffend des Fehlers

Zitat

Undefined index: user_web


Öffne die Datei advanced_online_panel.php und suche in Zeile 107 nach folgenden

 if($data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span class=\'small\'>keine Angabe</span>";


Ersetzte dies durch folgendes

if (isset($data['user_web'])) {
 if($data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span class=\'small\'>keine Angabe</span>";
}


Bitte gerne :-)
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Herr_Wunderlich
Nach Änderung der Daeteien ergibt sich nun folgender Fehler in der infusions/advanced_online_panel/advanced_online_panel.php


echo "<span class=\"online_hotspot\" onmouseover=\"online_tooltip.show('".$avatar."<div align=\'right\' style=\'float: right; color:
          #".$color."\'><u>".$data['user_name']."</u><br /><span class=\'small\'>".getuserlevel($data['user_level'])."</span></div><hr /><span
          class=\'small\'>Status:</span><span class=\'small\' style=\'float: right;\'>".$lastseen."</span><br /><span class=\'small\'>Website:</span><span
          class=\'small\' style=\'float: right;\'>".$user_web."</span><hr /><span class=\'small\'>Mitglied seit:</small><span class=\'small\'
          style=\'float: right;\'>".date("d.m.Y - H:i", $data['user_joined'])."</span><br /><span class=\'small\'>Letzte Aktivit&auml;t:</span><span
          class=\'small\' style=\'float: right;\'>".date("d.m.Y - H:i", $data['user_lastvisit'])."</span>');\" onmouseout=\"online_tooltip.hide();\">";
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Sorry, dass war leider ein Flüchtigkeitsfehler meinerseits.

Suche nach folgenden Code (meine erste Ersetzung)

if (isset($data['user_web'])) {
 if($data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span class=\'small\'>keine Angabe</span>";
}


und ersetzte diesen durch folgendes

$user_web = "<span class=\'small\'>keine Angabe</span>";
if (isset($data['user_web'])) {
   if ($data['user_web'] != "") {
      $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30);
   }
}

Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli

Zitat

David schrieb:
Betreffend des Fehlers

Zitat

Undefined index: user_web


Öffne die Datei advanced_online_panel.php und suche in Zeile 107 nach folgenden

 if($data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span class=\'small\'>keine Angabe</span>";


Ersetzte dies durch folgendes

if (isset($data['user_web'])) {
 if($data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span class=\'small\'>keine Angabe</span>";
}

Diese Änderung sollte man in 1 Zeile zusammenfassen, um den Fehler wegen nicht gesetzter Variable $user_web zu vermeiden. Die Ersetzung sollte also besser so aussehen:

if(IsSet($data['user_web']) && $data['user_web'] != "") $user_web = trimlink(str_replace("http://", "", $data['user_web']), 30); else $user_web = "<span class=\'small\'>keine Angabe</span>";
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
Herr_Wunderlich
Vielen Dank für eure Hilfe. Jetzt scheint es Fehlerfrei zu sein Smile
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Jetzt wo du es sagst Systemweb, da hast du recht.

Wäre auch von Ladezeiten minimal schneller Smile
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli
@David:
Ja unsere Antworten haben sich überschnitten.
Im Prinzip funzt ja beides einwandfrei. Deine Variante ist übersichtlicher nachzuvollziehen, meine kurz und knapp Wink

Es hätte also völlig genügt, dem Original-Code das IsSet($data['user_web']) && hinzuzufügen :-)
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
TBR
Hallo zusammen
ich hab das gleiche Problem mit dem Panel, daher wollte ich statt die Website , das Geschlecht anzeigen lassen. Ich habe user_web gegen user_gender getauscht und bin damit natürlich kläglich gescheitert Sad

In den andere Ordnern war für mich nicht zu erkennen was die Spalte anspricht und hätte geändert werden müssen. Was hab ich übersehen?


Weiteres Problem, das Panel zeigt immer erst nach refresh der Seite dazu gekommene User als Online an, ist es umsetzbar dass alle 1-2 Minuten nur das Panel aktualisiert wird, bevor ich die ganze Seite so einstelle, dass die aktualisiert?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
Im Grunde genommen ist der Ansatz mit dem einfachen Austausch von user_web zu user_gender nicht so verkehrt. Ich denke jedoch dass du wohl bei der Ausgabe gescheitert bist?

Falls Ja, könnte der Ausgabecode zum Beispiel so aussehen (basierend auf deinem Profilfeld des anderen Forenthemas).

if (isset($data['user_gender'])) {
   $user_gender = ($data['user_gender'] == "1" ? "Weiblich" : "Männlich");
} else {
   $user_gender = "Keine Angabe";
}


Betreffend der Aktualisierung des Panels - Ja es ist möglich - Stichwort: AJAX. Allerdings, und das sag ich gleich, ist das für Laien schwer zu bewerkstelligen.
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
TBR
Ah, ich sehe schon meinen Denkfehler bzw. was ich nicht geändert habe.

Ich glaube, AJAX würde mir echt den Rest geben, dann bleibt das lieber so oder ich aktualisiere die komplette Seite. :D

Vielen Dank für deine Geduld und das du dein Wissen so selbstlos mit uns teilst, David.
Hab da schon ganz andere Erfahrungen in Foren gemacht.

So, hier noch mal die komplette Änderung (in bold), falls jemand die Zeile auch ändern möchte.


   if (isset($data['user_gender'])) {
   $user_gender = ($data['user_gender'] == "1" ? "Weiblich" : "Männlich");
} else {
   $user_gender = "Keine Angabe";
}

      echo "<li class='small' style='margin-bottom: 2px;'>";
      echo "<span class=\"online_hotspot\" onmouseover=\"online_tooltip.show('".$avatar."<div align=\'right\' style=\'float: right; color: #".$color."\'><u>".$data['user_name']."</u><br /><span class=\'small\'>".getuserlevel($data['user_level'])."</span></div><hr /><span class=\'small\'>Status:</span><span class=\'small\' style=\'float: right;\'>".$lastseen."</span><br /><span class=\'small\'>Geschlecht:</span><span class=\'small\' style=\'float: right;\'>".$user_gender."</span><hr /><span class=\'small\'>Mitglied seit:</small><span class=\'small\' style=\'float: right;\'>".date("d.m.Y - H:i", $data['user_joined'])."</span><br /><span class=\'small\'>Letzte Aktivit&auml;t:</span><span class=\'small\' style=\'float: right;\'>".date("d.m.Y - H:i", $data['user_lastvisit'])."</span>');\" onmouseout=\"online_tooltip.hide();\">";
      echo THEME_BULLET." <a href='".BASEDIR."profile.php?lookup=".$data['user_id']."' style='color: #".$color."'>";
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
adam824444
Ich weiß das der Thread sehr alt ist, aber ich habe mit der Funktion ein Problem und zwar zeigt es bei mir immer nur das Geschlecht Männlich,
weiß jemand wie auch Weiblich ausgegeben wird?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli
Das Benutzerfeld user_gender habe ich mal vor vielen Jahren auf die Schnelle erstellt. Ich weiß selbst nicht, warum ich damals die Geschlechter durchnummeriert hatte (1 war weiblich, 2 war männlich) statt einfach f oder m zu speichern.
Vermutlich hast du ein Benutzerfeld eines schlaueren Entwicklers, das die Geschlechter in f und m oder w und m speichert. In dem Fall gibt es niemals eine gespeicherte 1 beim Geschlecht und somit wird in deinem Script immer männlich angezeigt.

Versuche doch mal, statt der 1 ein f oder w zu verwenden, ob es dann klappt.
Du änderst also

 if (isset($data['user_gender'])) {
   $user_gender = ($data['user_gender'] == "1" ? "Weiblich" : "Männlich");
} else {
   $user_gender = "Keine Angabe";
}
einfach ab in

 if (isset($data['user_gender'])) {
   $user_gender = ($data['user_gender'] == "f" ? "Weiblich" : "Männlich");
} else {
   $user_gender = "Keine Angabe";
}
Wenn das nicht zum Erfolg führt dann versuche statt "f" mal das "w".

Alternativ könntest du auch in der Benutzertabelle der Datenbank prüfen, welche Werte in der Spalte "user_gender" eingetragen sind. Dann weißt du genau, welcher Wert dort gesetzt sein muss.

Inzwischen sollte man sicherheitshalber bei Geschlechterangaben auch "diverse" anbieten, sonst kommt noch jemand auf die Idee dich abzumahnen. Aber das ist wieder ein anderes Problem als dein aktuelles.
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
adam824444
Jetzt konnte ich als Admin als Männlich dargestellt werden aber Personen die als Frau angemeldet sind werden nun ebenfalls als Männlich ausgelesen?!

EDIT: In der Datenbank ist es auf 1 gestellt. Ganz gleich was ich mache, sobald ich den Wert ändere, ändert sich von allen Personen das Geschlecht in einem
durcheinander. Es ist so als ob durch zufallsprinzip das Geschlecht sich von selbst auswählt..!

EDIT2: Ich weiß nicht was passiert ist, aber als ich mich in die Datenbank eingeloggt habe hat der Wert 1 geschaltet, nun wird alles richtig dargestellt.
Ich versteh das nicht, sind hier BÖSE Mächte am Werk? IoI
Bearbeitet von adam824444 am 12. Februar 2022 16:58:10
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: