Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
URL Übergabe [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
URL Übergabe


 
ute
17-09-2005, 15:18 
 
hallo,

ich habe ein Problem mit einem "weiterempfehlen" Script. Es ist ein freies, im Netz erhältliches Script, das ich angepasst habe.

Ich habe auf die Seite, die empfohlen werden soll, ich nenne sie mal start.php, einen Link eingebaut, der eine neue Seite weiterempfehlen.php (das o.g. Script) öffnet.

Dort kann ich dann die Felder ausfüllen (Name, Email, Email Empfänger, persönlichen Text) und das Ganze abschicken. Das funzt prima, in der Mail steht die URL der empfohlenen Seite (start.php) ect.

Mache ich bei der Email-Eingabe auf weiterempfehlen.php einen Fehler, kriege ich eine Fehlermeldung und den Hinweis, dies zu korrigieren. So weit so gut.

Das Problem ist: habe ich einen Eingabefehler gemacht, wird weiterempfehlen.php aktualisiert und der Link von start.php wird durch den auf weiterempfehlen.php ersetzt. Das ist aber nicht im Sinne des Erfinders...

Wie kann ich nun das Script ergänzen, dass es bei Aktualisierung die ursprünglich zu übergebene URL start.php beibehält und nicht sich selbst empfiehlt?

Grüsse Ute

 
Schnoop
17-09-2005, 15:25 
 
Mit einem Hidden Field :)

 
ute
17-09-2005, 15:33 
 
hallo Schnoop,
das ist leider nicht die Lösung, denn es geht nicht darum, dass jemand von aussen etwas ändert.
Grüsse Ute

 
Schnoop
17-09-2005, 15:38 
 
Wieso :confused:

Du füllst das Hiddenfeld mit der URL füllst wo der Klick erfolgte.

Wenn es jetzt jetzt aktualisiert wird, guckst doch ob das Hiddenfield gesetzt ist und übernimmst es.

 
Taz
17-09-2005, 15:42 
 
Oder Speicher die Url doch einfach in einer session...
http://www.php.net/manual/de/ref.session.php

 
ute
17-09-2005, 15:44 
 
name=\"recommendMessage\" type=\"hidden\"

So sieht das input-Feld aus. $recommendMessage übernimmt die URL der Seite, von der aus ich den Link auf weiterempfehlen.php angeklickt habe. Wenn die Seite weiterempfehlen.php aktualisieren wird (wegen falschem Ausfüllen der Email-Felder), setzt $recommendMessage die URL von weiterempfehlen.php statt der ursprünglichen Seite ein.
Ob nun mit oder ohne hidden, an dem Schlamassel ändert sich nix.

Grüsse Ute

 
ute
17-09-2005, 15:47 
 
hallo TAZ,
hab mir grad die Session Seite angesehen ... puhhhhh ... gehts nicht einfacher?
Grüsse Ute
PS: Ich will doch nur, dass die einmal übergebene URL auch stehen bleibt, mehr nicht ...

 
Taz
17-09-2005, 15:47 
 
du must doch einfach nur überprüfen ob in dem hidden feld schon eine URL vorhanden ist, wann ja, die alte URL nehmen... und nicht wieder einen neue :)

 
ute
17-09-2005, 15:49 
 
hallo Taz,
hast Du dafür vielleicht einen Codeschnipsel? Bin keine PHP Programmiererin :(
Grüsse Ute

 
Taz
17-09-2005, 15:50 
 
ok, hier mal ein beispiel:
<?php
if(isset($_POST['recommendMessage']) && !empty($_POST['recommendMessage'])) {
$HiddenForm = $_POST['recommendMessage'];
}
else {
$HiddenForm = 'Neue URL';
}
?>

 
ute
17-09-2005, 15:58 
 
hallo Taz,
sehe ich das richtig?: Wenn eine URL gesetzt ist und die URL nicht leer ist, schreibe URL, ansonsten setze eine von mir festegelegte URL ein?
recommendMessage bleibt ja nicht leer, wenn das Script zwangsweise aktualisert wird, sondern es übernimmt die URL von sich selber ..
ich probiers mal, mal gucken, was passiert
Grüsse Ute

 
ute
17-09-2005, 16:09 
 
hallo Taz,
ich glaube, wir reden aneinander vorbei.
Hier mal der Quelltext, wie er richtig aussehen soll und es auch ist:

<td class="none"><input name="recommendMessage" type="hidden" readonly onFocus="this.blur()">http://127.0.0.1/nachrichten/start.php</td>

Und wenn das Script, in dem die Email-Adressen eingetragen werden, aktualisiert wird, weil ein Fehler beim Eintragen einer Mailadresse passiert ist, sieht das Gleiche so aus:

<td class="none"><input name="recommendMessage" type="hidden" readonly onFocus="this.blur()" >http://127.0.0.1/incl/empfehlen.php</td>

Was heisst: Die URL, die oben übergeben wurde, ist unten weg und es wird mir die des Scripts angezeigt, was ich ja nicht weiterempfehlen will.

Grüsse Ute

 
Schnoop
17-09-2005, 16:18 
 
???


<td class="none"><input name="recommendMessage" type="hidden" readonly onFocus="this.blur()" >h**p://127.0.0.1/incl/empfehlen.php</td>


Was ist das denn für ein Code?

 
ute
17-09-2005, 16:31 
 
Das ist der Quellcode, den das PHP Script generiert. Daran siehst Du, dass das Script auf einmal sich selber weiterempfiehlt, was ja nicht Sinn der Sache ist.

Grüsse Ute

 
Taz
17-09-2005, 17:40 
 
Und was meinst du was mit mit deinem geschriebenden HTML Quelltext anfangen können :confused:
Der Betreffenden PHP Quell-Code währe da vielleicht hilfreicher ;)

 
ute
17-09-2005, 18:10 
 
Na hier isser... Grüsse Ute

<?php
$numFriends = 2;
$webmasterEmail = "abc@xyz.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&uuml;gt.<br>";
}

$_POST['senderEmail'] = trim($_POST['senderEmail']);

if(!isValid($_POST['senderEmail'])) {
$error[] = "Bitte &uuml;berpr&uuml;fen Sie Ihre Email - Adresse.<br>";
unset($_POST['senderEmail']);
}

$validRecips = check_valid($_POST['friend']);

if($validRecips == FALSE) {
$error[] = "Bitte &uuml;berpr&uuml;fen Sie die Empf&auml;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;

$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&auml;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&ouml;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\">&nbsp;&nbsp;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\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"reset\" value=\"l&ouml;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);
}
?>

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:02 Uhr.