Support » Allgemeine Fragen » Seit WP 5.5: Notice „undefined variable: user_ID“

  • Seit update auf WP 5.5. kommt auf meiner Gästebuch Seite (comments_guestbook.php) die PHP Notice: „undefined variable: user_ID“
    Wordpress läuft unter PHP 7.4

    Ich bin etwas ratlos wo ich ansetzen soll bei der Korrektur??
    Wäre sehr dankbar für Hilfe!

    Hier ein Auszug aus dem Code:

    <?php if ( have_comments() ) : ?>
    	<h3 id="comments" style="margin-left:3em; width: 720px" ><?php comments_number('0 Kommentare', '1 Kommentar', '% Kommentare' );?></h3>
    	<p class="aligncenter" style="font-size:0.8em;"><a href="#tragein"> Neuen Eintrag ins G&auml;stebuch schreiben  » </a></p>
    	<div class="pagination">
    <?php paginate_comments_links(
    array('prev_text' => '&lsaquo;&lsaquo;', 'next_text' => '&rsaquo;&rsaquo;')
    ); ?>
    </div><p>&nbsp;</p>
    	<!--<ul class="commentlist">-->
    	<ol class="commentlist" style="list-style-type: none;">
    
    <?php 
    /******  $walker anstatt 'walker' => 0 brachte Fehler ******/
    wp_list_comments(array('reverse_top_level' => true,'walker' => 0, 'callback' => 'myown_comments',));?>
    
    		
    	</ol>
    	
    	<div class="pagination" style="margin-top:-8em">
    <?php paginate_comments_links(
    array('next_text' => '&rsaquo;&rsaquo;', 'prev_text' => '&lsaquo;&lsaquo;' )
    
    ); ?>
    
    </div>
     <?php else : // Falls es noch keine Kommentare zum Beitrag gibt ?>
    	<?php if ('open' == $post->comment_status) : ?>
    	 <?php else : // comments are closed ?>
    		<p>Kommentare sind geschlossen.</p>
    <?php endif; endif; ?>
    
    <p>&nbsp;</p><p>&nbsp;</p>
    
    <?php if ('open' == $post->comment_status) : ?>
    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    <p>You must be <a href="<?php echo site_url(); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.</p>
    <?php else : ?>
    <div style="margin-left: 8em">
    <a name="tragein"></a><form action="<?php echo site_url(); ?>/wp-comments-post.php" method="post" id="commentform" style="color: #ffff00;">
    
    <?php if ( $user_ID ) : ?>
    
    <p>Logged in as <a href="<?php echo site_url(); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo site_url(); ?>/wp-login.php?action=logout" title="Log out of this account">Log out &raquo;</a></p>
    
    <?php else : ?>
    
    <p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="26" tabindex="1"  class="mail" />
    <label for="author">Name <?php if ($req) echo "(erforderlich)"; ?></label></p>
    • Dieses Thema wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Thread-Starter treibstoff

    (@treibstoff)

    ja habe ich,danke.
    auch in der Master List nichts passendes gefunden für
    „PHP Notice: Undefined variable: user_ID in /homepagesxxxxxx/comments_guestbook.php on line 102“

    Allenfalls Hinweise auf ebensolche Fehlermeldungen, die in bestimmten Plugins zu suchen waren…
    Das trifft hier aber nicht zu.

    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.

    Das ist ein Problem mit dem Gästebuch und somit solltest du den Support des Herstellers bemühen.
    Hier eine Notlösung:
    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    ändern in
    <?php if ( get_option('comment_registration') && empty($user_ID) ) : ?>

    <?php if ( $user_ID ) : ?>
    ändern in
    <?php if ( !empty($user_ID) ) : ?>

    Thread-Starter treibstoff

    (@treibstoff)

    Danke für Deine Mühe, bscu.
    Das hat geholfen…und die Eintragsfunktion läuft auch weiterhin einwandfrei.

    Für das Gästebuch gibt es keinen Hersteller.
    Das hab ich mal aus der abgewandelten Kommentarfunktion von WP erstellt….abgewandelte comment.php…
    Und es läuft bislang (auch wenn es nicht grade viel genutzt wird ) einwandfrei…und vor allem bis auf ganz wenige Aussnahmen in vielen Jahren: spamfrei.
    Insofern hatte ich bislang lange Jahre kein Auge mehr darauf werfen brauchen….

    Warum aber Notlösung??

    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.

    Wenn es ein Plugin gewesen wäre, dann wären die Änderungen beim nächsten Update wieder verloren gegangen und du hättest hoffen müssen, dass der Hersteller den Fehler beseitigt hat.

    Thread-Starter treibstoff

    (@treibstoff)

    bscu…Danke….da kann ich ja beruhigt sein. 🙂

    warum aber nun empty ($user_ID) bzw. !empty ($user_ID)??
    Dachte zum testen, ob eine Variable nicht leer ist reicht: !$user_id

    undefined variable: user_ID

    D.h., dass PHP diese Variable überhaupt nicht kennt und deshalb mit empty prüfen.

    Thread-Starter treibstoff

    (@treibstoff)

    danke!
    Vor WP 5.5 ging die Variable aber durch.
    Muss damit nicht an Php liegen sondern an WP code??

    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.

    Ich vermute mal, dass die Meldung schon länger getriggert wurde, allerdings wurde sie nicht angezeigt. Das kann mehrere Ursachen haben. Zum einen kann das eine PHP-Einstellung auf dem Server sein, aber auch eine Einstellung in WordPress bzw. in der wp-config.php. Aber eigentlich ist das egal, denn wenn sauber programmiert worden ist, dann gibt es solche Meldung erst gar nicht 😉

    Thread-Starter treibstoff

    (@treibstoff)

    debug.log hatte ich eigentlich immer am laufen….wie du schon sagst egal.

    Mit PHP 7.4 (von 7.2) auf das ich nach WP 5.5 ebenfalls upgedated hatte, kamen noch einige mehr Meldungen…auf depreciated class-phpmailer bzw. class-smtp in den includes…oder get_bloginfo noch mit „siteurl“, die ich alle schon abgearbeitet & entsprechend im Code geändert habe mit Erfolg.

    Allerdings bekomme ich auch folgende Notice & Warnings, wo ich keine Idee habe, wonach ich suchen soll:
    Notice: Trying to access array offset on value of type bool in /homepages/…/wp-admin/includes/class-wp-privacy-policy-content.php on line 96

    Notice: Trying to access array offset on value of type bool in /homepages/…/wp-admin/includes/class-wp-privacy-policy-content.php on line 97

    Warning: Cannot modify header information – headers already sent by (output started at /homepages/…/wp-admin/includes/class-wp-privacy-policy-content.php:96) in /homepages/../wp-admin/admin-header.php on line 9

    Line 96 & 97:
    ‘plugin_name’ => $data[‘plugin_name’],
    ‘policy_text’ => $data[‘policy_text’],

    Ich habe alle Plugins zwischenzeitlich inaktiviert….ohne Erfolg…ebenso alles was an Funktionen, die ich in meiner functions.php habe….auch ohne Erfolg.

    Google ich danach, sind diese Meldungen immer mit Plugins verbunden.
    Insofern weiß ich nicht wie weiter nach der Fehlerursache suchen könnte.

    Vielleicht kannst Du da auch helfen…oder ich mache einen neuen Thread auf.
    lieben gruss

    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.
    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.
    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.

    Die ersten beiden Meldungen sind ja Hinweise. Sind zwar nicht schön, aber auch nicht dramatisch. Da es sich um eine Datei aus dem WordPress-Core Bereich handelt, würde ich die Finger davon lassen und PHP so einstellen, dass Notice-Meldungen unterdrückt werden. Man kann davon ausgehen, dass die WordPress-Entwickler diese kleine Macke beseitigen werden. Wenn du jetzt selber die PHP-Datei änderst, wird sie beim nächsten Update wieder überschrieben, macht also keinen Sinn.

    Die dritte Meldung ist ein Folgefehler, der von alleine verschwindet, wenn die Notice-Meldungen nicht mehr kommen.

    Thread-Starter treibstoff

    (@treibstoff)

    Ja…das sieht so aus…weil es weder mit meinem selbstgeschriebenen Thema zu tun hat, noch mit Plugins, noch mit dem was ich in der functions.php alles am laufen habe.
    Mich wundert nur, dass ich nichts über den Zusammenhang von „Trying to access array offset on value of type bool“ mit „class-wp-privacy-policy-content“ gefunden habe.
    Auch kein entsprechendes Ticket…..

    Bei der ganze Fehlersuche…hab ich immerhin noch mitbekommen, dass der Opcache bei mir gar nicht eingeschaltet war….Bei meinem Hoster, 1&1, musste ich das erst selber initalisieren….

    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.
    Thread-Starter treibstoff

    (@treibstoff)

    In diesem älteren Ticket wurden diese Fehler im Core erwartet:
    „PHP 7.4 introduces a „Trying to access array offset on value of type …“ warning for accessing null/bool/int/float/resource (everything but array, string and object) as if it were an array.“
    und
    „I expect more issues to be reported – both in Core as well as in plugins and themes – once PHP 7.4 is out and starting to be used for real.“

    https://core.trac.wordpress.org/ticket/47704

    Thread-Starter treibstoff

    (@treibstoff)

    hatte ebenfalls ein entsprechendes Ticket eröffnet:
    https://core.trac.wordpress.org/ticket/51084

    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.
    • Diese Antwort wurde geändert vor 2 Jahre, 7 Monaten von treibstoff.
Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Das Thema „Seit WP 5.5: Notice „undefined variable: user_ID““ ist für neue Antworten geschlossen.