Fehlermeldung nach Update auf 3.1

  • Moin,

    ich habe gerade meinen Blog von WP3.0 auf 3.1 geupdatet, allerdings bekomme ich nun folgende Fehlermeldung

    Code
    [B]Fatal error[/B]:  Cannot redeclare username_exists() (previously declared in /www/htdocs/abc/forum/wp-united/wp-functions.php:163) in [B]/www/htdocs/abc/wordpress/wp-includes/user.php[/B] on line [B]1301[/B]

    In meinem Blog habe ich auch ein phpBB-Forum integriert mit Hilfe von WP-United, an der angezeigten Fehlerstelle endet folgender Code-Snippet.

    Code
    function username_exists( $username ) {
        if ( $user = get_userdatabylogin( $username ) ) {
            return $user->ID;
        } else {
            return null;
        }
    }

    Ich hoffe es gibt da irgendwelche Problemlösungen, leider habe ich vergessen vor dem Update ein Backup zu machen.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Fatal error: Cannot redeclare username_exists() (previously declared in /abc/forum/wp-united/wp-functions.php:163) in
    /abc/wordpress/wp-includes/user.php on line 1301

    du könntest die beiden Funktionen vergleichen

    /abc/forum/wp-united/wp-functions.php Zeile 163
    ~/wordpress/wp-includes/user.php Zeile 1301

    Sollte der Rückgabewert identisch sein kannst du den "redeclare" Fehler mit

    PHP
    if (!function_exists('username_exists')) {
     function username_exists( $username ) {
    .
    .
    }
    }

    verhindern.

    Wenn die Rückgabewerte der Funktionen nicht identisch sind, musst du eine Funktion umbennen (auch die Funktionsaufrufe in der Anwendung)

    Hoffe die Antwort hilft dir weiter

    ralf

    Mit offenen Augen träumen

  • Ok, danke, in wp-functions habe ich dann folgendes

    Ich habe in php noch nicht so den Einblick, aber in diesem Falle wäre es ja dann identisch oder?

    Wo müsste ich dann die von dir gepostete if-Funktion einsetzen?

  • Was hast du an meiner Antwort nicht verstanden?

    Mit offenen Augen träumen

  • Ok, danke war mir nicht ganz sicher..

    Allerdings tun sich danach eine Reihe von 4-5 weiteren Fehlermeldungen auf, die lassen sie mit dieser if-Funktion leider nicht so ganz bändigen.

    Zum Beispiel in Zeile 1312

    user.php

    PHP
    function email_exists( $email ) {
        if ( $user = get_user_by_email($email) )
            return $user->ID;
    
    
        return false;
    }

    Habe es da auch schon mit der if-Funktion probiert, danach kommt dann wieder die nächste Fehlermeldung, danach die nächste und die nächste und irgendwann startets dann wieder bei einem "eigentlich" behobenen Fehler.

  • Benutzt du die Standard HTML Meta Tags von Wordpress?
    Wenn ja, probier mal das Meta Tag next und prev. zu entfernen.

    PHP
    remove_action('wp_head', 'start_post_rel_link', 10, 0 );
    remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);


    Ich hab da so eine Vermutung :)

  • beachte *immer* nur die erste Fehlermeldung. Alle weiteren Meldungen von PHP können / sind die Folge der ersten Meldung.

    Welche Meldung erhälst du und was verstehst du an dieser Meldung nicht?

    Vielleicht können wir dir dann hier weiter helfen.

    Evtl. helfen die auch die faq's von php weiter
    http://www.php-faq.de/ch-errors.html

    ralf

    Mit offenen Augen träumen

  • user.php

    PHP
    function email_exists( $email ) {
        if ( $user = get_user_by_email($email) )
            return $user->ID;
    
    
        return false;
    }

    Die Rückgabewerte der beiden Funktionen ist gleich. Nur die eine Funktion läuft auch in älteren WP Versionen.


    PHP
    global $wp_version;
        if ( ((float) $wp_version) < 2.5 ) { // only needed for older WPs
            global $wpdb;
            $email = addslashes( $email );
            return $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_email = '$email'");
        }

    Ist deine WP-Version kleiner als 2.5 dann ist eine Datenbankabfrage notwendig... Da Deine Version eine aktuelle Version ist benötigst du dies nicht.

    Hoffe die Antwort hilft dir weiter

    ralf

    Mit offenen Augen träumen

  • Ok, die erste Fehlermeldung die ich erhalte wurde ja bereits mit der if-Funktion mit den ersten Posts gelöst.

    Danach taucht dann wieder selbiger Fehler an der von dir zitierten Stelle auf

    Code
    [B]Fatal error[/B]:  Cannot redeclare email_exists() (previously declared in /www/htdocs/abc/forum/wp-united/wp-functions.php:185) in [B]/www/htdocs/abc/wordpress/wp-includes/user.php[/B] on line [B]1325[/B]

    Müsste ich an dieser Stelle im Grunde genommen, dann nicht auch einfach die if-Funktion einfügen?

    Sprich so:

    PHP
    if (!function_exists('email_exists')) {
    function email_exists( $email ) {
        if ( $user = get_user_by_email($email) )
            return $user->ID;
    
    
        return false;
    }
    }

    Wenn ja, danach erhalte ich dann noch folgende Fehler

    Code
    [B]Fatal error[/B]:  Cannot redeclare wp_insert_user() (previously declared in /www/htdocs/abc/forum/wp-united/wp-functions.php:216) in [B]/www/htdocs/abc/wordpress/wp-includes/user.php[/B] on line [B]1534[/B]

    danach

    Code
    [B]Fatal error[/B]:  Cannot redeclare wp_update_user() (previously declared in /www/htdocs/abc/forum/wp-united/wp-functions.php:386) in [B]/www/htdocs/abc/wordpress/wp-includes/user.php[/B] on line [B]1587[/B]

    Wenn ich das richtig verstanden habe, beseitige ich diese Fehler, indem ich auch dort die if-Funktion anpasse und anwende oder?

    Danach erhalte ich dann noch folgende Fehlermeldung

    Code
    [B]Parse error[/B]:  syntax error, unexpected $end in [B]/www/htdocs/w00cd68f/wordpress/wp-includes/user.php[/B] on line [B]1634[/B]

    Allerdings weiß ich jetzt nicht mehr so recht weiter, denn in Zeile 1634 endet das Dokument.


  • Müsste ich an dieser Stelle im Grunde genommen, dann nicht auch einfach die if-Funktion einfügen?

    Ja - du verhindert das erneute laden der Funktion mit

    PHP
    if (!function_exists('name_der_funktion')) {


    Sprich so:

    PHP
    if (!function_exists('email_exists')) {
    function email_exists( $email ) {
    ....
    }
    }

    ja - richtig.



    Wenn ja, danach erhalte ich dann noch folgende Fehler

    Code
    [B]Fatal error[/B]:  Cannot redeclare wp_insert_user()

    danach

    Code
    [B]Fatal error[/B]:  Cannot redeclare wp_update_user()


    Wenn ich das richtig verstanden habe, beseitige ich diese Fehler, indem ich auch dort die if-Funktion anpasse und anwende oder?

    eine Funktion oder Klasse darf nur einmal im System vorhanden sein.

    PHP Handbuch
    http://de2.php.net/manual/de/


    Danach erhalte ich dann noch folgende Fehlermeldung

    Code
    [B]Parse error[/B]:  syntax error, unexpected $end

    Allerdings weiß ich jetzt nicht mehr so recht weiter, denn in Zeile 1634 endet das Dokument.

    es wurde vermutlich eine if Abfrage nicht richtig geschlossen

    PHP
    if (expression) {
    statement
    
    
    }
    PHP
    if (expression) 
    statement
    
    
    }

    http://php.net/manual/de/control-structures.if.php


    Viel Glück

    ralf

    Mit offenen Augen träumen

  • Alles klar, hatte tatsächlich übersehen eine if-Funktion ordentlich zu schließen, allerdings bleiben weiterhin die Fehler mit dem wp_update_user, wp_insert_user und wp_create_user

    Wenn die Funktionen nur einmal enthalten sein dürfen, soll ich sie dann aus einer der beiden Dokumente entfernen?

    Ich habe die drei Funktionen in der user.php jetzt einfach mal ausgeklammert, nun erreiche ich auch endlich wieder meinen Blog ohne Fehlermeldung, es sollte aber trotz der ausgeklammerten Funktion weiterhin alles funktionieren oder?
    Die Funktionen bestehen ja weiterhin in der anderen php-Datei.

    Und nochmal ein Danke für die Hilfe! :wink:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!