Wo eine neue PHP-Datei einbinden mit der sich Funktionen aufrufen lassen

  • Hallo,

    ich habe gerade eine neue PHP-Datei erstellt, in der ich die TB-URL aufrufen lassen möchte:

    PHP
    <?php trackback_url(display); ?>

    Beim Aufruf - klar, er kennt die Seite nicht, bekomme ich die Fehlermeldung:

    Zitat

    Fatal error: Call to undefined function trackback_url() in D:\Xampp\xampp\htdocs\fixmbr\wp-content\themes\fixmbr\tb.php on line 1

    Hat jemand eine Idee, wo ich die tb.php einbinden kann, damit ich mit ihr auch Funktionen aufrufen kann?

    Danke und Gruß

    Chris

    • 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

  • Ist das seine selbstgeschriebene Funktion oder wie?

    Falls nicht; dein Code ist falsch.

    PHP
    <?php trackback_url(); ?>


    muss es lauten.

    "Eine gut gestellte Frage ist schon halb beantwortet."

    Einmal editiert, zuletzt von jottlieb (24. Februar 2007 um 00:16)

  • Der Trackback-Spam nimmt immer mehr zu. Ich habe bereits die Trackback-Permalink-Struktur geändert (siehe auch hier). Im Moment ist es so, dass die Crawler hauptsächlich die Artikel-URL crawlen, dann "bekannte" Trackback-Möglichkeiten anhängen und gut. Durch die o. g. Änderung werden wir im Moment vom TB-Spam verschont.

    Andere Kollegen berichten aber, dass die Maßnahme nur kurz gehalten hat, sprich eine andere Lösung muss her.

    Die Idee ist folgende:

    Per Klick auf den Trackback-Link innerhalb der Sidebar - und ein Popup öffnet sich mit der TB-URL, die ich dann halt nochmal ändere - damit sind die Crawler endgültig raus.

    Bereits in der sidebar.php am Anfang:

    PHP
    <script type="text/javascript">
    function tback (url) {
     fenster = window.open(url, "fenster1", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes");
     fenster.focus();
    }
    </script>

    Sowie der Trackback-Link

    PHP
    <a href="javascript:tback('<?php bloginfo('url'); ?>/wp-content/themes/fixmbr/tb.php');"><strong>Trackback</strong></a>

    Das Popup öffnet sich, kein Problem, nur eben mit der "Fehlermeldung":

    Zitat

    Fatal error: Call to undefined function trackback_url() in D:\Xampp\xampp\htdocs\fixmbr\wp-content\themes\fixmbr\tb.php on line 1

    Ich hoffe, nun hab ich es verständlich ausgedrückt. :)

    Gruß

    Chris

  • Weiß jetzt nich ob ichs richtig versteh. Ich hab ein eigenes Script einfach in die sidebar.php im Themeordner eingebunden, also das script liegt auch dort. Dann so:

    HTML
    <?php
    require( dirname(__FILE__) . '/script.php' );
    ?>
    
    
    
    
    <?php echo $variable_aus_script.php; ?>

    Klappt wunderbar.

  • Sorry Olaf, ich versteh kein Wort - ich hoffe, ich hab mich da oben klar ausgedrückt, wo das Problem liegt. Da hilfst mir mit dem Codeschnippsel leider nicht.

    Trotzdem danke und Gruß

    Chris

  • hallo chris,

    dafür beschäftigst du dich am besten mal mit der plugin-erstellung. insbesondere ist hier der "trackback_post"-action-hook interessant. mit diesem action hook sowie einer entsprechenden filterung (entweder selbstgestrickt oder andere externe sachen (such mal nach bot-trap - auch wenn ich das nicht nutze) ) wirst du dort einen entsprechenden filter zusammenbauen können, der es dir ermöglichen wird die ganze geschichte ein wenig einzudämmen.

    der o.g. action-hook wird ausgeführt, wenn ein trackback-comment reinkommt.

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Ich habe ja nun jahrelang auch ein Forum geführt und frage mich gerade, was so schwer daran ist, eine Frage zu beantworten. Einem Hilfesuchenden ist bei der Frage, ob man ihm ein Auto leihen kann, nicht damit geholfen, nimm den Bus, eh zu Fuß, um es mal sinngemäß auszudrücken.

    jottlieb: Aksimet ist datenschutztechnisch und -rechtlich der größte Dreck. Ich habe auch nicht nach einem Spam-Tool gefragt. Auch Spam Karma, die Antwort brauch jetzt nicht kommen - weil auch danach habe ich nicht gefragt. Ich habe nicht umsonst diese Verlinkung mitgegeben:

    http://www.fixmbr.de/fight-against-spam-revolutions/

    Da steht einiges an Infos drin, wie ich z. B. zu Aksimet oder Spam Karma stehe. Wenn ein Hilfesuchender schon Infos mitbringt, sollte man die lesen.

    Arno Simon: Ich habe nicht einen blassen Schimmer, wovon Du da sprichst.

    Nochmal zu Erklärung, vielleicht habe ich mich ja zu schlecht ausgedrückt.

    Der Artikel wird aufgerufen. In der Sidebar steht der Hinweis, Du kannst nen Trackback setzen. Hinter dem Wort Trackback ist ein Link hinterlegt. Wenn der Lesende klickt, öffnet sich ein kleines Popupfenster. Es wird der Inhalt einer neu erstellten Datei - tb.php - aus dem Themes-Verzeichnis geladen, einfach nur mit dem Hinweis, die Trackback-URL lautet ....

    Das funktuiniert zur Zeit nicht, weil die tb.php nicht "ins System" eingebunden ist, und somit die Fehlermeldung kommt:

    Zitat

    Fatal error: Call to undefined function trackback_url() in D:\Xampp\xampp\htdocs\fixmbr\wp-content\themes\fixmbr\tb.php on line 1

    Ich wäre sehr dankbar, wenn genau auf dieses Problem jemand eine Antwort hätte - die sidebar2.php habe ich auch problemlos einbinden können, nur mit der tb.php klappt es halt nicht.

    Danke und Gruß

    Chris

    P.S. Ich bin wirklich für Eure Hilfe dankbar, aber ich frage nicht umsonst gezielt nach der Lösung dieses einen Problemes. ;-)

  • nun, das wird vielleicht darauf zurückzuführen sein - die etwas am ziel vorbei geschossene hilfe - das man, ich zumindest, den anfang zu flüchtig gelesen hat ;)

    werde ich mir gleich nochmal durchlesen, bissl geduld....

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Ja mei, nur noch mal zur Erklärung, ich verstand es umgekehrt ;)
    Das die Funktion aus deinem Script nicht gefunden würde, aber es ist ja eine aus dem Core die dem Script nicht bekannt ist, nochmals verzeiht mir die Störung :oops: :)

  • [FONT=Verdana]so wie ich das sehe, wird das von dir angestrebte nur mit einer zeile code nicht getan sein!

    du musst entweder noch diverse wp-quellen in deine tb.php einbinden, oder aber die von "trackback_url()" in der[/FONT] [COLOR=#000000][COLOR=#0000CC][FONT=Verdana] [/FONT][COLOR=black][FONT=Verdana]/wp-includes/comment-template.php genutzte funktionalität - inklusive DB-Zugriff etc. in deiner tb.php selbst abbilden.

    einzubinden sind für ersteres auf jeden fall /wp-config.php, /wp-includes/functions.php und /wp-includes/comment-template.php. da die aus der functions.php genutzte funktion get_option() wiederrum einen filter implementiert, ist es wahrscheinlich, das Du noch verhältnissmäßig viele weitere Sachen einbauen darfst, was ich jetzt aber so at hoc nicht weiter überprüfen werde bzw. überprüfen kann (habe auch noch anderes zu tun ;) ). um eine prüfung wirst Du IMHO aber kaum herum kommen, denn ich weiss nicht, welche funktionen letztlich alle die von dir gewünschte trackbackurl, noch im hintergrund durch diesen filter, beeinflussen und was du davon ggf. noch übernehmen bzw. was Du alles noch entsprechend mit einbinden musst.

    eigentlich währe es der sicherere weg alles was auf dem weg deiner prüfung vorkommt entsprechend mit einzubinden, was ich selbst aber auch noch nicht gemacht habe. kann sein das es auch schief läuft. wenn du's händisch nachbaust und deine tbu funzt irgendwan nicht mehr, musst du die prüfung nochmal durchführen und schauen was sich verändert hat.

    vG

    Arno[/FONT]
    [/COLOR][/COLOR] [/COLOR]

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • noch was: ich empfehle dir trotzdem den gang über ein plugin:

    mittels des oben angemerkten filters (siehe tburl-funktion und codex.wordpress.org zu plugin-filter-hooks) lieferst Du dann anstelle der eigentlich generierten trackback-url dein javascript-snappet aus und
    kannst dann - mit hoher wahrscheinlichkeit ohne später größere umbauten zu haben - aus deiner zusätzlichen php-datei den eigentlichen link, den du zuvor in eine eigene db-tabelle gespeichert hast, wieder ausliefern und musst dafür nur'nen db-zugriff realisieren. etwas ähnliches wird im captcha-plugin realisiert.

    vG

    arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Plugin, weißt Du, was Du da "verlangst"... :D

    Das ist nun wirklich zu hoch für mich.

    Ich schau mir mal die andere Lösung an, wahrscheinlich kann ich meine Idee aber knicken. ;-)

    Danke :)

    Chris

  • Nu haste dich aber verrannt :???:
    Das steht auf deiner Seite

    HTML
    <div style=&quot;display: none;&quot; id=&quot;ghost&quot;>
      http://www.fixmbr.de/trackback-spam/tb_fixmbr/</div>

    Ob nun JS an/off. Denkst du die Bots halten sich ans display: none?

  • IMHO passt das nun - die Mischung macht es. In Verbindung mit der Änderung der Permalinkstrukur zu tb_fixmbr kommt da kein Bot mehr drauf, da genau diese URL jetzt nicht mehr hinter dem Wort Trackback hinterlegt ist. Es ist eine URL wie viele die im Quelltext auftauchen.

    Gruß

    Chris

  • Was ich damit sagen wollte ist, dass du es es Spamschutz verkaufts, es aber maximal eine Spielerei ist.

    Zitat

    Sobald die Crawler anfangen, die Trackback-URL direkt zu scannen, und nicht nur die Artikel-URL und bekannte Trackback-Möglichkeiten einfach anhängen, wäre die Lösung sinnlos. Und so musste ein zusätzlicher Schutz her. Der ist nun gegeben.


    IMHO ist es auch nicht besonders userfreundlich, deine Stammkunden werden wissen wo sie den Trackback finden. Die Nichtstammkunden würden sie wohl eher im Formular vermuten, sie dort nicht finden, und ob sie dann noch mal hochscrollen um sie in der Sidebar zu suchen....!?

    Konstruktive Kritik, verstehst ;)

  • IMHO dummes Zeuch Olaf,

    was heißt Spamschutz? Jawohl die Tatsache, dass ich OHNE jegliches Spamtool keinen Spam mehr bekomme - und das ist seit Tagen der Fall. Und wer sich im Internet bewegt, und die dort mehrfach angezeigte Trackback-URL nicht findet, sollte ganz schnell den PC ausmachen und nie wieder anmachen.

    Ich weiß wovon ich da rede - lies oben verlinkten Artikel, ich arbeite da nicht erst seit gestern dran, dann wirst auch Du es verstehen.

    Gruß und schönen Sonntag.

    Chris

Jetzt mitmachen!

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