Mira Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 (endret) Jeg driver å lager en side for en Counterstrike klan. Jeg trengte et mail-skjema, og jeg gadd ikke lage et fra scratch så jeg brukte et jeg fant her på forumet. Det ser altså sånn ut: <form action="<?php "$PHP_SELF" ?>" method="post"> <h3>Utfordre oss</h3> <p>Selv om vi ikke er en klan som sikter mot stjernene så er det altid gøy med litt skikkelig motstand fra andre enn mistenkelige tyske mix-klener Derfor gir vi deg her muligheten til å utfordre oss til en kamp/pcw. Bare fyll ut skjemaet under !<br><br> <span class="tekstomr">Navnet på klanen din *</span><input type="text" size="25" maxlength="35" name="navn"><br> <span class="tekstomr">E-postadressen din *</span><input type="text" size="25" maxlength="35" name="epost"><br> <span class="tekstomr">Dato og klokkeslett *</span><input type="text" size="25" maxlength="35" name="dato"><br> <span class="tekstomr">Foretrukket map *</span><input type="text" size="25" maxlength="35" name="map"><br> <span class="tekstomr">Tilleg</span><textarea type="textarea" name="tekst" rows="5" cols="25"></textarea><br> felter med * må fylles ut <br /> <input type="submit" class="knapp" name="submit" value="OK!"> <input type="reset" class="knapp" value="Slett" name="SLETT"> </p> </form> <?php if ($submit) { if (!$navn) { echo ("<p>Du har glemt å oppgi navnet ditt</p>"); } if (!$epost) { echo ("<p>Du har glemt å oppgi epost</p>"); } if (!$dato) { echo ("<p>Du har glemt å oppgi dato eller klokkeslett</p>"); } if (!$map) { echo ("<p>Du har glemt å oppgi hvilket map dere ønsker å spille</p>") } if (!$tekst) { echo ("<p>Du har glemt å skrive en beskjed</p>"); } else { $sendto = "[email protected]"; // Skriv inn din e-mail. $subject = "Utfordring"; // Her velger du tittel. $ip=$REMOTE_ADDR; $message = " Navn: $navn ($epost) Tekst: $tekst Senders ip: $ip "; $headers = "Fra: $navn\r\n"; mail($sendto, $subject, $message, $headers); echo ("<p>Meldingen din er sendt.</p>"); } } ?> På siden bruker jeg et php-include script, som virker som det skal derfor det er relevant Problemet er at når jeg bruker den siste snutten med php-kode (altså selve mailscriptet) så vises ingenting, ikke engang form-elementene. Dersom jeg fjerner php-koden på slutten, vises det som det skal. Jeg har sjekket at php-kode blir parset, så det er ikke ploblemet. Noen som har snøring på hva dette er? Endret 9. mars 2006 av Mira Lenke til kommentar
smh Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 (endret) Eg bruker dette som fungerer fint. Ligger nå minimalt i skjemaet her. men du ser poenget. Har delt opp i to filer, ei html og ei php. mail.html: <html> <head> <title>Mailskjema</title> </head> <body> <form name="mail" action="mail.php" method="post"> <input type="text" name="melding" size="30"> <input type="submit" name="submitButtonName"> </form> </body> </html> mail.php: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title> </title> </head> <body> <?php $melding = $_POST['melding']; if($_POST['melding'] == "") { echo 'Du må fylle ut <u>alle</u> feltene i skjemaet før du sender!'; } else { $from = '[email protected]'; $to = '[email protected]'; $subject = 'Mail via skjema'; $message = 'Melding frå webside: '.$melding; mail($to, $subject, $message, "From: $from"); echo 'Melding er sendt!'; } ?> </body> </html> Endret 9. mars 2006 av smh Lenke til kommentar
smh Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 (endret) Kanskje det virker dersom du legger til denne linja rett under: <?php $"variabel" = $_POST['"variabel"']; Bytt ut "variabel" med din variabel. Dette blei dårlig forklart, men håper du forstår. Endret 9. mars 2006 av smh Lenke til kommentar
stian90_2 Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 prøv og sette opp navn og slikt sånn: $navn = $_POST["navn"]; $dato = $_POST["dato"]; $map = $_POST["map"]; $epost = $_POST["epost"]; Også kan du prøve og endre: if($submit) { //script } Til if($_POST["submit"]){ //script } Lenke til kommentar
CruellaDeVille Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 (endret) Jeg driver å lager en side for en Counterstrike klan. Jeg trengte et mail-skjema, og jeg gadd ikke lage et fra scratch så jeg brukte et jeg fant her på forumet. Det ser altså sånn ut: <form action="<?php "$PHP_SELF" ?>" method="post"> <h3>Utfordre oss</h3> <p>Selv om vi ikke er en klan som sikter mot stjernene så er det altid gøy med litt skikkelig motstand fra andre enn mistenkelige tyske mix-klener Derfor gir vi deg her muligheten til å utfordre oss til en kamp/pcw. Bare fyll ut skjemaet under !<br><br> <span class="tekstomr">Navnet på klanen din *</span><input type="text" size="25" maxlength="35" name="navn"><br> <span class="tekstomr">E-postadressen din *</span><input type="text" size="25" maxlength="35" name="epost"><br> <span class="tekstomr">Dato og klokkeslett *</span><input type="text" size="25" maxlength="35" name="dato"><br> <span class="tekstomr">Foretrukket map *</span><input type="text" size="25" maxlength="35" name="map"><br> <span class="tekstomr">Tilleg</span><textarea type="textarea" name="tekst" rows="5" cols="25"></textarea><br> felter med * må fylles ut <br /> <input type="submit" class="knapp" name="submit" value="OK!"> <input type="reset" class="knapp" value="Slett" name="SLETT"> </p> </form> <?php if ($submit) { if (!$navn) { echo ("<p>Du har glemt å oppgi navnet ditt</p>"); } if (!$epost) { echo ("<p>Du har glemt å oppgi epost</p>"); } if (!$dato) { echo ("<p>Du har glemt å oppgi dato eller klokkeslett</p>"); } if (!$map) { echo ("<p>Du har glemt å oppgi hvilket map dere ønsker å spille</p>") } if (!$tekst) { echo ("<p>Du har glemt å skrive en beskjed</p>"); } else { $sendto = "[email protected]"; // Skriv inn din e-mail. $subject = "Utfordring"; // Her velger du tittel. $ip=$REMOTE_ADDR; $message = " Navn: $navn ($epost) Tekst: $tekst Senders ip: $ip "; $headers = "Fra: $navn\r\n"; mail($sendto, $subject, $message, $headers); echo ("<p>Meldingen din er sendt.</p>"); } } ?> På siden bruker jeg et php-include script, som virker som det skal derfor det er relevant Problemet er at når jeg bruker den siste snutten med php-kode (altså selve mailscriptet) så vises ingenting, ikke engang form-elementene. Dersom jeg fjerner php-koden på slutten, vises det som det skal. Jeg har sjekket at php-kode blir parset, så det er ikke ploblemet. Noen som har snøring på hva dette er? 5726325[/snapback] Det første jeg ville gjort var å sette inn denne linjen: ERROR_REPORTING(E_ALL); Da vil du se at du har feil i scriptet ditt, noen } som mangler og noen som er feilplassert. Dessuten er det noen logiske feil i scriptet ditt. Du forsøker å si at hvis submitknappe n er trykket så skal den sjekke alle inputfelt. Det er helt fint, men så sier du at hvis inputknappen ikke er trykket (else-biten) så skal man sende en epost. jeg har endret litt på scriptet ditt: <?php /* * Viser alle feil - fint for debugging, i live-script ville jeg satt * denne til (E_NONE) eller loggført feil */ error_reporting(E_ALL); /* * Trinær operator. * Sier at hvis feltene er tomme er variabelen lik "" ellers * verdien som bruker har skrevet inn */ $submit = isset($_POST['submit']); $navn = empty($_POST['navn']) ? "" : $_POST['navn']; $epost = empty($_POST['epost']) ? "" : $_POST['epost']; $dato = empty($_POST['dato']) ? "" : $_POST['dato']; $map = empty($_POST['map']) ? "" : $_POST['map']; $tekst = empty($_POST['tekst']) ? "" : $_POST['tekst']; /* * En enklere måte å skrive ut html på, og i tillegg * kan du bruke variabelnavn i scriptet, eks $navn, $epost osv * Må ikke ha whitespace før html-koden */ print <<<HTML <form action="" method="post"> <h3>Utfordre oss</h3> <p>Selv om vi ikke er en klan som sikter mot stjernene så er det altid gøy med litt skikkelig motstand fra andre enn mistenkelige tyske mix-klener Derfor gir vi deg her muligheten til å utfordre oss til en kamp/pcw. Bare fyll ut skjemaet under !<br><br> <span class="tekstomr">Navnet på klanen din *</span><input type="text" size="25" maxlength="35" name="navn" value="$navn"><br> <span class="tekstomr">E-postadressen din *</span><input type="text" size="25" maxlength="35" name="epost" value="$epost"><br> <span class="tekstomr">Dato og klokkeslett *</span><input type="text" size="25" maxlength="35" name="dato" value="$dato"><br> <span class="tekstomr">Foretrukket map *</span><input type="text" size="25" maxlength="35" name="map" value="$map"><br> <span class="tekstomr">Tilleg</span><textarea type="textarea" name="tekst" rows="5" cols="25" value="$tekst"></textarea><br> felter med * må fylles ut <br /> <input type="submit" class="knapp" name="submit" value="OK!"> <input type="reset" class="knapp" value="SLETT" name="slett"> </p> </form> HTML; /* Avslutter html-koden */ /* * Hvis submitknappen er trykket - gjør dette: */ if ($submit){ /* * Sjekker navnefelt * De andre feltene sjekkes på samme måte */ if (!$navn){ echo ("<p>Du har glemt å oppgi navnet ditt</p>"); // "return" avbryter scriptet return; } if (!$epost){ echo ("<p>Du har glemt å oppgi epost</p>"); return; } if (!$dato){ echo ("<p>Du har glemt å oppgi dato eller klokkeslett</p>"); return; } if (!$map){ echo ("<p>Du har glemt å oppgi hvilket map dere ønsker å spille</p>"); return; } if (!$tekst){ echo ("<p>Du har glemt å skrive en beskjed</p>"); return; } /* * Hvis alt er greitt, scriptet er ikke avbrutt gjør dette: */ $sendto = "[email protected]"; // Skriv inn din e-mail. $subject = "Utfordring"; // Her velger du tittel. // for å få tak i ip bruker vi funksjonen getenv('REMOTE_ADDR') $ip = getenv('REMOTE_ADDR'); $message = " Navn: $navn ($epost) Tekst: $tekst Senders ip: $ip "; $headers = "Fra: $navn\r\n"; /* * Forsøker å sende epost * Forutsetter at man har en smtp-server tilgjengelig * Hvis det ikke går så bra - avbryt scriptet og skriv ut en passende feilmelding */ mail($sendto, $subject, $message, $headers) or die("<p>Det gikk ikke så bra.</p>"); exit; // Hvis alt går bra - skriv ut dette: echo ("<p>Meldingen din er sendt.</p>"); } ?> Håper dette kan hjelpe deg. Endret 9. mars 2006 av CruellaDeVille Lenke til kommentar
CruellaDeVille Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 (endret) Jeg driver å lager en side for en Counterstrike klan. Jeg trengte et mail-skjema, og jeg gadd ikke lage et fra scratch så jeg brukte et jeg fant her på forumet. Det ser altså sånn ut: <form action="<?php "$PHP_SELF" ?>" method="post"> <h3>Utfordre oss</h3> <p>Selv om vi ikke er en klan som sikter mot stjernene så er det altid gøy med litt skikkelig motstand fra andre enn mistenkelige tyske mix-klener Derfor gir vi deg her muligheten til å utfordre oss til en kamp/pcw. Bare fyll ut skjemaet under !<br><br> <span class="tekstomr">Navnet på klanen din *</span><input type="text" size="25" maxlength="35" name="navn"><br> <span class="tekstomr">E-postadressen din *</span><input type="text" size="25" maxlength="35" name="epost"><br> <span class="tekstomr">Dato og klokkeslett *</span><input type="text" size="25" maxlength="35" name="dato"><br> <span class="tekstomr">Foretrukket map *</span><input type="text" size="25" maxlength="35" name="map"><br> <span class="tekstomr">Tilleg</span><textarea type="textarea" name="tekst" rows="5" cols="25"></textarea><br> felter med * må fylles ut <br /> <input type="submit" class="knapp" name="submit" value="OK!"> <input type="reset" class="knapp" value="Slett" name="SLETT"> </p> </form> <?php if ($submit) { if (!$navn) { echo ("<p>Du har glemt å oppgi navnet ditt</p>"); } if (!$epost) { echo ("<p>Du har glemt å oppgi epost</p>"); } if (!$dato) { echo ("<p>Du har glemt å oppgi dato eller klokkeslett</p>"); } if (!$map) { echo ("<p>Du har glemt å oppgi hvilket map dere ønsker å spille</p>") } if (!$tekst) { echo ("<p>Du har glemt å skrive en beskjed</p>"); } else { $sendto = "[email protected]"; // Skriv inn din e-mail. $subject = "Utfordring"; // Her velger du tittel. $ip=$REMOTE_ADDR; $message = " Navn: $navn ($epost) Tekst: $tekst Senders ip: $ip "; $headers = "Fra: $navn\r\n"; mail($sendto, $subject, $message, $headers); echo ("<p>Meldingen din er sendt.</p>"); } } ?> På siden bruker jeg et php-include script, som virker som det skal derfor det er relevant Problemet er at når jeg bruker den siste snutten med php-kode (altså selve mailscriptet) så vises ingenting, ikke engang form-elementene. Dersom jeg fjerner php-koden på slutten, vises det som det skal. Jeg har sjekket at php-kode blir parset, så det er ikke ploblemet. Noen som har snøring på hva dette er? 5726325[/snapback] Det første jeg ville gjort var å sette inn denne linjen: ERROR_REPORTING(E_ALL); Da vil du se at du har feil i scriptet ditt, noen } som mangler og noen som er feilplassert. Dessuten er det noen logiske feil i scriptet ditt. Du forsøker å si at hvis submitknappe n er trykket så skal den sjekke alle inputfelt. Det er helt fint, men så sier du at hvis inputknappen ikke er trykket (else-biten) så skal man sende en epost. jeg har endret litt på scriptet ditt: <?php /* * Viser alle feil - fint for debugging, i live-script ville jeg satt * denne til (E_NONE) eller loggført feil */ error_reporting(E_ALL); /* * Trinær operator. * Sier at hvis feltene er tomme er variabelen lik "" ellers * verdien som bruker har skrevet inn */ $submit = isset($_POST['submit']); $navn = empty($_POST['navn']) ? "" : $_POST['navn']; $epost = empty($_POST['epost']) ? "" : $_POST['epost']; $dato = empty($_POST['dato']) ? "" : $_POST['dato']; $map = empty($_POST['map']) ? "" : $_POST['map']; $tekst = empty($_POST['tekst']) ? "" : $_POST['tekst']; /* * En enklere måte å skrive ut html på, og i tillegg * kan du bruke variabelnavn i scriptet, eks $navn, $epost osv * Må ikke ha whitespace før html-koden */ print <<<HTML <form action="" method="post"> <h3>Utfordre oss</h3> <p>Selv om vi ikke er en klan som sikter mot stjernene så er det altid gøy med litt skikkelig motstand fra andre enn mistenkelige tyske mix-klener Derfor gir vi deg her muligheten til å utfordre oss til en kamp/pcw. Bare fyll ut skjemaet under !<br><br> <span class="tekstomr">Navnet på klanen din *</span><input type="text" size="25" maxlength="35" name="navn" value="$navn"><br> <span class="tekstomr">E-postadressen din *</span><input type="text" size="25" maxlength="35" name="epost" value="$epost"><br> <span class="tekstomr">Dato og klokkeslett *</span><input type="text" size="25" maxlength="35" name="dato" value="$dato"><br> <span class="tekstomr">Foretrukket map *</span><input type="text" size="25" maxlength="35" name="map" value="$map"><br> <span class="tekstomr">Tilleg</span><textarea type="textarea" name="tekst" rows="5" cols="25" value="$tekst"></textarea><br> felter med * må fylles ut <br /> <input type="submit" class="knapp" name="submit" value="OK!"> <input type="reset" class="knapp" value="SLETT" name="slett"> </p> </form> HTML; /* Avslutter html-koden */ /* * Hvis submitknappen er trykket - gjør dette: */ if ($submit){ /* * Sjekker navnefelt * De andre feltene sjekkes på samme måte */ if (!$navn){ echo ("<p>Du har glemt å oppgi navnet ditt</p>"); // "return" avbryter scriptet return; } if (!$epost){ echo ("<p>Du har glemt å oppgi epost</p>"); return; } if (!$dato){ echo ("<p>Du har glemt å oppgi dato eller klokkeslett</p>"); return; } if (!$map){ echo ("<p>Du har glemt å oppgi hvilket map dere ønsker å spille</p>"); return; } if (!$tekst){ echo ("<p>Du har glemt å skrive en beskjed</p>"); return; } /* * Hvis alt er greitt, scriptet er ikke avbrutt gjør dette: */ $sendto = "[email protected]"; // Skriv inn din e-mail. $subject = "Utfordring"; // Her velger du tittel. // for å få tak i ip bruker vi funksjonen getenv('REMOTE_ADDR') $ip = getenv('REMOTE_ADDR'); $message = " Navn: $navn ($epost) Tekst: $tekst Senders ip: $ip "; $headers = "Fra: $navn\r\n"; /* * Forsøker å sende epost * Forutsetter at man har en smtp-server tilgjengelig * Hvis det ikke går så bra - avbryt scriptet og skriv ut en passende feilmelding */ mail($sendto, $subject, $message, $headers) or die("<p>Det gikk ikke så bra.</p>"); exit; // Hvis alt går bra - skriv ut dette: echo ("<p>Meldingen din er sendt.</p>"); } ?> Håper dette kan hjelpe deg. 5727189[/snapback] Jeg syns dette er så rart! isted funket det, nå ikke... Sorry:( Jeg har endret litt på koden, fjernet <<<HTML og HTML; for det var der parseren gren sine bitre tårer. Ny versjon finnes på: http://nibbler.no/files/form.php Finner jeg en løsning på <<<HTML skal jeg poste det også Endret 9. mars 2006 av CruellaDeVille Lenke til kommentar
CruellaDeVille Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 <?php /* * Viser alle feil - fint for debugging, i live-script ville jeg satt * denne til (E_NONE) eller loggført feil */ error_reporting(E_ALL); /* * Trinær operator. * Sier at hvis feltene er tomme er variabelen lik "" ellers * verdien som bruker har skrevet inn */ $submit = isset($_POST['submit']); $navn = empty($_POST['navn']) ? "" : $_POST['navn']; $epost = empty($_POST['epost']) ? "" : $_POST['epost']; $dato = empty($_POST['dato']) ? "" : $_POST['dato']; $map = empty($_POST['map']) ? "" : $_POST['map']; $tekst = empty($_POST['tekst']) ? "" : $_POST['tekst']; /* * En enklere måte å skrive ut html på, og i tillegg * kan du bruke variabelnavn i scriptet, eks $navn, $epost osv * Må ikke ha whitespace før html-koden * NB: etter <<<HTML må det være linjeskift, IKKE whitespace */ print <<<HTML <form action="" method="post"> <h3>Utfordre oss</h3> <p>Selv om vi ikke er en klan som sikter mot stjernene så er det altid gøy med litt skikkelig motstand fra andre enn mistenkelige tyske mix-klener Derfor gir vi deg her muligheten til å utfordre oss til en kamp/pcw. Bare fyll ut skjemaet under !<br><br> <span class="tekstomr">Navnet på klanen din *</span><input type="text" size="25" maxlength="35" name="navn" value="$navn"><br> <span class="tekstomr">E-postadressen din *</span><input type="text" size="25" maxlength="35" name="epost" value="$epost"><br> <span class="tekstomr">Dato og klokkeslett *</span><input type="text" size="25" maxlength="35" name="dato" value="$dato"><br> <span class="tekstomr">Foretrukket map *</span><input type="text" size="25" maxlength="35" name="map" value="$map"><br> <span class="tekstomr">Tilleg</span><textarea type="textarea" name="tekst" rows="5" cols="25" value="$tekst"></textarea><br> felter med * må fylles ut <br /> <input type="submit" class="knapp" name="submit" value="OK!"> <input type="reset" class="knapp" value="SLETT" name="slett"> </p> </form> HTML; /* * Avslutter html-koden * NB INGENTING annet kan stå på denne linjen (HTML;) */ /* * Hvis submitknappen er trykket - gjør dette: */ if ($submit){ /* * Sjekker navnefelt * De andre feltene sjekkes på samme måte */ if (!$navn){ echo ("<p>Du har glemt å oppgi navnet ditt</p>"); // "return" avbryter scriptet return; } if (!$epost){ echo ("<p>Du har glemt å oppgi epost</p>"); return; } if (!$dato){ echo ("<p>Du har glemt å oppgi dato eller klokkeslett</p>"); return; } if (!$map){ echo ("<p>Du har glemt å oppgi hvilket map dere ønsker å spille</p>"); return; } if (!$tekst){ echo ("<p>Du har glemt å skrive en beskjed</p>"); return; } /* * Hvis alt er greitt, scriptet er ikke avbrutt gjør dette: */ $sendto = "[email protected]"; // Skriv inn din e-mail. $subject = "Utfordring"; // Her velger du tittel. // for å få tak i ip bruker vi funksjonen getenv('REMOTE_ADDR') $ip = getenv('REMOTE_ADDR'); $message = " Navn: $navn ($epost) Tekst: $tekst Senders ip: $ip "; $headers = "Fra: $navn\r\n"; /* * Forsøker å sende epost * Forutsetter at man har en smtp-server tilgjengelig * Hvis det ikke går så bra - avbryt scriptet og skriv ut en passende feilmelding */ mail($sendto, $subject, $message, $headers) or die("<p>Det gikk ikke så bra.</p>"); exit; // Hvis alt går bra - skriv ut dette: echo ("<p>Meldingen din er sendt.</p>"); } ?> versjon finnes på: http://nibbler.no/files/form.php Lenke til kommentar
trondes Skrevet 9. mars 2006 Del Skrevet 9. mars 2006 [....] HTML; /* Avslutter html-koden */ [....] Håper dette kan hjelpe deg. 5727189[/snapback] Jeg syns dette er så rart! isted funket det, nå ikke... Sorry:( Jeg har endret litt på koden, fjernet <<<HTML og HTML; for det var der parseren gren sine bitre tårer. Ny versjon finnes på: http://nibbler.no/files/form.php Finner jeg en løsning på <<<HTML skal jeg poste det også 5727913[/snapback] Kan vel ikke ha noe på linjen der du avslutter parsingen HTML; ikke et mellomrom en gang. btw fint program 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å