Avatar billede foxladi Nybegynder
18. maj 2004 - 14:31 Der er 9 kommentarer og
1 løsning

Variabler følger ikke med over

Goddag

Jeg har lavet en 404-side, som skal kunne bruges til at sende besked til webmaster (mig), når der er et broken link på siden. Jeg har brugt et lignende script, der virker, men sender besked automatisk. Her ville jeg gerne gøre afsendelsen betinget af, at man klikker på knappen.

Desværre går netop dette galt. 404-siden virker - men når jeg klikker og vil sende fejlen, får jeg en e-mail uden de to links, der ellers skulle stå i den.

Jeg har følgende scripter (med <?php og ?> på de rigtige steder):

$url_original=$HTTP_REFERER;

<p>Desværre! Siden <span style="color:red"><?php echo $REDIRECT_URL ?></span> findes ikke.</p>

(Her ovenfor virker det godt nok.)

<?php

if ($_REQUEST ['Form_Sent'] == 'True')
  {
    Send_Mail();
  } else {
      print "

<p>Du har måske tastet forkert osv osv.
<form method=\"post\" action=\"fejl.html\">
<input type=\"hidden\" name=\"Form_Sent\" value=\"True\">
<input type=\"submit\" name=\"send\" value=\"Send besked til webmaster\">
</form>";
}

function Send_Mail(){
$modtager="Britt Malka <britt@malka.it>";
$subject="Fejlmeddelelse fra Gittehoegedal.dk";
mail($modtager, $subject, "Fejl fra siden $url_original som ikke henviser til $REDIRECT_URL");
print "<p>Tak for din henvendelse osv.</p>";
}

Hverken $url_original eller $REDIRECT_URL sendes videre.

Kan der gøres noget ved problemet?
Avatar billede chries Nybegynder
18. maj 2004 - 14:34 #1
prøv:

$url_original = $_SERVER['HTTP_REFERER'];
Avatar billede chries Nybegynder
18. maj 2004 - 14:38 #2
eller hvis de vises på 404 siden, tilføj dem som hidden
<input type=\"hidden\" name=\"orginal_url\" value=\"$url_original\">
<input...
Avatar billede hmortensen Nybegynder
18. maj 2004 - 14:38 #3
Du skal lige ha variablerne med ind i funktionen.

function test($var1, $var2) {
$var3 = $var1." og ".$var2;

return $var3;
}

test("Jens", "Kaj"); // Returnere Jens og Kaj

$navn1 = "Jens";
$navn2 = "Kaj";
test($navn1, $navn2); // Returnere Jens og Kaj

Kig lidt på det.
Så bør du selv kunne løse dit problem
Avatar billede foxladi Nybegynder
18. maj 2004 - 16:09 #4
Tak for jeres hurtige svar. Nu har jeg rodet med det - afbrudt af et par hasteopgaver, øv - men jeg kan stadig ikke få det til at virke. Dog én gang skete der noget, da jeg havde prøvet hindu_skp's bud.

function Send_Mail($url_original, $REDIRECT_URL){
$modtager="Britt Malka <e-mail-adresse>";
$subject="Fejlmeddelelse";
mail($modtager, $subject, "Fejl fra siden $url_original som ikke henviser til $REDIRECT_URL");
print "<p>Tak for din henvendelse osv.</p>";
}
Send_Mail($url_original, $REDIRECT_URL);

Dette giver mig tre mails, hvoraf den første er rigtig, den anden mangler én af variablerne og den tredje mangler begge.

Teksten skrives desuden to gange på hjemmesiden.

Jeg går ud fra, at det er fordi jeg både har mail() og Send_Mail, men ... jeg har prøvet forskellige muligheder og er alligevel ikke kommet videre herfra.

Hvad er den indlysende metode?
Avatar billede foxladi Nybegynder
18. maj 2004 - 16:16 #5
Jeg glemte at skrive, at den også kommer med en fejlmeddelelse på de to variable i function Send_Mail:

Warning: Missing argument 1 for send_mail() in /fejl.html on line 45
Warning: Missing argument 2 for send_mail() in /fejl.html on line 45
Avatar billede chries Nybegynder
18. maj 2004 - 16:21 #6
hindu har et i det med funktionen, prøv:

$url_original=$HTTP_REFERER;

<p>Desværre! Siden <span style="color:red"><?php echo $REDIRECT_URL ?></span> findes ikke.</p>

(Her ovenfor virker det godt nok.)

<?php

if ($_REQUEST ['Form_Sent'] == 'True')
  {
    Send_Mail($url_original, $REDIRECT_URL);
  } else {
      print "

<p>Du har måske tastet forkert osv osv.
<form method=\"post\" action=\"fejl.html\">
<input type=\"hidden\" name=\"Form_Sent\" value=\"True\">
<input type=\"submit\" name=\"send\" value=\"Send besked til webmaster\">
</form>";
}

function Send_Mail($url_original, $url_redirect){
$modtager="Britt Malka <britt@malka.it>";
$subject="Fejlmeddelelse fra Gittehoegedal.dk";
mail($modtager, $subject, "Fejl fra siden $url_original som ikke henviser til $url_redirect");
print "<p>Tak for din henvendelse osv.</p>";
}
Avatar billede foxladi Nybegynder
18. maj 2004 - 16:44 #7
Meget bedre! Tak. Ja, det var indlysende, når man først ved det.

Desværre er den ikke helt rigtigt.

Jeg går på siden ikkelink.html og klikker på linket, der skulle føre til siden million.html, som ikke findes.

I e-mailen står der, at der er "Fejl fra siden /million.html som ikke henviser til" - tomrum.

Så den sætter nogle variable ind, men den er gået et skridt for langt :-(
Avatar billede tomat-ketchup Nybegynder
18. maj 2004 - 17:08 #8
Prøv:

$url_original = $_SERVER['HTTP_REFERER'];
$url_redirect = $_SERVER['REDIRECT_URL'];
Avatar billede foxladi Nybegynder
18. maj 2004 - 17:17 #9
Nej, desværre, tomat-ketchup, samme resultat :-(
Avatar billede foxladi Nybegynder
23. juli 2004 - 16:38 #10
Lukker spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester