Avatar billede bonaparte Nybegynder
20. januar 2009 - 11:12 Der er 13 kommentarer og
1 løsning

Nyhedsbrev - form viker pludselig ikke?

Hejsa

Er der nogen der kan fortælle mig, hvorfor det med tilmelding og framelding på www.ptcc.dk ikke virker mere?

Jeg har lige fået ny pc og overflyttet alle mine filer, måske er der sket noget der? Synes bare ikke rigtigt jeg kan finde problemet..
Avatar billede bonaparte Nybegynder
20. januar 2009 - 13:19 #1
Mit problem er at jeg ikke kan få den til at redirect!
Avatar billede Slettet bruger
20. januar 2009 - 13:57 #2
Hej

Meningen er vel, at man skriver sin e-mail, markerer "Tilmeld" og klikker "Send", ikke sandt?
Bliver man så sendt hen til en side, hvor du har en kode til at gemme e-mailen i en database fx? Og denne side skulle man så straks dirigeres væk fra igen?

Bruger du fx ASP eller PHP til at gemme e-mailen og dernæst til redirect?

Det er sikkert blot en mindre fejl i ASP/PHP-koden; måske bare en kommafejl eller en manglende parentes. Men hvis du ved, at det er redirect-koden, der er noget galt med, så har du jo fået indskrænket problemet meget.
Måske kan du komme med et kodeudsnit her? Den del af koden, som skulle lave redirect?

  // Steeven
Avatar billede bonaparte Nybegynder
20. januar 2009 - 14:41 #3
Hej Steeven:)

Jeg har lige igennem mit webhotel fundet ud af, at jeg skal køre med formmail i PHP.
Og da jeg ikke kender noget til PHP, tænkte jeg om du muligvis kunne kigge på den formmail jeg har prøvet at bikse sammen:

<div id="nyhedsbrev">
                 
<form action="nyhedsbrev.php" method="post" name="form1" id="form1" tmt:validate="true" >
<div class="nyhedsbrev"><input type="hidden" name="recipient"    value="nyhedsbrev@ptcc.dk" />
<input type="hidden" name="subject" value="Nyhedsbrev PTCC DK" />
<input type="hidden" name="redirect" value="http://www.ptcc.dk/index/tilmelde_afmelde_forside.htm" />
<input name="Emailadresse" type="text" id="Emailadresse" class="TekstInputForm" value="" size="30" maxlength="35" tmt:required="true" tmt:message="Skrive venligst din e-mail" tmt:errorclass="validateError" tmt:pattern="email" /><br />
<input name="nyhedsbrev" type="radio" value="tilmeld" checked="checked" tmt:required="true" />Tilmed
<input name="nyhedsbrev" type="radio" value="frameld" />Afmeld
<br /><br />
<input type="submit" value="send" class="SubmitKnapForm" />
</form>
</div>

Tror ikke det er helt på plads?

Skal jeg gøre andet end at lægge formen i <body>? Er der ikke noget med at jeg skal gøre et eller andet med form action?
Avatar billede Slettet bruger
20. januar 2009 - 21:18 #4
Hvad er din webhotel-udbyder?

Ja, nu har du jo fået lavet en formular, som skal udfyldes. Alt info, der indtastes i felterne, samt alt info, der står i de skjulte (hidden) felter, bliver altsammen sendt videre til PHP-filen, der hedder nyhedsbrev.php, så snart der klikkes på "Send"-knappen (som er submit-knap).
Der er vist ikke noget galt med formularen, som jeg kan se det.

Nu skal du så have lavet denne PHP-fil, der skal hedde nyhedsbrev.php. Har du noget som helst på forhånd? Fra din udbyder fx?
Udbyderne har nemlig som regel nogle eksempelkoder til, hvordan man gør det - hvis ikke det ligefrem KUN kan lade sig gøre på en helt bestemt måde hos dem, som de så vil have en guide til.


  // Steeven
Avatar billede Slettet bruger
20. januar 2009 - 21:26 #5
Du har nogle spørgsmål:
"Skal jeg gøre andet end at lægge formen i <body>? Er der ikke noget med at jeg skal gøre et eller andet med form action?"

Nej, du skal ikke og kan ikke gøre andet end at lægge formularen (eller formen, som vi kan kalde den) i <body>-delen. Og den action-atribut, du har angivet i <form>-tagget, er som den skal være.
Det eneste, du egentlig gør her i HTML-koden, er, at sætte det hele op. Der sker ikke noget med noget info her. Når du i en <form> på denne måde laver en submit-knap, så virker den på den måde, at den videresender alle oplysninger inde i denne <form> til den side, der er angivet i action-atributten.
Det er det hele. Så er det på denne næste side, at man kan behandle alle dataene - fx sende dem som en flot opsat mail.

  // Steeven
Avatar billede bonaparte Nybegynder
21. januar 2009 - 11:45 #6
Så min form ser rigtig ud.. så vidt, så godt:)

Da jeg slet ikke kender PHP-kodning, ved jeg ikke hvordan jeg laver PHP-filen nyhedsbrev.php.. Formen er en kombination af mit eget og  noget jeg har set på nettet..

Min udbyder er Nettonet - de har ikke noget liggende man kan bruge, men siger, at jeg i google skal skrive formmail.php og så skal jeg bruge det der dukker op (dårlig service!)..
Avatar billede Slettet bruger
21. januar 2009 - 12:44 #7
Du skriver i dit spørgsmål, at det virkede før, men ikke efter du fik ny PC... Dengang det virkede, må du jo have haft en nyhedsbrev.php-fil, der fungerede som den skulle?

Og så fortæller du, at det er redirect, der ikke virker. Vil det sige, at emailen faktisk bliver sendt? Men at der blot ikke sker en redirect bagefter?
I så fald må du jo have en nyhedsbrev.php-fil på serveren, som sender mailen, men som bare har en fejl i redirect-koden.
Det må du lige kigge efter.

Ja, når NettoNet bare henviser til Google, så er du jo lige vidt. Men hvis du skal bygge en mail-sender-funktion op i PHP, så kan du fx læse lidt her: http://www.phpartikler.dk/artikler/mail.php

  // Steeven
Avatar billede bonaparte Nybegynder
21. januar 2009 - 14:20 #8
Jeg tror lige, jeg starter på en frisk forklaring;)

Jeg har en tilmeld/afmeld nyhedsbrev funktion på www.ptcc.dk.

Den har virket fint og kørt som: form action="/cgi-bin/formmail.pl".

Pludselig efter Nettonet(webudbyderen)har har lavet nogle opgraderinger, så fungere det ikke mere.. Jeg troede i starten at problemet kun var, at den ikke kunne redirecte. Det viser sig så, at Nettonet at sikkersmæssige årsager (reelt nok)har fjernet den for får formail, og at man fremover KUN kan køre med en formmail lavet i PHP.

Nu er det sådan at jeg INTET kendet til PHP, og har brug for hjælp, så jeg kan få det op at køre hurtigst mulig.

Den formail jeg sendte tidligere er noget jeg har bikset sammen, ved at holde den op imod den gamle formmail - du siger at den umiddlebart er rigtigt lavet, så er den næste skridt, at få lagt en PHP-fil op... Er der ikke en mulighed for at du kan hjælpe mig en samlet pakke(udfra de oplysninger jeg har givet dig): formail + PHP-fil til opload (så vidt jeg har forstået;).. og så skulle det køre.

Jeg er lidt under tidspres og kan ikke overskue, hvis jeg først skal til at sætte mig ind i PHP, for at kunne få lagt en en tilsvarende Nyhedsbrev til/fra meld op på hjemmesiden.
Avatar billede Slettet bruger
21. januar 2009 - 20:00 #9
Okay, lad os se på det.
PHP er ikke mit hovedområde, og hvis der er større problemer med det, så læg hellere et indlæg i PHP-kategorien, hvor du beder om et script til at afsende en mail. Men du kan lige prøve med mit forslag her først:

Din formular i HTML på forsiden kan se således ud:


<div id="nyhedsbrev">
               
<form action="nyhedsbrev.php" method="post" name="form1" id="form1" tmt:validate="true" >
  <div class="nyhedsbrev">

    <input name="Emailadresse" type="text" id="Emailadresse" class="TekstInputForm" value="" size="30" maxlength="35" tmt:required="true" tmt:message="Skrive venligst din e-mail" tmt:errorclass="validateError" tmt:pattern="email" />
        <br />
    <input name="nyhedsbrev" id="nyhedsbrev" type="radio" value="tilmeld" checked="checked" tmt:required="true" />Tilmeld
    <input name="nyhedsbrev" id="nyhedsbrev" type="radio" value="frameld" />Afmeld
        <br /><br />

    <input type="submit" value="send" class="SubmitKnapForm" />
  </div>
</form>

</div>


Jeg har fjernet alle linjerne med "hidden" info. Denne information behøver du først at give i PHP-filen - dermed sikrer du bl.a. også, at din e-mail-adresse aldrig bliver synlig i koden nogensteder. Det forhindrer spam. PHP-kode kan nemlig ikke ses i browseren, hvis man klikker "Vis kilde", som man plejer. Der ser man kun selve HTML-koden.
Du har flere steder i nogle input-bokse skrevet "tmt:" og nogle forskellige koder. Jeg ved ikke hvad det betyder, men hvis det blot er en del af din tidligere formmail-metode, så kan de vel også fjernes.

PHP-filen skal have navnet "nyhedsbrev.php" og kan se således ud:


<html>
<head>

<?php
if($_POST['nyhedsbrev']=="tilmeld"){
  $modtager = "nyhedsbrev@ptcc.dk";
  $emne = "Tilmelding til nyhedsbrev";
  $besked = "En bruger har tilmeldt sig vores nyhedsbrev.\n\n
      Brugerens e-mail-adresse er: " . $_POST['Emailadresse'];
  $header = "from:"$_POST['Emailadresse'];
}
else{
  $modtager = "nyhedsbrev@ptcc.dk";
  $emne = "Framelding fra nyhedsbrev";
  $besked = "En bruger har frameldt sig vores nyhedsbrev.\n\n
      Brugerens e-mail-adresse er: " . $_POST['Emailadresse'];
  $header = "from:"$_POST['Emailadresse'];
}

mail($modtager, $emne, $besked, $header);
/*Mailen er nu sendt*/
?>

</head>
<body>

<script type="text/javascript">
<!--
window.location = "index.html"
//-->
</script>

<a href="index.html">Tilbage</a>

</body>
</head>


Når der først bliver sendt noget indtastet data via en form til en anden side, så kan man hente det på denne side ved at skrive "$_POST['nyhedsbrev']" fx.
Det, der så bør ske, er, at denne funktion: "mail($modtager, $emne, $besked, $header);" sender mailen, når de forskellige variable (dem, der starter med $) er udfyldt.
Dernæst benyttes noget javascript til redirect tilbage til forsiden.
Du kan nok godt gennemskue det meste af koden, hvis du kigger nøje på den. Jeg håber ikke, at jeg har lavet fejl undervejs.

Prøv det, og vend tilbage med resultatet. Hvis det ikke virker, så spørg i PHP-kategorien om, hvordan man sender en sådan mail.


  // Steeven
Avatar billede Slettet bruger
21. januar 2009 - 20:13 #10
Der er lige en fejl i koden: Det sidste </head>-tag skulle have været et </html>-tag ;)
Avatar billede Slettet bruger
21. januar 2009 - 20:16 #11
Hovsa, der er lige en fejl til... I linjen:

  $header = "from:"$_POST['Emailadresse'];

som står to steder, mangler der et punkttum, som lægger variablen sammen med teksten. Det skal se sådan her ud:

  $header = "from:" . $_POST['Emailadresse'];

Denne linje står to steder. Det skal rettes i begge.

  // Steeven
Avatar billede bonaparte Nybegynder
22. januar 2009 - 09:58 #12
Hej Steeven

Super!

Jeg er bare kede af, at skulle fortælle dig, at jeg netop har fået løst mit problem, specielt fordi du har lagt så meget energi i det:(

Jeg skal dog lige sige, at du er meget pædagogisk forklarende, stort plus.. jeg har forstået en hel del, ved at læse det du har lagt op, så det vil under ingen omstændigheder være "spildt"!

Tusinde tak!

- hvis du sender mig et "svar", så får du pointene:)
Avatar billede Slettet bruger
22. januar 2009 - 10:14 #13
Det er helt i orden :)
Jeg kan også forstå, at der var stort tidspres. Men godt, at du fik det klaret.

Hvilken løsning fandt du? Noget ala ovenstående?

  // Steeven
Avatar billede bonaparte Nybegynder
22. januar 2009 - 13:20 #14
Det var godt at høre!

Ja, løsningen var noget lignende:)

Tak for hjælpen
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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