Automatische Weiterleitung

danke, thx euch allen.

EDIT:

ähm, error:

link: jw-lighting.bplaced.net/weiter.html und dann auf den link.

code der seite:

[code]

Leaving XYZ <?php

$allowed_urls=array(“http://www.jw-lighting.de.vu”, “http://jw-lighting.de.vu”, “http://www.jw-lighting.bplaced.net”, “http://jw-lighting.bplaced.net”, “”); // “” sorgt für Annahme bei leerem Referer

$url = $_GET[‘url’];
$ref = $_SERVER[‘HTTP_REFERER’];
$error = “”;
if(!preg_match("!http://([a-zA-Z0-9.]+).[a-z]{2,3}/i", $url))
$error = “Fehlerhafter ausdruck”;
else if(!in_array( substr($ref, 0, strpos($ref, ‘/’), $allowed_urls))
$error = “Keine externe Verlinkung!!!”;
else
echo "
?>

Leaving XYZ

<?php if($error) echo "

".$error."

"; else echo "

Sie werden in 3 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie hier

"; ?> [/code]

[quote=„hummer“][quote=„michi7x7“]
@hummer: Warum hast du eig. meinen kompletten Quelltext kopiert und ein paar Klammern gesetzt? Meiner hätte doch auch gereicht o.0[/quote]
Naja, dann schau dir deinen Quelltext nochmal genau an, da sind schon ein paar Fehler drin. Diese hab ich nur behoben. Und mit Klammern find ich es einfach übersichtlicher.[/quote]
Du hast recht… bei der Ausgabe des META-Tags war ich wohl gedanklich abwesend…
Klammern finde ich persönlich eher unübersichtlicher, ich rücke meist nur ein :wink:

aso, das liegt an dem meta tag… ich probier da mal was aus… :smiley: :smiley: :smiley:

das ganze ist mein Fehler :wink: Hab den Code auf der vorherigen Seite editiert :wink:

habe den code kopiert, selber fehler.

mein code:

[code]

Leaving XYZ <?php

$allowed_urls=array(„http://www.xyz.de“, „http://xyz.de“, „“); // „“ sorgt für Annahme bei leerem Referer

$url = $_GET[‚url‘];
$ref = $_SERVER[‚HTTP_REFERER‘];
$error = „“;
if(!preg_match("!http://([a-zA-Z0-9.]+).[a-z]{2,3}/i", $url))
$error = „Fehlerhafter ausdruck“;
else if(!in_array( substr($ref, 0, strpos($ref, ‚/‘), $allowed_urls))
$error = „Keine externe Verlinkung!!!“;
else
echo ‚‘;
?>

Leaving XYZ

<?php if($error) echo "

$error

"; else echo "

Sie werden in 5 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie hier

"; ?> [/code]

edit: fehler ist jetzt in zeile 15, nicht mehr in 16 :p

zu
[code]else if(!in_array( substr($ref, 0, strpos($ref, '/'), $allowed_urls)))[/code]

ich sollte echt schlafen gehen...

zu

ich sollte echt schlafen gehen…

in preg_match ist ein “!” statt ein “/” zu beginn des pattern

und?

der Code oben:
preg_match("!http://([a-zA-Z0-9.]+).[a-z]{2,3}/i", … )

richtig
entweder:
preg_match("/http://([a-zA-Z0-9.]+).[a-z]{2,3}/i", … )

oder:
preg_match("!http://([a-zA-Z0-9.]+).[a-z]{2,3}!i", … )

Ich geh schlafen…

sorry euch, das ich jetzt erst antworte… technische Probleme :unamused:

danke euch, das jetzt alle probs gelöst sind, Riesen, riesen Dank

:bp:

ach ja, @michi7x7, schon wieder wach? Dann wünsch ich:

:morgen: !coffee

jw-lighting

ich habe jetzt mal mit meinem php sechzehntelwissen ein paar ereiterungen ingebaut, die funktionieren auch soweit. nur habe ich jetzt dauerhaft den error „Falscher Ausdruck“, obwohl der link der selbe ist wie vorher, wo es funktionierte.

wie krieg ich das weg? ollte mich auf php.net schon schlau lesen, aber irgendwie versteh ich nicht so ganz, was die von einem wollen :ps:

hier der link:
jw-lighting.bplaced.net/weiter.html

hier der code:

[code]

<?php

$allowed_urls=array(„http://www.jw-lighting.bplaced.net“, „http://jw-lighting.bplaced.net“, „http://jw-lighting.de.vu“, „http://www.jw-lighting.de.vu“, „“); // „“ sorgt für Annahme bei leerem Referer

$url = $_GET[‚url‘];
$ref = $_SERVER[‚HTTP_REFERER‘];
$error = „“;
if(preg_match("!http://([a-zA-Z0-9.]+).[a-z]{2,3}!i", $url))
$error = „Fehlerhafter Ausdruck“;
else if(!in_array( substr($ref, 0, strpos($ref, ‚/‘), $allowed_urls)))
$error = „Keine externe Verlinkung!!!“;
else
echo ‚‘;

echo „Weiterleitung zu $url“;
?>

<?php echo "

Weiterleitung zu $url

";

if($error)
echo „

$error

“;
else
echo „

Sie werden in 5 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie hier
jw-lighting wünscht ihnen och einen schönen Tag

“;
?> [/code]

wäre euch dankbar, wenn ihr diesen (hoffentlich letzten) Fehler finden würdet, und mir sagt, was ich ändern muss.

Danke schon im vorraus

if(preg_match("!http://([a-zA-Z0-9\.]+)\.[a-z]{2,3}!i", $url)) $error = "Fehlerhafter Ausdruck";

bedeutet:
Wenn $url mit diesem Muster übereinstimmt, kommt die Fehlermeldung: “Fehlerhafter Ausdruck”.

Muss aber genau umgekehrt sein:
Wenn $url mit diesem Muster NICHT übereinstimmt, kommt die Fehlermeldung “Fehlerhafter Ausdruck”

Damit die Wirkung umgekehrt wird, setze ein “!” direkt vor vor “preg_match”:

if(!preg_match("!http://([a-zA-Z0-9\.]+)\.[a-z]{2,3}!i", $url)) $error = "Fehlerhafter Ausdruck";


btw: ich Würde aus dem {2,3} ein {2,4} machen, da es auch Domains mit .info oder .home gibt, wenn auch recht selten (es gibt sogar eine mit 6 Zeichen ^^" Top Level Domain).

mfg Balmung

thanks, langsam beginne ich php zu schecken, nächste anschaffung ist wohl ein php-buch. :ps:

leider doch wieder ein fehler… aber wir (hägrmm, IHR) schaffen das noch :wink:

link ist noch der selbe, code ist folgender:

[code]

<?php

$allowed_urls=array(“http://www.jw-lighting.bplaced.net”, “http://jw-lighting.bplaced.net”, “http://jw-lighting.de.vu”, “http://www.jw-lighting.de.vu”, “”); // “” sorgt für Annahme bei leerem Referer

$url = $_GET[‘url’];
$ref = $_SERVER[‘HTTP_REFERER’];
$error = “”;
if(!preg_match("!http://([a-zA-Z0-9.]+).[a-z]{2,3}!i", $url))
$error = “Fehlerhafter Ausdruck”;
else if(!in_array( substr($ref, 0, strpos($ref, ‘/’), $allowed_urls)))
$error = “Keine externe Verlinkung!!!”;
else
echo “”;

echo “Weiterleitung zu $url”;
?>

<?php echo "

Weiterleitung zu $url

";

if($error)
echo “

$error

”;
else
echo “

Sie werden in 5 Sekunden automatisch weitergeleitet, wenn sie nicht warten wollen klicken sie hier
jw-lighting wünscht ihnen och einen schönen Tag

”;
?> [/code]

fehler ist:

[quote][code]Warning: Wrong parameter count for substr() in /users/jw-lighting/www/weiterleitung.php on line 15

Warning: Wrong parameter count for in_array() in /users/jw-lighting/www/weiterleitung.php on line 15


Weiterleitung zu http://www.thomann.de

Keine externe Verlinkung!!![/code][/quote]

Ist das mein Code??? :unamused:

wird zu

sollte jetzt (hoffentlich) gehen…

du sorry, aber ich weiss nicht mehr von em das jetzt ist. ist aber ja auch wurst :ps:

funzt, nur weiterleiten tut es nicht :smiley: :unamused:

thanks nochmal

Das kannst du sicher selbst beheben :wink:

das habe ich shon wieder in

geändert.

dann leitet er aber immer auf “autoforward_target.html” um :astonished: