[PHP] Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

Dieses Thema im Forum "Webentwicklung" wurde erstellt von t-low, 25. Februar 2011 .

Schlagworte:
  1. 25. Februar 2011
    Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    Hallo liebe Freunde,
    ich bin vor Jahren einmal auf der Seite http://2sound.de auf eine nette Idee gestoßen, die ich gleich sehr interessant fand. Und zwar gab es Dort unter der Aufschrift 'Backlinks' eine Liste der Seiten, die 2sound zuletzt verlinkt haben. Ich wollte damals in einem Webseitenprojekt ein solches Script ebenfalls einbauen und hab einfach mal danach gegoogelt, denn die Idee backlinks zu belohnen in der Hoffnung, das deswegen mehr gesetzt werden gefiel mir. als ich es damals nicht fand, hab ich mir innerhalb der nächsten Tage ein solches Script geschrieben. Und dann bin ich JAhre später auf die Idee gekommen, das vllt andere dieses Script auch ganz interessant finden können und die Idee 'ich verlink dich, weil du mich verlinkst' gut findern werden. Also hab ich mich drangemacht und mein script, was schon etwas ausführlicher geworden war allgemeiner zu gestalten und verständlicher zu machen und habe es vor ein paar Monaten hochgeladen, mich aber nicht weiter drum gekümmert und wollte es nun ein bisschen verbessern..

    nun würde ich gerne etwas Feedback haben. Meint ihr, so etwas braucht die menschheit nicht, fehlen euch eventuell Funktionen oder habe ich sicherheitslücken übersehen...
    http://www.backlinkscript.da.ru

    edit: natürlich is auch feedback zu dem webauftritt gewünscht. ich bin halt n entwickler, kein designer.. :O
     
  2. 25. Februar 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    mögliche sql-injection in log.php zeile 43: $host ist ungefiltert
    siehe auch: zeile 45, 56, 59 und 61

    merke: $_SERVER['HTTP_REFERER'] ist von außen manipulierbar
     
  3. 25. Februar 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    ah, ok, danke. würde da der einfache aufruf $host = mysql_real_escape_string($host); reichen?
    ich meine, es sollte ja, wenn $host nicht durch den nutzer manipuliert wurde KEIN zeichen drin vorkommen, was maskiert wird. oder gibt es da ausnahmen?
    deshalb gibt es folgende mögkichkeiten:
    PHP:
    if ( $host  !=  mysql_real_escape_string ( $host ))  //breche ab, da manipuliert wuede
    ODER eindach das oben genannte. dabei sollte dann doch egal sein, ob magic_quotes_gpc aktiviert ist oder nicht, oder?
     
  4. 28. Februar 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    ich hab das jetzt mal wie oben beschrieben gefixt... (wenn das denn reicht)..
    ist noch jemandem was aufgefallen, oder war es das?
     
  5. 28. Februar 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    Nur aus Interesse: Darf ich fragen, wie viel Erfahrung du als Entwickler hast? Machst du es beruflich; oder einfach ab und an in der Freizeit?


    Das Script mag zwar funktionieren (habs nur kurz überflogen), aber schöner Quelltext ist das in meinen Augen nicht. Zumindest gibt es einige Dinge, die man verbessern könnte:

    • Bedingungen mit und ohne eckigen Klammern: Sehr unübersichtlich. Und mit den Einrückungen kommt man schnell durcheinander. Beispiel: show.php Zeile 29ff - Das while() wird immer ausgeführt, die Einrückung lässt aber vermuten, dass es nur ausgeführt werden soll, wenn $backfollow TRUE ist
    • show.php Zeile 29 - if($backfollow = true) ist eine Zuweisung von TRUE zu $backfollow und KEINE Bedingung. Bedingungen benötigen 2 oder 3 Gleichheitszeichen.
    • Langer Spaghetti-Code mit Vermischung von HTML und PHP - Das mag ich persönlich überhaupt nicht. Unten im Spoiler habe ich mal eine etwas abgeänderte Version angehängt (von info.php) - die finde ich schonmal um einiges besser lesbar.
    • Zeilenbegrenzung: info.php Zeile 13 - Eine einzelne Zeile mit 324 Zeichen. Das ist einfach nicht lesbar.
    • Wie wäre es denn z.B. mit Objektorientierter Programmierung? Du könntest beispielsweise eine Klasse erstellen, welche die DB-Verbindung selbst verwaltet und den Referer auswertet. In der show.php hättest du dann möglicherweise nicht viel mehr als:
      PHP:
      <? foreach ( $object -> getCurrentBacklinks () as  $backlink ):  ?>
          <li><a class="backlink" href="<?= $backlink [ 'host' ];  ?>"><?= $backlink [ 'name' ];  ?></a></li>
      <?  endforeach;  ?>
    • In der config.php kann man eine Blacklist von Hosts eintragen. Mit regulären Ausdrücken fände ich das Feature um Welten besser. Warum soll ich bitte alle Top-Level-Domains von Google eintragen, nur weil ich Google-Referrer nicht akzeptieren will? Es gibt ziemlich viele Google-Hosts. Stattdessen wäre ein "Verbiete alle Hosts von Google mit beliebiger TLD" viel angenehmer.


    *) Beispielcode zu info.php:
    Spoiler
    PHP:
    <? php
        
    if (!  $backinc ) {
            require_once 
    'config.php' ;
        }
    ?>

    <h1>Backlinks</h1>

    <?  if ( $backorder  ==  1 ):  ?>
        Die letzten <?= $backmaxlong ?> Seiten, die uns verlinkt haben:
    <?  else:  ?>
        Unsere <?= $backmaxlong ?> h&auml;ufigsten Verlinker:
    <?  endif;  ?>

    <b>Um in dieser Liste zu erscheinen</b>, musst du einen Link auf eine beliebige Seite von 
    <u><?= $backurl ?></u> setzen. Es wird dann automatisch ein Backlink gesetzt, wenn 
    <?  if ( $backorder  ==  1 ):  ?>
        jemand auf diesen Link klickt.
    <?  else:  ?>
        du unter den h&auml;figsten <?= $backmaxlong ?> verweisenden Webseiten bist.
    <?  endif;  ?>
    <br>

    <?  if ( $backmainpage ):  ?>
        Der Backlink wird immer auf die Hauptseite deiner Website gesetzt, das bedeutet, 
        das keine Unterordner verlinkt werden.<br>
    <?  endif;  ?>

    <?  if ( $backget ):  ?>
        Du kannst allerdings per GET-Aufruf bestimmen, welche Unterseite verlinkt werden soll. 
        Setzt du einen Link auf <u>$backurl/?backlink=/site.php</u> wird die site.php deiner Seite verlinkt.<br>
    <?  endif;  ?>

    Wenn du dich ebenfalls f&uuml;r deine Links bedanken willst, kannst du dieses Script auf 
    <a href="http://www.backlinkscript.da.ru" title="Backlinkscript - Automatische R&uuml;cklinks">http://www.backlinkscript.da.ru</a> herunterladen.

    Kurz gesagt:
    An dem Script gibt es meiner Meinung nach noch Verbesserungspotenzial, ich habe nur einige Beispiele genannt. Wie viel davon sinnvoll ist, hängt allerdings von deinen Vorkenntnissen ab.
    Wenn das Script so funktioniert, ist es ja in Ordnung. Ich persönlich würde es allerdings nicht in meine Webseiten einbauen.

    Ich hoffe, dass ich dir damit einige Anregungen geben konnte, was man noch so ändern könnte. ;-)

    p.s. Auf deiner Webseite habe ich gerade testweise ein komplett leeres Feedback-Formular abgeschickt. Du solltest vorm Abschicken die Eingaben trimmen.
     
  6. 28. Februar 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    hi, ho..
    erst einma danke für deine meinung... um deine frage zu beantworten: ich mache das NICHT beruflich aber schon seit jahren hobbymäßig...
    die objektorientierung ist eig eine gute idee, dass das anders gelöst ist, liegt eig nur daran, dass ich das script nach und nach zusammengeschrieben habe und nicht groß umändern wollte um es hochzuladen... und am anfang war es so klein, dass so was nicht nötig war..
    die zuweisung war wohl ein flüchtigkeitsfehler, danke..
    und wie ich grad gemerkt hab, war mein feedbackscript, das ich in 3 minuten zusammengekleistert hab, eh n bisschen fehlerhaft.. das sollte ich nioch fixen.. danke.
    ich mach mich mal ans säubern und fixen... was sagt ihr zur nützlichkeit? findet ihrs total unnütz,o der meint ihr, die arbeit lohnt sich??

    edit:
    ich hab mich auch mal an die verbesserung der blacklist gemacht? ist es das, was du meinst??
    http://www.backlinkscript.da.ru/index.php?p=Hilfe#konfig
     
  7. 1. März 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    ich bin mal so frei

    zeile 30 ersetzen mit folgendem code:
    PHP:
    // *.google.* -> (?:[^\.]+\.)*google\.[^\.]+
    $black  preg_replace ( '/(?<!\*)\./' '\.' $black );
    $black  preg_replace ( '/^\*\./' '(?:[^\.]+\.)+' $black );
    $black  preg_replace ( '/\.\*$/' '[^\.]+' $black );
    $black  preg_replace ( '/^\(!([^\)]+)\)/' '(?<!$1)' $black );
    $black  preg_replace ( '/\(!([^\)]+)\)$/' '(?!$1)' $black );
    $black  preg_replace ( '/\((?<!\?:)([^\)]+)\)/' '(?:$1)' $black );

    // google.de -> (?:[^\.]+\.)*google.de
    if ( substr ( $black 0 2 ) !==  '*.' )
        
    $black  '(?:[^\.]+\.)*'  $black ;
        
    if (
    preg_match ( "/^ $black $/i" $host ))
    dann kannst du in der blacklist vereinfachte reguläre ausdrücke verwenden z.b.:
    Code:
    google.de -> sperrt alle subdomains von google und google.de selbst
    *.google.de -> sperrt nur alle subdomains aber google.de selbst nicht
    google.* -> sperrt alle möglichen domains deren name "google" lautet. also google.de, google.com usw...
    *.google.* -> sperrt alle subdomains deren host-name "google" lautet. also www.google.de oder www.google.com, aber google.de bzw. google.com darf weiterhin drauf (blödsinnig aber möglich ^^)
    (!www|bot).google.de -> erlaubt alle subdomains von google.de bis auf www.google.de und bot.google.de
    google.(!com|de) -> erlaubt alle domains mit google als host bis auf google.de und google.com
    (www|bot).googe.de -> erlaubt nur www.google.de oder bot.google.de
    google.(de|com) -> erlaubt nur google.de oder google.com
    ----

    wenn das zu viel ist kannst du auch gleich echte reguläre-ausdrücke verwenden
     
  8. 2. März 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    ok. danke. das is noch eleganter als meine lösung von vorgestern..
    ich bau dann deinen code bals mal ein.
     
  9. 17. Juni 2011
    AW: Feedback, Ideen oder 'Was soll der Müll' - Backlinkscript

    Hi Leute..
    ich hab mal versucht eure leslichkeitshinweise zu befolgen und habe jetzt endlich eine neue version herausgebracht. ich habe daabei noch neue funktionen eingebaut, einmal ein admin-panel und eine testfunktion, die überprüft, ob ein link wirklich exestiert..
    könnt ihr dazu nochmal feedback geben?
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.