Archief - PHP: mail script, zitten hier fouten in ?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

knuppel

Legacy Member
heb code aangepast

PHP:
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>"> 
<input name="Mailadres" type="text" class="nieuwsbrief" value="Typ u e-mail adres" /> 
<input type="submit" name="submit" class="knop" value="Verzenden"  /> 
<br /> 
<input type='radio' name='actie' value='aanmelden' checked="checked" /> 
Aanmelden 
<input type='radio' name='actie' value='afmelden' /> Afmelden 
</form> 


<?php  

//---------------------------------------- 
// Verander de gegevens hieronder: 

$JouwWebsiteNaam = "http://www.2G-desi9n.be";   
// Jouw website naam 
$JouwEmail = "[email protected]";   
// Jouw e-mail adres 
$DataBestand = "nieuwsbrief_data.dat";   
// De locatie van het databestand 
$DitBestand = "http://www.vbvk.be/nieuwsbrief.php";   
// De url van dit bestand 




// Hierna hoef je niks meer te veranderen! 
//---------------------------------------- 

if($_SERVER['REQUEST_METHOD'] == "POST"){ 

// Begin functie om het e-mail adres te controleren 
function ControleerEmail($a) {     
return ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$a);     
}     
// Einde functie om het e-mail adres te controleren 

$NieuwsbriefData = file($DataBestand);   

if($_POST['actie'] == "aanmelden") {   
if($_POST['Mailadres']) {   
for($i = 0; $i < count($NieuwsbriefData); $i++) {   
if(strstr($NieuwsbriefData[$i],$_POST['Mailadres'])) { $alinlijst = true; }   
}   

if(!ControleerEmail($_POST['Mailadres'])) { echo("<b>Het e-mail adres is ongeldig!</b><br><br>"); }   
elseif($alinlijst == "true") { echo("<b>Het e-mail adres staat al in de lijst!</b><br><br>"); }   
else {   
$NieuwsbriefB = fopen($DataBestand,"a");   
fputs($NieuwsbriefB,$_POST['Mailadres'] . "\r\n");   
fclose($NieuwsbriefB);   
mail($_POST['Mailadres'],"Aanmelding Nieuwsbrief " . $JouwWebsiteNaam , "Beste eigenaar van " . $_POST['Mailadres'] . " ,\n\nU of iemand anders heeft dit e-mail adres\naangemeld bij de Nieuwsbrief van " . $JouwWebsiteNaam . " .\nWilt u dit ongedaan maken, dan kan dit op\n" . $DitBestand . ".\n\n " . $JouwWebsiteNaam ,"From: ".$JouwWebsiteNaam." <".$JouwEmail.">");   
echo("<b>Het e-mail adres is succesvol aangemeld!</b><br><br> 
<br><br> 
");   
}   

}   

else { echo("<b>Je hebt geen e-mail adres ingevuld!</b><br><br>"); }   

}   

elseif($_POST['actie'] == "afmelden") {   
if($_POST['Mailadres']) {   
$NieuwsbriefB = fopen($DataBestand,"w");   
for($i = 0; $i < count($NieuwsbriefData); $i++) {   
if(!strstr($NieuwsbriefData[$i],$_POST['Mailadres'])) { fputs($NieuwsbriefB,$NieuwsbriefData[$i]); }   
else { $gelukt = true; }   
}   
fclose($NieuwsbriefB);   
if($gelukt == "true") {   
mail($_POST['Mailadres'],"Afmelding Nieuwsbrief " . $JouwWebsiteNaam ,"Beste eigenaar van " . $_POST['Mailadres']  ." ,\n\nU of iemand anders heeft dit e-mail adres\nafgemeld bij de Nieuwsbrief van ". $JouwWebsiteNaam . " .\nWilt u dit ongedaan maken, dan kan dit op\n ". $DitBestand. ".\n\n ". $JouwWebsiteNaam ,"From: ".$JouwWebsiteNaam." <".$JouwEmail.">");   
echo("<b>Het e-mail is succesvol afgemeld!</b><br><br>");   
}   
else {   
echo("<b>Het e-mail is niet gevonden!<br>Probeer het opnieuw.</b><br><br>");   
}   

}   

else { echo("<b>Je hebt geen e-mail adres ingevuld!</b><br><br>"); }   

}   
} 

?>

Het ligt echt aan de hosting zelf, maar heb er naar gemaild en ze weten het ook niet echt precies

http://www.vbvk.be/nieuwsbrief2.php (nieuwe hosting --> werkt niet)

http://www.2g-desi9n.be/nieuwsbrief2.php (oude hosting --> werkt wel)

Meld je gerust maar aan :)

dJeez

Legacy Member
Het lijkt toch tot op zekere hoogte te werken nu. Maar je weet toch dat om 't even wie in principe ALLE emails kan wissen door iets 'idioots' in te geven als email adres bij 't uitschrijven?

knuppel

Legacy Member
eum neen dat wist ik niet :s , hoe beveilig je dit mss ?

De emails worden opgeslagen, maar je krijgt die mail maar niet toe, op de nieuwe hosting

dJeez

Legacy Member
knuppel zei:
eum neen dat wist ik niet :s , hoe beveilig je dit mss ?
Door ook bij 't uitschrijven te testen of de input wel degelijk een email adres is ipv de input zonder enige controle te gebruiken om emails te verwijderen - en dan nog via strstr, eigenlijk zou je best op gelijkheid zoeken. Desnoods converteer je de emails steeds naar lowercase (zowel voor 't wegschrijven naar bestand als bij 't verwijderen)...

Het probleem zou wel eens kunnen liggen aan 't feit dat relaying niet is toegestaan, gebruik dus als afzender van de mail eens een email adres van het domein waarop je aan 't versturen bent.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan