Avatar billede htmlkrede Nybegynder
14. januar 2005 - 10:39 Der er 13 kommentarer og
2 løsninger

fejl i formmail

Hej eksperter

Det drejer sig om et meget basalt php-formmail script som pludselig er stoppet med at virke.

Helt konkret drejer det sig om følgende to filer:

Formmail: http://users.cybercity.dk/~dsl103304/nameandq.htm

Scriptet: http://users.cybercity.dk/~dsl103304/formmail.php

Det har virket, så jeg kan ikke lige dreje hvor fejlen ligger - har også skrevet en mail til cybercity.

Kan i se hvor fejlen ligger? - for eksperter som jer burde det ikke tage mange minutter :-)

PFT htmlkrede
Avatar billede justask Nybegynder
14. januar 2005 - 11:06 #1
Hejsa

Well, du har ladet din form referere til /~bla37579/formmail.php i stedet for /~dsl103304/formmail.php - sikkert et lævn fra en testside. Du skal lige rette dine stier - overvej evt. at bruge relative stier.

<form action="http://users.cybercity.dk/~bla37579/formmail.php" method="get"> rettes til :
<form action="http://users.cybercity.dk/~dsl103304/formmail.php" method="get">

Når jeg taster http://users.cybercity.dk/~dsl103304/formmail.php ind får jeg fint fat i din formmail.php, pudsigt nok skrives din fil ud, det skal du nok kigge på, det er en sikkerhedsbrist at vi kan kigge med i din serverside kode!
Avatar billede horizon Nybegynder
14. januar 2005 - 11:20 #2
jeg vil nok hellere have lavet scriptet om til noget lignende dette:

<?php
//Variablerne

$receipient = 'cbs@christianbirk.dk';
$mailsubject = 'Henvendelse til JessenFalcons';

$returnurl_ok = 'http://users.cybercity.dk/~bla37579/mailsent.htm';
$returnurl_error = 'http://users.cybercity.dk/~bla37579/mailerror.htm';

$send = true;
$message = "\n";

//Funktionen som udskriver fejlen

function fejl($fejl) {

    $start_tekst = "<p>V&aelig;r venlig at g&aring; tilbage og ret dine informationer.</p>";

    $fejlmelding = "<ul>";

    for($i=0;$i<count($fejl);$i++) {
        $fejlmelding .= "<li>". $fejl[$i];
    }

    $fejlmelding .= "</ul>";

    echo top("Fejl") . "Du har ikke udført følgende punkter:" . $fejlmelding . $start_tekst . bund();
    exit;

}

//Så ser vi om brugeren har skrevet noget i felterne

if(!ereg("[A-z0-9]+" $_name)) {

$fejl[] = "Du har ikke skrevet dit navn";

}elseif(!ereg("[A-z0-9]+" $email)) {

$fejl[] = "Du har ikke skrevet ndin e-mail";

}elseif(!ereg("[A-z0-9]+" $text)) {

$fejl[] = "Du har ikke skrevet nogen besked";

}

//Der var ingen problemer, vi sender beskeden
if($send == true) {
mail($receipient, $mailsubject, "Fra: ".$_GET[name]."\n\n".$_GET[text].", FROM: $_GET[email]);
header("Location: " . $returnurl_ok);
}else{
header("Location: ". $returnurl_error);
}

?>

Så skulle det virke ;)

Efter hvad jeg kunne se i det WHILE script så var det noget som checkede om der var skrevet noget i formene, en eller anden ret mig hvis jeg tager fejl. Men derfor jeg har udeladt det.
Avatar billede horizon Nybegynder
14. januar 2005 - 11:22 #3
hovsa... glemte lige noget til sidst

før kommentaren: "//Der var ingen problemer, vi sender beskeden"

skal du indsætte dette:

if(count($fejl) > 0) {
    gbog_fejl($fejl);
}

Sådan... ;)
Avatar billede justask Nybegynder
14. januar 2005 - 11:34 #4
Hep

Du skal bare være opmærksom på at http://users.cybercity.dk/~bla37579/mailerror.htm ikke findes. Du refererer til to forskellige sites; ~bla37579 og ~dsl103304.
Avatar billede htmlkrede Nybegynder
14. januar 2005 - 13:42 #5
justask - det er rigtigt... det havde jeg overset. Det har nok bare kørt på et gammelt web-hotel, som netop er blevet lukket.

Men filerne skulle gerne være de samme på begge to.

Jeg har rettet referencen til ~bla103304 i stedet.

Jeg kan stadig ikke få det til at virke.

Hvad kan der ellers være?
- Det undrer mig, som du også selv nævner at den viser scriptet og ikke kører det.

- horizon
Tak for dit bud, men da jeg er mega dårlig til php, kan jeg så ikke bede dig om at lave hele koden uden kommentarer, så jeg bare kan paste det ind i php-filen? pft
Avatar billede htmlkrede Nybegynder
15. januar 2005 - 10:20 #6
Jeg har stadig ikke fået løst problemet, så jeg er meget åben for nye forslag.

Pft htmlkrede
Avatar billede horizon Nybegynder
17. januar 2005 - 00:15 #7
<?php

$receipient = 'cbs@christianbirk.dk';
$mailsubject = 'Henvendelse til JessenFalcons';

$returnurl_ok = 'LINK TIL OK SIDE HER MELLEM ' ERNE';
$returnurl_error = 'LINK TIL ERROR SIDE HER MELLEM ' ERNE';

$send = true;
$message = "\n";

function fejl($fejl) {

    $start_tekst = "<p>V&aelig;r venlig at g&aring; tilbage og ret dine informationer.</p>";

    $fejlmelding = "<ul>";

    for($i=0;$i<count($fejl);$i++) {
        $fejlmelding .= "<li>". $fejl[$i];
    }

    $fejlmelding .= "</ul>";

    echo top("Fejl") . "Du har ikke udført følgende punkter:" . $fejlmelding . $start_tekst . bund();
    exit;

}

if(!ereg("[A-z0-9]+" $_name)) {

$fejl[] = "Du har ikke skrevet dit navn";

}elseif(!ereg("[A-z0-9]+" $email)) {

$fejl[] = "Du har ikke skrevet ndin e-mail";

}elseif(!ereg("[A-z0-9]+" $text)) {

$fejl[] = "Du har ikke skrevet nogen besked";

}

if(count($fejl) > 0) {
    gbog_fejl($fejl);
}

if($send == true) {
mail($receipient, $mailsubject, "Fra: ".$_GET[name]."\n\n".$_GET[text].", FROM: $_GET[email]);
header("Location: " . $returnurl_ok);
}else{
header("Location: ". $returnurl_error);
}

?>

P.S. hvis du ser noget tekst skrevet sådan her i en kode: //blah blah blah eller /*blah blah blah*/ så kan du sagtens smide det ind i din side da det er kommentarer som skjules ligesom når du laver <!--blah blah blah--> i html bortset fra at man kan ikke se kommentarerne i php...

Håber det virker nu ellers meld lige tilbage...
Avatar billede htmlkrede Nybegynder
19. januar 2005 - 20:27 #8
horizon - tak for forsøget men det virker stadig ikke...

Direkte link: http://users.cybercity.dk/~dsl103304/nameandq.htm

htmlkrede
Avatar billede htmlkrede Nybegynder
19. januar 2005 - 20:44 #9
Jeg har midlertidigt smidt de 'defekte' sider væk.

Omtalte sider kan nu finde på:

http://users.cybercity.dk/~dsl103304/formmail.php

http://users.cybercity.dk/~dsl103304/nameandq2.htm

pft
Avatar billede horizon Nybegynder
19. januar 2005 - 23:13 #10
prøver lige at "lege" lidt med det og gennemteste det selv...
Avatar billede horizon Nybegynder
19. januar 2005 - 23:48 #11
sådanne... nu virker det i hvert fald på min maskine, pånær jeg ikke har fejlsiderne.

<FORM> felterne skal rettes til dette:

* * *

<form action="formmail.php" method="post">


<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR VALIGN="top">
    <TD><FONT SIZE="1" FACE="'verdana'">


<B>Name:</B><BR>
<INPUT CLASS="felt" TYPE=TEXT NAME="navn" VALUE="" SIZE=45>
<BR><BR>

<B>E-mail:</B><BR>
<INPUT CLASS="felt" TYPE=TEXT NAME="email" VALUE="" SIZE=45>

<BR><BR>

<B>Question:</B>
<BR><TEXTAREA CLASS="felt" NAME="tekst" COLS=44 ROWS=10></TEXTAREA>
</FONT>

<INPUT CLASS="knap" TYPE="SUBMIT" VALUE="Send">

* * *

og så hele formmail.php filen skal se sådan her ud...

* * *

<?php

$receipient = 'cbs@christianbirk.dk';
$mailsubject = 'Henvendelse til JessenFalcons';

$returnurl_ok = 'http://users.cybercity.dk/~bla37579/mailsent.htm';
$returnurl_error = 'http://users.cybercity.dk/~bla37579/mailerror.htm';

$send = true;

function fejl($fejl) {

    $start_tekst = "<p>V&aelig;r venlig at g&aring; tilbage og ret dine informationer.</p>";

    $fejlmelding = "<ul>";

    for($i=0;$i<count($fejl);$i++) {
        $fejlmelding .= "<li>". $fejl[$i];
    }

    $fejlmelding .= "</ul>";

    echo top("Fejl") . "Du har ikke udfyldt følgende punkter:" . $fejlmelding . $start_tekst . bund();
    exit;

}

if(!ereg("[A-z0-9]+", $_POST['navn'])) {

$fejl[] = "Du har ikke skrevet dit navn";

}elseif(!ereg("[A-z0-9]+", $_POST['email'])) {

$fejl[] = "Du har ikke skrevet din e-mail";

}elseif(!ereg("[A-z0-9]+", $_POST['tekst'])) {

$fejl[] = "Du har ikke skrevet nogen besked";

}

if(count($fejl) > 0) {
    fejl($fejl);
}

if($send == true) {
mail("$receipient", "$mailsubject", "-Fra: \n $_POST[navn] \n\n -Besked: \n $_POST[tekst]", "FROM: $_POST[email]");
header("Location: ". $returnurl_ok);
}else{
header("Location: ". $returnurl_error);
}

?>

* * *

nu skulle det også gerne virke på din server...
Avatar billede htmlkrede Nybegynder
22. januar 2005 - 20:24 #12
horizon.

Jeg tror faktisk at du har en rigtig løsning.

Hvis du tager et kig på:
http://users.cybercity.dk/~dsl103304/nameandq2.htm

Jeg tror simpelthen at det er Cybercity, som har lukket for det varme vand :-)

Tror du ikke?
Avatar billede horizon Nybegynder
22. januar 2005 - 20:50 #13
hmm prøv at søge og erstatte alle POST med GET i begge to for at se om det har nogen virkning...
Avatar billede htmlkrede Nybegynder
10. maj 2005 - 10:45 #14
Takker mange gange for jeres hjælp
Avatar billede htmlkrede Nybegynder
10. maj 2005 - 10:47 #15
beklager justask, men jeg kan ikke få pointfordelings-funktionen til at virke....
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