CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
23.09.2005, 06:50:12
|
Anfänger
|
|
Registriert seit: Sep 2005
Beiträge: 4
|
|
$_SERVER['HTTP_REFERER'] Problem
hallo,
ich habe ein Problem mit einem Seite-empfehlen Script, das frei im Netz steht.
Ich habe dies mit einem Link von der Seite, die empfohlen werden soll, eingebunden. Es öffnet sich dann eine neue Seite, die empfehlen.php heisst, auf der werden Name, Empfänger etc. eingetragen.
Wenn der User dies korrekt einträgt, funzt es prima, macht er bei der Email-Adresse oder beim Namen einen Fehler, wird empfehlen.php aktualisiert und der Fehler angezeigt. Das ist auch gut, aber das Problem ist, dass sich dann das empfehlen.php selbst empfiehlt. Die ursprüngliche URL wird also nicht weitergegeben.
Hier der Codeschnipsel, in dem die URL übergeben wird:
if (strpos($recommendMessage, "[REFPAGE]") !== FALSE) {
if (!isset($_SERVER['HTTP_REFERER']))
$recommendMessage = str_replace("[REFPAGE]", "(Referrer Unavailable)", $recommendMessage);
else
$recommendMessage = str_replace("[REFPAGE]", $_SERVER['HTTP_REFERER'], $recommendMessage);
}
Kann mir jemand weiterhelfen? Die weiterzugebende URL darf einfach nicht beim Aktualisieren überschrieben werden.
Ich hoffe, ich habe das klar formuliert, bin ein PHP-Newbie, kann in geringem Masz PHP lesen und weiss ungefähr, was passiert, mehr leider nicht.
Grüsse Ute
|
23.09.2005, 08:31:16
|
Anfänger
|
|
Registriert seit: Sep 2005
Beiträge: 82
|
|
AW: $_SERVER['HTTP_REFERER'] Problem
Pack den Referer in eine Variable und gib sie in einem hidden-tag weiter.
zb.:
$referer = $_POST['referer'];
if ($referer == "") {
$referer = $HTTP_REFERER;
}
//in der form
<input type="hidden" name="referer" value="<?= $referer; ?>">
Gruß,
Stevie B.
|
23.09.2005, 10:11:25
|
Anfänger
|
|
Registriert seit: Sep 2005
Beiträge: 4
|
|
AW: $_SERVER['HTTP_REFERER'] Problem
hallo Stevie,
ich bin grad dabei, es auszuprobieren, habe noch ein paar kleine Probs, wenns nicht klappt, stelle ich mal den gesamten Code rein.
Wie gesagt, hab nicht die PHP Kenntnisse ...
Grüsse Ute
|
23.09.2005, 11:10:04
|
Anfänger
|
|
Registriert seit: Sep 2005
Beiträge: 4
|
|
AW: $_SERVER['HTTP_REFERER'] Problem
hallo Stevie,
ich hab alles Mögliche ausprobiert, krieg es aber nicht hin. Kannst Du mal drüberschauen und sagen, wo was hinsoll?
Hab z.B. Deinen php-Schnipsel eingefügt, alle $recommendMessage in $referer umgewandelt, das auch in die "globals" übernommen etc.
Übrigens habe ich auch ausprobiert, die URL textarea in ein input umzuwandeln, wie Du es besschrieben hast, aber dann wird garnix übergeben.
Grüsse Ute
<?php
$numFriends = 2;
$webmasterEmail = "xyz@abc.de";
$sendNotification = 1;
$subject = "Seiten - Empfehlung von [SENDER_NAME] ([SENDER_EMAIL])";
$recommendMessage = <<<EOD
[REFPAGE]
EOD;
$customMessage = <<<EOD
EOD;
$sendAsHtml = 0;
error_reporting(E_ERROR); // only stop for critical errors
/* start main */
if(!isset($_POST["action"])) {
show_form();
} else {
//begin error checking
if(trim($_POST['senderName']) == "") {
$error[] = "Sie haben Ihren Namen nicht eingefügt.<br>";
}
$_POST['senderEmail'] = trim($_POST['senderEmail']);
if(!isValid($_POST['senderEmail'])) {
$error[] = "Bitte überprüfen Sie Ihre Email - Adresse.<br>";
unset($_POST['senderEmail']);
}
$validRecips = check_valid($_POST['friend']);
if($validRecips == FALSE) {
$error[] = "Bitte überprüfen Sie die Empfänger Email - Adresse(n).<br>";
}
if($error) {
echo "\n";
foreach($error as $oneError) {
echo "$oneError<br>\n";
}
echo "\n";
echo show_form();
} else { //no error
$subject = str_replace("[SENDER_NAME]", $_POST['senderName'], $subject);
$subject = str_replace("[SENDER_EMAIL]", $_POST['senderEmail'], $subject);
$message = trim($_POST['recommendMessage']) . "\n\n" . "\n\n" . $_POST['customMessage'] . "\n\n\n_______________________________________________________________ _____\n"
. $_POST['senderName'] . " hat Ihnen diese Nachricht geschickt von http://www.xyz.de";
if($_POST['toself'] == TRUE) {
array_push($validRecips, $_POST['senderEmail']);
}
$content = ($sendAsHtml == TRUE ? "text/html" : "text/plain");
$message = stripslashes($message);
$headers = "From: " . $_POST['senderName'] . " <" . $_POST['senderEmail'] . ">\r\n";
$headers .= "Content-Type: $content";
foreach($validRecips as $recip) {
$friends .= $recip . " ";
@mail($recip, $subject, $message, $headers);
echo "Nachricht gesendet an $recip<br>\n";
}
if($sendNotification) {
$nMessage = trim($_POST['recommendMessage']) . "\n\n" . $_POST['senderName'] . " (" . $_POST['senderEmail'] . ") " . $_SERVER['REMOTE_ADDR'] . " gesendet an " . count($validRecips) . " friends ($friends).";
@mail($webmasterEmail, "Seitenempfehlung", $nMessage, "From: $webmasterEmail");
}
}
}
function check_valid($list)
{
global $errorCode;
$numElements = sizeof($list);
$goodEmails = array();
foreach($list as $single) {
if(isValid($single)) {
$goodEmails[] = $single;
}
}
if(!empty($goodEmails)) {
return array_unique($goodEmails);
} else {
return FALSE;
}
}
function show_form()
{
global $numFriends, $validRecips, $recommendMessage, $customMessage, $title;
$senderName = (!isset($_GET['sn']) ? $_POST['senderName'] : urldecode($_GET['sn']));
$senderEmail = (!isset($_GET['se']) ? $_POST['senderEmail'] : urldecode($_GET['se']));
echo "<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n"
."<input type=\"hidden\" name=\"action\" value=\"submit\">\n"
."<table border=0 align=\"center\" cellpadding=0 cellspacing=0>\n"
."\t<tr>\n"
."\t\t<td>Ihr Name:</td><td><input type=\"text\" name=\"senderName\" value=\"$senderName\" size=30 class=\"input1\"></td>\n"
."\t</tr>\n"
."\t<tr>\n"
."\t\t<td>Ihre Email:</td><td><input type=\"text\" name=\"senderEmail\" value=\"$senderEmail\" size=30 class=\"input1\"></td>\n"
."\t</tr>\n";
for($i = 1; $i <= $numFriends; $i++) {
echo "\t<tr>\n\t\t<td>Email Empfänger $i:</td><td><input type=\"text\" name=\"friend[]\" value=\"".$validRecips[$i - 1]."\" size=30 class=\"input1\"></td>\n\t</tr>\n";
}
if (strpos($recommendMessage, "[REFPAGE]") !== FALSE) {
if (!isset($_SERVER['HTTP_REFERER']))
$recommendMessage = str_replace("[REFPAGE]", "(Referrer Unavailable)", $recommendMessage);
else
$recommendMessage = str_replace("[REFPAGE]", $_SERVER['HTTP_REFERER'], $recommendMessage);
}
echo "\t<tr>\n"
."\t\t<td colspan=2 class=\"none\"><textarea name=\"recommendMessage\" cols=66 rows=2 readonly onFocus=\"this.blur()\" class=\"input1\">$recommendMessage</textarea></td>\n"
."\t</tr>\n"
."\t<tr>\n"
."\t\t<td colspan=2><br>Persönliche Nachricht<br><textarea name=\"customMessage\" cols=66 rows=5 class=\"input1\">$customMessage</textarea></td>\n"
."\t</tr>\n"
."\t<tr>\n\t\t<td colspan=2><input type=\"checkbox\" name=\"toself\"> Kopie der Nachricht per Email an Sie schicken<br><br></td>\n\t</tr>\n"
."\t<tr>\n\t\t<td colspan=2 align=\"center\"><input type=\"submit\" value=\"senden\" class=\"input2\"> <input type=\"reset\" value=\"löschen\" class=\"input2\"></td>\n\t</tr>\n"
."\t<tr>\n\t\t<td colspan=2><br>Die hier eingegebenen Daten werden von uns nur dazu verwendet, die Email in Ihrem Namen zu versenden. Es erfolgt keine Weitergabe an Dritte und keine Speicherung Ihrer Angaben.<br><br><a href=\"javascript:window.close()\" class=\"link1\">Fenster schliessen</a></td>\n\t</tr>\n"
."</table>\n"
."</form>\n\n";
}
function isValid($email)
{
return eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $email);
}
?>
|
23.09.2005, 11:44:14
|
Anfänger
|
|
Registriert seit: Sep 2005
Beiträge: 82
|
|
AW: $_SERVER['HTTP_REFERER'] Problem
Hallo Ute,
Zitat:
Zitat von ute
<?php
$numFriends = 2;
$webmasterEmail = "xyz@abc.de";
$sendNotification = 1;
$subject = "Seiten - Empfehlung von [SENDER_NAME] ([SENDER_EMAIL])";
|
Dort drüber die Deklarationen der Variablen
Code:
$referer = $_POST['referer'];
if ($referer == "") {
$referer = $HTTP_REFERER;
}
Zitat:
Zitat von ute
echo "<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n"
."<input type=\"hidden\" name=\"action\" value=\"submit\">\n"
...
|
Das mal so:
Code:
echo "<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n"
."<input type=\"hidden\" name=\"action\" value=\"submit\">\n"
."<input type=\"hidden\" name=\"referer\" value=\"".$referer."\">\n"
...
Zitat:
Zitat von ute
if (strpos($recommendMessage, "[REFPAGE]") !== FALSE) {
if (!isset($_SERVER['HTTP_REFERER']))
$recommendMessage = str_replace("[REFPAGE]", "(Referrer Unavailable)", $recommendMessage);
else
$recommendMessage = str_replace("[REFPAGE]", $_SERVER['HTTP_REFERER'], $recommendMessage);
}
|
Das ändere mal in:
Code:
if (ereg("[REFPAGE]",$recommendMessage)) {
if ($referer == "")
$recommendMessage = str_replace("[REFPAGE]","(Referer Unavailable)",$recommendMessage);
else
$recommendMessage = str_replace("[REFPAGE]",$referer,$recommendMessage);
}
Gruß,
Stevie B.
|
23.09.2005, 14:39:41
|
Anfänger
|
|
Registriert seit: Sep 2005
Beiträge: 4
|
|
AW: $_SERVER['HTTP_REFERER'] Problem
hallo Stevie,
es tuts nicht ... entweder bekomme ich Referrer Unavailable oder überhaupt nix angezeigt. Die Deklaration der Variablen habe ich unterhalb der "globals" angeordnet, sonst tats garnicht (und bei den globals $referer mit aufgenommen).
Ich habe mind. 10 Varianten ausporbiert, Deine Angaben nochmal verändert ... das Ding will nicht
Grüsse Ute
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:18:43 Uhr.
|