Brauche 3 Zeilen PHP Code (gibt Belohnung)

Yves

Angesehenes Mitglied
Hallo,
ich kann so gut wie kein PHP und breuchte 3 Zeilen Code. Wäre nett wenn mir das jemand kurz schreiben könnte. Gibt für denjenigen auch eine kleine Belohnung. Wahlweise 10-15 Social Bookmarks oder ein 1-2 gute non spammed do follow PR Blog Kommentar Möglichkeiten von mir.

Also.

Ich habe 2 PHP Dateien.

index.php
footer.php

In der Footer.php soll eine Variable mit dem Wert: 3333 sein.

Was ich möchte: wenn die index.php aufgerufen wird soll sie schauen ob der Wert 3333 immer noch in der Footer PHP steht. Wenn dies der Fall ist einfach nichts machen. Falls der Wert nicht mehr da ist soll die weitere ausführung der index.php unterbunden werden und es soll eine Nachricht kommen. Copy Right Verletzung, ausführen nicht möglich.

Wäre toll wenn mir da jemand weiterhelfen kann.

Gruß Yves
 
Wäre noch wichtig zu wissen, wie die Seiten verbunden sind und wie sie geladen werden.
Sind index und footer in einem Frameset eingebunden? Wenn ja, läd das Frameset beide Frameseiten gleichzeitig oder läd die Footer die Index nach?
 
Das ist nicht so einfach. Ich vermute der Code von index.php sieht so aus.

<?php

...
..

include( 'footer.php' );

?>

So lange du footer.php nicht included hast, kannst auch nicht auf Variablen zugreifen, die dort definiert sind.
Es gibt ein Workaround, das empfehle dir aber nicht.

<code>
<?php

ob_start();

...
/*

Inhalt und Logik der index.php


*/
..

include( 'footer.php' );

$content = ob_get_contents();
ob_end_clean();

if( $myvar != 3333 ){

/*
Warnung
*/

}else{

echo $content;

}


?>

</code>
 
schade dachte das geht einfach, will bei meinen Wordpress Themes meine Footer Links besser schützen darum geht es mir. Ich könnte es zwar mit ioncube machen aber das haben ja nich alle Webhoster. Im endefeckt soll Index.php nur funktionieren wenn meine Links noch im Footer sind. Obfuscate zwar mit base64 aber das bringt ja nich viel gibt überall decrypter.
sad.gif



Edit: Warum ist das Workaround nicht zu empfehlen?
 
Hallo Ives, der angesprochene Workaround ist nicht zu empfehlen, da es wenig sinnvoll ist, den Programmcode aus der footer.php bei jedem Aufruf der index.php auszuführen, nur um die Ausgabe in den Ausgabe-Puffer zu kippen und eine Variable zu überprüfen.

Der Ansatz von TSc - die Prüfung auf Datei-Ebene zu erledigen - ist da IMHO schon sinnvoller. Ich habe im Hinblick auf Deine Anforderung (Linkschutz in WP-Themes) etwas weiter gedacht und folgendes implementiert. Der Code für die index.php öffnet die footer.php im selben Verzeichnis, parsed alle Links aus dem Dokument und bildet für jeden eine simple Prüfsumme.

Anschließend wird die Liste der Prüfsummen mit einer weiteren Liste, die die Prüfsummen der zu überprüfenden Links enthält, verglichen. Bei jeder Übereinstimmung wird der Wert der Prüfsumme zu einem Zähler addiert, um so am Ende festzustellen, ob alle Links vorhanden sind. Wenn alle vorhanden sind, passiert nichts - falls nicht, stirbt das Script per wp_die() mit der gewünschten Meldung.

CODE
function dopesum ( $url )
{
$p = 23; for ( $x = 0; $x < strlen($url); $x++ ) $p += ord ( $url[$x] ) * 5; return $p;
}

$cnt = file_get_contents ( dirname(__FILE__) . base64_decode ( "L2Zvb3Rlci5waHA=") );
$warn = "Q29weXJpZ2h0IFZlcmxldHp1bmcsIGF1c2Z1ZWhyZW4gbmljaHQgbW9lZ2xpY2gu";
$smap = array ( 7443 );
$sall = 0; $found = 0;
$match = array();
$temp = array();

foreach ( $smap as $s ) $sall += $s;
$regex = '/href=((["\']?)([^ ]*)\2).*?>/i'&#59;
$r = preg_match_all ( $regex, $cnt, $match );

foreach ( $match[3] as $m ) $temp[] = dopesum ( $m );
foreach ( $smap as $s )
if ( in_array ( $s, $temp ) )
$found += $s;

if ( $sall != $found )
wp_die( base64_decode ( $warn ) );



Kurze Anleitung:
- Den Code nach Möglichkeit am Anfang der index.php vom Theme platzieren (kann auch noch geschrumpft werden; sollte btw an anderer Stelle auch funktionieren, allerdings könnte die Ausgabe dann im Falle von entfernten Links etwas komisch aussehen)
- Die Meldung, die ausgegeben wird, wenn die Links fehlen, ist in der Variable $warn gespeichert, allerdings Base64. (Hintergrund: damit man die Überprüfung nicht sofort via search-in-files mit dem Ausgabe-Text findet...)
- in dem array $smap werden die Prüfsummen der Links hinterlegt, deren Existenz geprüft werden soll. Um weitere Prüfsummen (Berechnung folgt) einzufügen, bitte folgende Syntax verwenden:


CODE
$smap = array ( sum1, sum2, sum3 );



- Die Prüfsummen können entweder von Hand berechnet werden ( Startwert 23; ASCII-Wert jedes Zeichens der URL mit 5 multiplizieren und zur Prüfsumme addieren), oder durch Verwendung von folgendem kleinen Code-Schnipsel. Einfach in eine Datei packen, zB mksum.php und in folgender Form im Browser aufrufen: /mksum.php?url=http://www.deinlink.tld


CODE
function dopesum ( $url )
{
$p = 23; for ( $x = 0; $x < strlen($url); $x++ ) $p += ord ( $url[$x] ) * 5; return $p;
}

if ( isset ( $_GET['url'] ) )
{
echo "u= " . $_GET['url']. "<br/>";
echo "s= " . dopesum ( $_GET['url'] ) . "<br/>";
}



Vielleicht kannst Du damit ja etwas anfangen, bei Fragen/Problemen gerne auch PN.

Gruß
Christian

 
vielen dank Christian werde das mal ausprobieren heute oder morgen. Genau sowas hab ich gesucht da es kein PHP Laie einfach entfernen kann.
 
Zurück
Oben