Avatar billede weblance Nybegynder
04. marts 2005 - 21:20 Der er 1 kommentar og
1 løsning

Hjælp til at få disse 2 scripts til at arbejde sammen

Håber at det er det rette sted jeg er kommet til!

Jeg har en side hvor man kan tilmelde sig et nyhedsbrev. Vha. PHP tilmelder man sig og scriptet og formularen ser således ud:

<?
$xemail = str_replace("@", "=", $email);
mail("mailinglist-subscribe-$xemail@etheg.dk", "","","From: $email <$email>")
?>

------

<form method = "post" action="<? echo $_SERVER["PHP_SELF"];?>">
                  <table width="75%"  border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="200"><input name="email" type="text" class="textfelt" id="email" size="40"></td>
                      <td width="10"><img src="images/tom.gif" width="20" height="10"></td>
                      <td width="105"><input name="Submit" type="submit" class="knap" value="Tilmeld nyhedsbrev"></td>
                    </tr>
                  </table>
                </form>

Hvorefter der kommer denne:
<?
if(isset($_POST["Submit"])) {
echo "<font color=#ff0000><strong>Adressen $email er nu tilmeldt ETHEG's Nyhedsbrev</strong></font>"; }
?>

Det virker fint men jeg vil gerne have en eller anden form for validering af email-adressen så feltet så nogenlunde er korrekt udfyldt. Så jeg fandt dette java script:

<script type="text/javascript">
function validering()
  {
  error = 0;
    document.forms[0].email.style.borderColor = "#1088ff";
  placering=0;
  tekst=(document.forms[0].email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    document.forms[0].email.style.borderColor = "red";
    alert ("Der skal stå en email adresse i tekst feltet");
    document.forms[0].email.focus();
    error = 1;
  }
  else{
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      document.forms[0].email.style.borderColor = "red";
      alert ("Der må ikke være mellemrum i adressen");
      document.forms[0].email.focus();
      error = 1;
    }
    else{
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        document.forms[0].email.style.borderColor = "red";
        alert ("Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ Ø Å , ;");
        document.forms[0].email.focus();
        error = 1;
      }
    else{
      if (placering<1 || tekst.length<=(placering+1)){
        document.forms[0].email.style.borderColor = "red";
        alert ("Email adressen er forkert - forsøg igen");
        document.forms[0].email.focus();
        error = 1;
      }
    }
  }
}
if(error == 0)
document.forms[0].submit();   
}

</script>

...og i formularen skal der stå 'onsubmit="validering();return false;"'

Men dette gør at linjen

<?
if(isset($_POST["Submit"])) {
echo "<font color=#ff0000><strong>Adressen $email er nu tilmeldt ETHEG's Nyhedsbrev</strong></font>"; }
?>

ikke virker mere!

Hvordan kan jeg få disse to scripts til at arbejde sammen? Eller skal jeg gøre det på en helt anden måde??

/ Carl
Avatar billede weblance Nybegynder
04. marts 2005 - 21:30 #1
Kan man evt. køre hele valideringen som PHP på den placering hvor

<?
if(isset($_POST["Submit"])) {
echo "<font color=#ff0000><strong>Adressen $email er nu tilmeldt ETHEG's Nyhedsbrev</strong></font>"; }
?>

befinder sig??
Avatar billede weblance Nybegynder
16. juni 2005 - 17:37 #2
lukker
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