Garreth Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 Har satt opp et skjema med epleweb sin kode. Jeg vil at mail adressen skal være valgfri å skrive inn, men da får jeg et lite problem om brukeren ikke skriver mail adressen sin. Skjemaet kommer ikke fram til innboksen min da. Har laget til to email funksjoner (det heter helt sikkert ikke funksjoner). $email = "[email protected]"; $email2 = stripslashes(strip_tags($_POST['email2'])); <label for="email2">Email:</label> <input name="email2" id="email2" type="text" value=""> Kan noen hjelpe meg å lage en skjekk som sjekker om $email2 er fylt ut, så blir den satt inn som avsender, hvis den er tom så skal $email brukes. Dette forlsaget vil nok ikke fungere, men her skjønner dere kanskje hva jeg mener: if(empty($email2) mail($receiverMail, $subject, $msgformat, "From: $name <$email>")) { else mail($receiverMail, $subject, $msgformat, "From: $name <$email2>")) { } Lenke til kommentar
trondes Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 if(empty($email2) mail($receiverMail, $subject, $msgformat, "From: $name <$email>")) { else mail($receiverMail, $subject, $msgformat, "From: $name <$email2>")) { } 5837092[/snapback] Dette blir rett: if(empty($email2)) mail($receiverMail, $subject, $msgformat, "From: $name <$email>"); else mail($receiverMail, $subject, $msgformat, "From: $name <$email2>"); Lenke til kommentar
Garreth Skrevet 30. mars 2006 Forfatter Del Skrevet 30. mars 2006 (endret) Det fungerte, men når jeg skulle legge til at brukeren får beskjed at skjemaet er sendt, så fungerte det ikke: if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } if(empty($email2)) mail($receiverMail, $subject, $msgformat, "From: $name <$email>"); echo "<h2>Meldingen har blitt sendt!</h2>"; else mail($receiverMail, $subject, $msgformat, "From: $name <$email2>"); echo "<h2>Meldingen har blitt sendt!</h2>"; } else { echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } else { ?> <form method="post" action=""> <form> .... Får erroren: Parse error: parse error in /hotel/www.domene.no/www/html/skjema.php on line 172 172 er den først else Endret 30. mars 2006 av Garreth Lenke til kommentar
trondes Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 litt grunnelgende her. if( $a == 1) print "A er 1"; else print "A er ikke 1"; hvis du skal ha inn at den skal kjøre flere linjer under samme if() så må du bruke {} slik: if( $a == 1){ print "A er 1); print "OG vi vet ikke hva B er"; } else print "A er ikke 1"; slik som det er over vil det som står under if() bli kjørt hvis $a er 1, hvis $a er noe annet enn det så blir det som står under else kjørt. men hvis du gjør slik: if( $a == 1) print "A er 1"; else print "A er ikke 1"; else print "dette vil aldri bli vist"; Hvis $a er 1 vil den første bli kjørt, hvis ikke blir det som står under den første "else" bli kjørt. Det som kommer etter vil aldri bli kjørt. Du kan feks på den midterste "else" skrive " elseif( $A == 2) " da vil den bli kjørt og hvis ikke vil den neste else bli kjørt. anbefaler at du leser litt her: https://www.diskusjon.no/index.php?showtopi...dpost&p=1034173 ha en fin dag Lenke til kommentar
CruellaDeVille Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 Det fungerte, men når jeg skulle legge til at brukeren får beskjed at skjemaet er sendt, så fungerte det ikke: if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } if(empty($email2)) mail($receiverMail, $subject, $msgformat, "From: $name <$email>"); echo "<h2>Meldingen har blitt sendt!</h2>"; else mail($receiverMail, $subject, $msgformat, "From: $name <$email2>"); echo "<h2>Meldingen har blitt sendt!</h2>"; } else { echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } else { ?> <form method="post" action=""> <form> .... Får erroren: Parse error: parse error in /hotel/www.domene.no/www/html/skjema.php on line 172 172 er den først else 5837193[/snapback] Jeg antar at du konverterer $_POST-variabler til "vanlige" variabler før du forsøker å sende epost - type $post = $_POST['email2'] (og feilsjekk, kan være en trinær operator) Du kan gjøre slik: $email2 = strip_tags(trim($_POST['email2'])); if(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; }//<-- HER avslutter du if // Ny if if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "Epost er sendt med hell"; }else{ echo "Eposten kunne ikke sendes"; } Når det gjelder koden du har limt inn mangler endel { og } if(empty($email2)){ // <-- HER mail($receiverMail, $subject, $msgformat, "From: $name <$email>"); echo "<h2>Meldingen har blitt sendt!</h2>"; }else{ // <-- HER MANGLET BÅDE } OG { mail($receiverMail, $subject, $msgformat, "From: $name <$email2>"); echo "<h2>Meldingen har blitt sendt!</h2>"; } Og her har du en "dangling" else (en else uten tilhørende if else { echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } Lenke til kommentar
CruellaDeVille Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 (endret) men hvis du gjør slik: if( $a == 1) print "A er 1"; else print "A er ikke 1"; else print "dette vil aldri bli vist"; Hvis $a er 1 vil den første bli kjørt, hvis ikke blir det som står under den første "else" bli kjørt. Det som kommer etter vil aldri bli kjørt. Du kan feks på den midterste "else" skrive " elseif( $A == 2) " da vil den bli kjørt og hvis ikke vil den neste else bli kjørt. anbefaler at du leser litt her: https://www.diskusjon.no/index.php?showtopi...dpost&p=1034173 ha en fin dag 5837402[/snapback] Denne vil aldri bli kjørt, siden du har en "dangling" else, du vil få en parse-error. Syntaksen for flere valg er if, else if (eventuelt flere else if) og til slutt en else Endret 30. mars 2006 av CruellaDeVille Lenke til kommentar
trondes Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 Denne vil aldri bli kjørt, siden du har en "dangling" else, du vil få en parse-error.Syntaksen for flere valg er if, else if (eventuelt flere else if) og til slutt en else 5837422[/snapback] Bøyer meg i støvet. ( selv har jeg aldri gjort den feilen, så jeg var ikke opps på at det ikke gikk) (sier han litt eplekjekk ) Lenke til kommentar
Garreth Skrevet 30. mars 2006 Forfatter Del Skrevet 30. mars 2006 (endret) Med denne koden fungerte ikke if sjekken for tomme felt. <?php if ($_POST['submit'] == TRUE) { //send mail $receiverMail = "[email protected]"; $name = stripslashes(strip_tags($_POST['name'])); $email = "[email protected]"; $email2 = stripslashes(strip_tags($_POST['email2'])); $adresse = stripslashes(strip_tags($_POST['adresse'])); $postnr = stripslashes(strip_tags($_POST['postnr'])); $sted = stripslashes(strip_tags($_POST['sted'])); $subject = "Skjema"; $privat = stripslashes(strip_tags($_POST['privat'])); $mobil = stripslashes(strip_tags($_POST['mobil'])); //$msg = stripslashes(strip_tags($_POST['msg'])); //$ip = $_SERVER['REMOTE_ADDR']; $msgformat = "Fra:\n$name \nAdresse: $adresse\n$postnr $sted\n\nTelefon : $privat\nMobil: $mobil \nEmail: $email2"; if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } if(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; } if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; } else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } else { //skriv ut skjema ?> Prøvde meg med en elseif. Da fungerte sjekken for tomme felt igjen, men om jeg skrev inn en mail adresse i skjemaet så gikk ikke mailen igjennom. Fikk ikke feilmedling en gang. //det over er ikke forandret elseif(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; } else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } } else { //Skriv ut skjema ?> Endret 30. mars 2006 av Garreth Lenke til kommentar
CruellaDeVille Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 Med denne koden fungerte ikke if sjekken for tomme felt. <?php if ($_POST['submit'] == TRUE) { //send mail $receiverMail = "[email protected]"; $name = stripslashes(strip_tags($_POST['name'])); $email = "[email protected]"; $email2 = stripslashes(strip_tags($_POST['email2'])); $adresse = stripslashes(strip_tags($_POST['adresse'])); $postnr = stripslashes(strip_tags($_POST['postnr'])); $sted = stripslashes(strip_tags($_POST['sted'])); $subject = "Skjema"; $privat = stripslashes(strip_tags($_POST['privat'])); $mobil = stripslashes(strip_tags($_POST['mobil'])); //$msg = stripslashes(strip_tags($_POST['msg'])); //$ip = $_SERVER['REMOTE_ADDR']; $msgformat = "Fra:\n$name \nAdresse: $adresse\n$postnr $sted\n\nTelefon : $privat\nMobil: $mobil \nEmail: $email2"; if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } if(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; } if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; } else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } else { //skriv ut skjema ?> Prøvde meg med en elseif. Da fungerte sjekken for tomme felt igjen, men om jeg skrev inn en mail adresse i skjemaet så gikk ikke mailen igjennom. Fikk ikke feilmedling en gang. //det over er ikke forandret elseif(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; } else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } } else { //Skriv ut skjema ?> 5837586[/snapback] Nå vet ikke jeg hvordan skjema ditt ser ut, men jeg hentet det fra epleweb, og der har de ingen felt i skjema som heter epost2 (eller var det email2). Sjekk dette. Scriptet fungerer som bare det hos nibbler, http://nibbler.no/files/email.php Og en ting til: hvorfor kaller du funksjon stripslashes? Det vil si at parser fjerner backslash foran ' og ", og det er ikke det du vil ha. Du vil ha addslashes istedet, som escaper ' og " Lenke til kommentar
CruellaDeVille Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 (endret) Tusen takk for epost en_eller_annen! Men så lurer jeg på: Er det meningen at noen skal skrive noen i eposten til deg(meg), eller skal de bare registrere navn og adresse og sånt? for du henter aldri ut verdier fra textarea. Endret 30. mars 2006 av CruellaDeVille Lenke til kommentar
Garreth Skrevet 30. mars 2006 Forfatter Del Skrevet 30. mars 2006 (endret) Ja det er bare et registrerings skjema. Folk skal skrive inn personalia og så ska mailen komme til min innboks. Grunnen til at jeg laget 2 email variabler var for jeg trodde det var lettest slik (siden det må komme en annen mail om ikke brukeren skriver inn sin egen) Skal ikke ha med det textarea feltet. Her ser du hele skjemaet (som ikke kommer igjenom om du velger å skrive inn mail adressen i skjemaet: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Skjema</title> </head> <body> <div id="wrap"> <?php if ($_POST['submit'] == TRUE) { $receiverMail = "[email protected]"; $name = stripslashes(strip_tags($_POST['name'])); $email = "[email protected]"; $email2 = stripslashes(strip_tags($_POST['email2'])); $adresse = stripslashes(strip_tags($_POST['adresse'])); $postnr = stripslashes(strip_tags($_POST['postnr'])); $sted = stripslashes(strip_tags($_POST['sted'])); $subject = "Bestilling av katalog"; $privat = stripslashes(strip_tags($_POST['privat'])); $mobil = stripslashes(strip_tags($_POST['mobil'])); //$msg = stripslashes(strip_tags($_POST['msg'])); //$ip = $_SERVER['REMOTE_ADDR']; $msgformat = "Bestilling fra:\n$name \nAdresse: $adresse\n$postnr $sted\n\nTelefon : $privat\nMobil: $mobil \nEmail: $email2"; if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } elseif(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; } else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } } else { ?> <form method="post" action=""> <form> <fieldset> <legend>Ja takk, send meg mer info.</legend> <div class="fm-req"> <label for="name">Navn:</label> <input name="name" id="name" type="text" value=""> <label for="adresse">Addresse:</label> <input id="adresse" name="adresse" type="text" value=""> <label for="postnr">Postnummer:</label> <input id="postnr" name="postnr" type="text" value=""> <label for="sted">Sted:</label> <input id="sted" name="sted" type="text" value=""> </div> </fieldset> <fieldset> <legend>Hvis du ønsker det, kan du også oppgi telefonnummer og email adresse</legend> <div class="fm-optional"> <label for="privat">Privat tlf:</label> <input id="privat" name="privat" type="text" value=""> <label for="mobil">Mobil:</label> <input id="mobil" name="mobil" type="text" value=""> <label for="email2">Email:</label> <input name="email2" id="email2" type="text" value=""> </div> </fieldset> <br> <input id="submit" class="button" type="submit" name="submit" value="Send" /> </form> <?php } ?> </div> </body> </html> Har prøvd det meste (som jeg kommer på), men det vil fremdeles ikke fungere helt 100%. Endret 30. mars 2006 av Garreth Lenke til kommentar
CruellaDeVille Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 Har prøvd det meste (som jeg kommer på), men det vil fremdeles ikke fungere helt 100%. 5838112[/snapback] hva er det som ikke funker? Sender epost som bare det hos meg. Lenke til kommentar
trondes Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 Har prøvd det meste (som jeg kommer på), men det vil fremdeles ikke fungere helt 100%. 5838112[/snapback] Som CruellaDeVille sier så hadde det vært fint med noen info om hva som ikke virker. Det eneste jeg kan se som kanskje ikke virker slik det skal er mail(), den kan være litt spesielt, fra maskin til maskin, noen vil ha en "\r\n" slutten av "From: " feltet, andre er fornøyd med "\n". Andre vil ikke ha "navn <epost>" men bare "epost". Men det er jo ikke sikkert at det er dette som er feil Lenke til kommentar
Garreth Skrevet 31. mars 2006 Forfatter Del Skrevet 31. mars 2006 I det siste skjemaet jeg postet her så fungerer alt utenom hvis brukeren skriver inn sin egen mail. Når jeg da trykker på submit så får jeg bare en hvit side, ikke noe feilmelding og mailen blir ikke sendt til min innboks. Jeg prøvde å forandre på } klammene osv, og fikk det til å fungere når brukeren skrev inn sin egen mail, men da fungerte ikke if sjekken som sjekker at alle de nødvendige feltene (navn, adresse, post, sted) er fylt ut. Lenke til kommentar
trondes Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 (endret) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Skjema</title> </head> <body> <div id="wrap"> <?php if ($_POST['submit'] == TRUE) { $receiverMail = "[email protected]"; $name = stripslashes(strip_tags($_POST['name'])); $email = "[email protected]"; $email2 = stripslashes(strip_tags($_POST['email2'])); $adresse = stripslashes(strip_tags($_POST['adresse'])); $postnr = stripslashes(strip_tags($_POST['postnr'])); $sted = stripslashes(strip_tags($_POST['sted'])); $subject = "Bestilling av katalog"; $privat = stripslashes(strip_tags($_POST['privat'])); $mobil = stripslashes(strip_tags($_POST['mobil'])); //$msg = stripslashes(strip_tags($_POST['msg'])); //$ip = $_SERVER['REMOTE_ADDR']; $msgformat = "Bestilling fra:\n$name \nAdresse: $adresse\n$postnr $sted\n\nTelefon : $privat\nMobil: $mobil \nEmail: $email2"; if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } elseif(!empty($email2)) $email = $email2; else $email = '[email protected]'; if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; } else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } else { ?> <form method="post" action=""> <form> <fieldset> <legend>Ja takk, send meg mer info.</legend> <div class="fm-req"> <label for="name">Navn:</label> <input name="name" id="name" type="text" value=""> <label for="adresse">Addresse:</label> <input id="adresse" name="adresse" type="text" value=""> <label for="postnr">Postnummer:</label> <input id="postnr" name="postnr" type="text" value=""> <label for="sted">Sted:</label> <input id="sted" name="sted" type="text" value=""> </div> </fieldset> <fieldset> <legend>Hvis du ønsker det, kan du også oppgi telefonnummer og email adresse</legend> <div class="fm-optional"> <label for="privat">Privat tlf:</label> <input id="privat" name="privat" type="text" value=""> <label for="mobil">Mobil:</label> <input id="mobil" name="mobil" type="text" value=""> <label for="email2">Email:</label> <input name="email2" id="email2" type="text" value=""> </div> </fieldset> <br> <input id="submit" class="button" type="submit" name="submit" value="Send" /> </form> <?php } ?> </div> </body> </html> PRoblemet var hvis brukeren ikke hadde skrevet inn noe epost så håpet den over sendingen også Endret 31. mars 2006 av trondes Lenke til kommentar
Garreth Skrevet 31. mars 2006 Forfatter Del Skrevet 31. mars 2006 Prøvde din kode nå, og nå fungerer ikke sjekken for nødvendige felt. Mailen går igjennom uansett om man har fylt dem inn eller ikke. Lenke til kommentar
CruellaDeVille Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 Prøvde din kode nå, og nå fungerer ikke sjekken for nødvendige felt. Mailen går igjennom uansett om man har fylt dem inn eller ikke. 5843098[/snapback] Hvem er din i dette tilfelle? Lenke til kommentar
CruellaDeVille Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 (endret) Prøvde din kode nå, og nå fungerer ikke sjekken for nødvendige felt. Mailen går igjennom uansett om man har fylt dem inn eller ikke. 5843098[/snapback] Jeg har endret litt på programmeringslogikken din, $msgformat er flyttet, har sagt at if felt er tomme - skriv ut feilmelding, else gjør noe annet. Jeg har også lagt på trim(), som gjør at man ikke kan sende inn bare et whitespace som input og addslashes() istedet for stripslashes() fullstendig kode:http://nibbler.no/files/email2.php Dette funker, sender ikke epost når required felt er tomme, bytter ut brukers epost hvis denne er satt og hvis ikke bruker [email protected] Endret 31. mars 2006 av CruellaDeVille Lenke til kommentar
Garreth Skrevet 31. mars 2006 Forfatter Del Skrevet 31. mars 2006 (endret) Er desverre ikke så mye logikk ute å går fra min side, har bare prøvd å vidreutvikle epleweb sit skjema til mitt bruk. Tusen takk for hjelpen, jeg setter utrolig stor pris på det, men jeg får det ikke til å fungere hos meg. Hvis jeg kopierer det som er på linken din får jeg bare feil. Parse error: parse error in /hotel/www.domene.no/www/html/email2.php on line 104 Dette er det på min email2.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Skjema</title> </head> <body> <div id="wrap"> <?php if ($_POST['submit']) { $receiverMail = "[email protected]"; $name = trim(addslashes(strip_tags($_POST['name']))); $email2 = trim(addslashes(strip_tags($_POST['email2']))); $adresse = trim(addslashes(strip_tags($_POST['adresse']))); $postnr = trim(addslashes(strip_tags($_POST['postnr']))); $sted = trim(addslashes(strip_tags($_POST['sted']))); $subject = "Bestilling av katalog"; $privat = trim(addslashes(strip_tags($_POST['privat']))); $mobil = trim(addslashes(strip_tags($_POST['mobil']))); if(empty($name) || empty($adresse) || empty($postnr) || empty($sted)) { echo "<h2>Meldingen ble ikke sendt</h2><p>Fyll ut alle nødvendige felt</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; }else{ if(!empty($email2)){ $email = $email2; }else{ $email = '[email protected]'; } $msgformat = "Bestilling fra:\n$name \nAdresse: $adresse\n$postnr $sted\n\nTelefon : $privat\nMobil: $mobil \nEmail: $email"; if(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")){ echo "<h2>Meldingen har blitt sendt!</h2>"; }else{ echo "<h2>Meldingen ble ikke sendt</h2><p>Prøv igjen senere... Hvis problemet fortsetter er det sansynlig noe galt med serveren.</p>"; echo '<p><a href="javascript:history.back()">Tilbake til skjemaet</a></p>'; } } }else { echo <<<HTML <script type="text/javascript"> <!-- Hide from old browsers function checkInput(){ var myString =''; var form = document.forms[0]; for(i=0; i<form.elements.length; i++){ if((form.elements[i].type=="text" || form.elements[i].type == "textarea") && !form.elements[i].value){ alert("Vennligst fyll ut "+ form.elements[i].name); form.elements[i].focus(); return false; } } return true; } --> </script> <form method="post" action="" onsubmit="return checkInput()";> <form> <fieldset> <legend>Ja takk, send meg mer info.</legend> <div class="fm-req"> <label for="name">Navn:</label> <input name="name" id="name" type="text" value=""> <label for="adresse">Addresse:</label> <input id="adresse" name="adresse" type="text" value=""> <label for="postnr">Postnummer:</label> <input id="postnr" name="postnr" type="text" value=""> <label for="sted">Sted:</label> <input id="sted" name="sted" type="text" value=""> </div> </fieldset> <fieldset> <legend>Hvis du ønsker det, kan du også oppgi telefonnummer og email adresse</legend> <div class="fm-optional"> <label for="privat">Privat tlf:</label> <input id="privat" name="privat" type="text" value=""> <label for="mobil">Mobil:</label> <input id="mobil" name="mobil" type="text" value=""> <label for="email2">Email:</label> <input name="email2" id="email2" type="text" value=""> </div> </fieldset> <br> <input id="submit" class="button" type="submit" name="submit" value="Send" /> </form> HTML;} show_source('email2.php'); ?> </div> </body> </html> linje 104 er den siste </html> linjen. Har også prøvd å ta vekk show_source, men får fortsatt den samme feilen. (Da selvfølgelig på linje 103) Kan vi ha ulik versjon av PHP på serverene våre? Edit: Skal selvfølgelig bytte ut email adresse å slikt når jeg har fått det til å fungere. Endret 31. mars 2006 av Garreth Lenke til kommentar
CruellaDeVille Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 Er desverre ikke så mye logikk ute å går fra min side, har bare prøvd å vidreutvikle epleweb sit skjema til mitt bruk. Tusen takk for hjelpen, jeg setter utrolig stor pris på det, men jeg får det ikke til å fungere hos meg. Hvis jeg kopierer det som er på linken din får jeg bare feil. Parse error: parse error in /hotel/www.domene.no/www/html/email2.php on line 104 Dette er det på min email2.php <input id="submit" class="button" type="submit" name="submit" value="Send" /> </form> HTML;} <---- DENNE MÅ ENDRES show_source('email2.php'); ?> </div> </body> </html> Linje merket må endres til HTML; } En heredoc (<<<HTML) kan bare ha return etter heredoc innleding og avslutning. Dermed vil } på HTML;-linjen ødelegge alt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå