Gå til innhold

php-script har gått amok! ...


Anbefalte innlegg

hei dere!

jeg trenger rask hjelp, for jeg har ved en feil laget et script som bomber e-post kontoen "vår" med e-post...!!!!

 

scriptet skal sende en e-mail til vår konto (liebig34...no-log.org) med info (for newsletter) når man skriver inn navn, sin egen e-mail og kommentar og klikker send. det funker når jeg bruker det, men en av testene jeg gjorde har på mystisk vis hengt seg opp, og blir sendt på nytt ca en gang i timen... og jeg aner ikke hvorfor!

 

sånn ser scriptet ut:

<BODY>

 

<div id="Layer1" align="right" >

<form id="form1" name="form1" method="post" action="e-maillist.php?process=yes">

 

<div align="right" style="height: 280px; width: 260px; position:absolute; background-color: #ffffff">

<p><span class="style3">

to join our e-maillist and receive our newsletter just enter...:<br><br>

your name/nickname: <br><input type="text" name="name" tabindex="1" style= "width: 200px"/>

<br />

 

 

your e-mail: <br><input type="text" name="email" tabindex="2" style= "width: 200px"/>

<br />

any message??: <br><textarea name="message" tabindex="3" style= "height: 80px; width: 210px">i want to join your e-mail list!

</textarea>

<br />

 

<input type="submit" name="Submit" value="Send" tabindex="5" /> <br>

</p>

<?php

 

 

if (isset($_GET[process]))

{

$name = $_POST[name];

$email = $_POST;

$message = $_POST[message];

 

## hvis ingen email adresse...

if ($email == "")

{

print 'you forgot to write your own e-mail adress!';

 

?>

 

 

<?php

}

 

else{

$fornavn = explode(" ", $name);

 

?>thanks! you'll hear from us!!

<?php ##echo $name." ".$email." \n".$message;

 

mail("[email protected]", "join newsletter ".$name, $message, $email, "FROM:$email");

}

}

?>

</span>

</div>

 

</BODY>

 

hmm... dette er bare rart..

kan noen hjelpe meg?

 

hlsen jeanette

Lenke til kommentar
Videoannonse
Annonse

hehehe.. ja.. jeg veit det er masse feil, men det er jo rart, at det funker til vanlig, selv med feil (og halve koder, ting jeg har tatt bort og flytta på osv..), men kun denne ene gangen slår det skikkelig feil og når jeg bruker scriptet igjen nå går alt som det skal...

..jeg tenkte, kanskje var det en feil på serveren akkurat da jeg klikka "send"???

Lenke til kommentar

hmm, tja, det ser vel ikke så fint ut og er ikke så ryddig, men jeg har aldri påstått at jeg er noen php-mester, og ettersom det jo funker til slutt syns jeg ikke det er så farlig. dessuten har det ikke noe med det jeg lurte på å gjløre.

 

--nei, jeg har ikke kontroll over serveren, jeg tenkte på at jeg kanskje skulle skrive en mail til han som har kontroll, og spørre om noe gikk galt 23mars kl 15:39, for det er da mailen som blir sendt om og om igjen stammer fra. hm

 

edit: det hjalp forresten ikke å slette fila...!

Endret av hjelp_jeanette
Lenke til kommentar

Det problemet der kan kort og godt ikke ligget i PHP. PHP har ingen form for kontinuerlig kjøring og vil derfor bare sende en mail pr. eksekvering. I mine øyne ligger problemet sannsynligvis på/i SMTP-serveren (programvaren som faktisk sender mailen) du sender fra (ev. serveren som mottar mailen). Det jeg tror skjer er at serveren som sender tror mailen ikke ble sendt eller mottar en status fra mottaker-server som tilsier at mailen ikke kom frem og/eller må sendes på nytt. Dette vil som oftest skje en god stund etterpå, og 1t er ikke utenkelig. Får man det samme problemet igjen får man effektivt en loop. Strengt tatt skal det aldri skjer siden SMTP-serveren egentlig skal gi opp etter x forsøk, men man veit jo aldri :shrug:

 

Forøvrig, har sett mye, mye verre kode enn der der og «feilene» i koden har absolutt ingenting med problemet du opplever.

Endret av Ernie
Lenke til kommentar
Kan du deffinere det du mener med dårlig kode?

Ja.

Jeg begynner med

$_POST variablene, her burde man vel strengt tatt brukt ' eller "

$_POST[ape] kan føre til at du får denne:

Notice: Use of undefined constant ape - assumed 'ape'

$_POST['ape'] blir mest korrekt.

 

Så har vi jo denne delen:

if ($email == "")
{
print 'you forgot to write your own e-mail adress!';

?>


<?php
}

else{
$fornavn = explode(" ", $name);

?>thanks! you'll hear from us!!
<?php ##echo $name." ".$email." \n".$message;

mail("[email protected]", "join newsletter ".$name, $message, $email, "FROM:$email");
}
}
?>

 

Den burde vel i grunn se noe ut som dette:

if ($email == "")
{
print 'you forgot to write your own e-mail adress!';
}
else
{
$fornavn = explode(" ", $name); /*Jeg skjønner heller ikke hvorfor denne linjen er med, 
det virker jo ikke som om den har noe som den blir brukt vidre i koden.*/
echo "thanks! you'll hear from us!!";
##echo $name." ".$email." \n".$message;
mail("[email protected]", "join newsletter ".$name, $message, $email, "FROM:$email");
}
?>

 

Og jeg trenge vel ikke å gå inn på validering av epost adresser og sikkerhet som dere vanligvis er flinke til å kritisere, men jeg skal si at i alle fall en strip_tags() burde legges til på det som kommer fra brukren.

Lenke til kommentar

hei.

ja, det var en gang meninga at man skulle få meldinga "thanks $fornavn, you'll hear from us soon", men så blei det bare teit så jeg droppa det.

 

og: strip_tags?? hm, jeg har ikke peiling på hva det er. har det med sikkerhet å gjøre? trenger jeg sikkerhet? hmmm...

 

hvis du er veldig hypp på å hjelpe meg med alle de små feilene mine kunne du gjerne forklart hva jeg har gjort feil i 'e-mail-oppsettet'. jeg ville nemlig at "from" skulle vises (i e-mailen vi får) som navnet brukeren skriver inn. men det gikk visst ikke helt.

nå står det bare alfa3000 som sikkert er navnet på serveren.

 

og forresten: vi får fremdeles en mail i timen...!

 

edit: eller ja, from "e-mailen" da...

Endret av hjelp_jeanette
Lenke til kommentar

Tja hvofor ikke.

 

mail("[email protected]", "join newsletter ".$name, $message, $email, "FROM:$email");

 

For det første så gir jo den FROM headren beskjed om at hvem det er fra skal vises som email-variablen. Og så gar du for mange parametere.

 

mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Fra php.net

Sånn skal en mail-funksjon se ut.

 

Så da blir skal det vel være sånn ca:

mail("[email protected]", "join newsletter " . $name, $message, "FROM:{$name}");

 

Av ren nyskerighet, hva slaks side er det du lager?

Endret av Hjelpphp
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...