Satfreaked Geplaatst: 16 juli 2007 Geplaatst: 16 juli 2007 Hoe kan ik op me site de optie maken dat je je in kan schrijven voor een nieuws brief. Satfreaked.
Puch Geplaatst: 16 juli 2007 Geplaatst: 16 juli 2007 Via een formulier ism met een database Ik heb vlug wat in elkaar geschoten met simpele controles, een beetje opmaak maar niet geheel volgens de html regels, maar goed het werkt Maak in de database een tabel 'newsletter' aan Code: CREATE TABLE `newsletter` ( `id` int(10) unsigned NOT NULL auto_increment, `naam` varchar(200) NOT NULL default '', PRIMARY KEY (`id`)) ENGINE=MyISAM ; Er zijn volgende controles op het emailadres -invullen -er moet uiteraard een @ instaan -minimum 2 tekens voor de @ -domein moet bestaan -Als het emailadres reeds ingeschreven is wordt het niet in de database gezet. Plak onderstaaande code in een kladblok en sla op als newsletter.php Vul in de function verbinden de database gegevens in vb bij $gebruiker = "gebruikersnaam"; Succes Code: <?phpsession_start();function verbinden(){$host = "localhost";$gebruiker = ""; // vul tussen de quotes database gebruikersnaam in$ww_db = ""; // vul tussen de quotes database wachtwoord in$database = ""; // vul tussen de quotes database naam in$link = mysql_connect("$host", "$gebruiker", "$ww_db");mysql_select_db ("$database");}if (isset ($_POST['Submit'])){ unset ($fout); extract ($_POST); verbinden(); $_SESSION['nieuwsbrief_naam'] = $naam; $_SESSION['nieuwsbrief_email'] = $email; $zoeken = strpos ($email, "@"); $pos_at = strrchr($email, "@"); $vind_domein = substr($pos_at, 1); $domein = "www." . $vind_domein; $controle = gethostbyname($domein);$query = "SELECT email FROM newsletter";$sql = mysql_query ($query) or die (mysql_error());while ($gegevens = mysql_fetch_array ($sql)){ $controle_email[] = $gegevens['email']; }$patroon = "^([a-zA-Z0-9][a-zA-Z0-9\\._-]{0,254}[a-zA-Z0-9])@([a-zA-Z0-9][a-zA-Z0-9\\._-]{0,253}[a-zA-Z0-9])\\.([A-Za-z]{2,10})$";if (!ereg($patroon, $email)){ $fout .= "<font color=red><strong>* Het emailformaat is niet correct.</strong></font>";}elseif ($controle == $domein){ $fout .= "<font color=red><strong>* Het domein bestaat niet.</strong></font>"; }elseif (($keuze == "UIT geschreven") && (!in_array($email, $controle_email))){ $fout .= "<font color=red><strong>* Het opgegeven email adres is niet ingeschreven op onze nieuwsbrief.</strong></font>"; }elseif (($keuze == "IN geschreven") && (in_array($email, $controle_email))){unset($_SESSION['nieuwsbrief_naam'], $_SESSION['nieuwsbrief_email']);$fout .= "<font color=red><strong>* Het emailadres is reeds ingeschreven.</strong></font>"; }else{ if (($keuze == "UIT geschreven") && (in_array($email, $controle_email))){ $query= "DELETE FROM newsletter WHERE email= '$email' "; $results = mysql_query($query) or die (mysql_error()); $fout .= "<font color=red><strong>* Het emailadres werd verwijderd uit onze database.</strong></font>"; unset($_SESSION['nieuwsbrief_naam'], $_SESSION['nieuwsbrief_email']); } else{$query= ("INSERT INTO `newsletter` (`email`) VALUES ('$email')"); $results = mysql_query($query) or die (mysql_error()); unset($_SESSION['nieuwsbrief_naam'], $_SESSION['nieuwsbrief_email']); $fout .= "<font color=red><strong>* Het emailadres werd geregistreerd.</strong></font>"; } }}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title></head><body><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> <h3>Nieuwsbrief</h3> <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" name="Nieuwsbrief" id="Nieuwsbrief"> <table width="609" border="0" cellspacing="5"> <tr> <td colspan="3"><?php if (isset ($fout)){ print $fout; }?></td> </tr> <tr> <td width="148"><div align="right">* Email address </div></td> <td colspan="2"><label> <input name="email" type="text" id="email" size="30" value="<?php if (isset($_SESSION['nieuwsbrief_email'])){ print $_SESSION['nieuwsbrief_email']; } ?>" /> </label></td> </tr> <tr> <td><div align="right">* Ik wil</div></td> <td colspan="2"> <select name="keuze" id="keuze"> <option value="IN geschreven">inschrijven</option> <option value="UIT geschreven">uitschrijven</option> </select> op de nieuwsbrief</td> </tr> <tr> <td> </td> <td colspan="2"> </td> </tr> <tr> <td height="37"> </td> <td width="116"><input name="Submit" type="Submit" value="Send" /></td> <td width="319"><input name="reset" type="reset" value="Reset" id="reset" /></td> </tr> </table> </form> </td> </tr></table></body></html> iMac 27" macOS SierraiPhone 5s iOS 10
Satfreaked Geplaatst: 18 juli 2007 Auteur Geplaatst: 18 juli 2007 Nou Puch, echt tof man. Ik ga het vanavond proberen. Nu weet ik niet of ik dit goed doe, maar stel gelijk me volgende vraag hier maar. Bij Google zie ik als ik Fenbo intik de site komen maar staat als Kopje { start } en dat was eerst { Home } maar wil graag { Fenbo Eco Cleaning products } er hebben staan. Hoe doe ik dat. Satfreaked.
Puch Geplaatst: 18 juli 2007 Geplaatst: 18 juli 2007 Je moet de titel van je pagina wijzigen. Op de index pagina staat in het head gedeelte van je html code de <title></title> tag Nu zal daar "start" tussen staan Verander die "start" in bijvoorbeeld "Fenbo - Eco Cleaning products" Dit doe doe je met al je pagina's maar dan telkens met een andere titel Fenbo - Horeca reinigers Fenbo - Etol vaatwasserproducten Fenbo - ABC systeem enz.. Even geduld tot de google bot nog eens langs je site komt en dan zal het aangepast zijn. btw Ik heb het nog een extra pagina aangemaakt voor het uitlezen van de ingeschreven email adressen. Zo kan je zien welke adressen er ingeschreven zijn. Ook een config file aangemaakt. Vul dus de database gegevens in op de config.php pagina. Alles zit in de bijlage van deze post mocht je nog vragen hebben pm me maar. Succes iMac 27" macOS SierraiPhone 5s iOS 10
Digger Geplaatst: 18 juli 2007 Geplaatst: 18 juli 2007 Citaat: Via een formulier ism met een database Code: $vind_domein = substr($pos_at, 1); $domein = "www." . $vind_domein; $controle = gethostbyname($domein); Wat een akelige controle <img src="/forums/images/graemlins/smile.gif" alt="" /> Het is handiger om te controleren of het domein MX-records heeft. Die zijn namelijk wel 'verplicht'. Ik heb bijvoorbeeld een paar e-mail-only (sub)domeinen zonder A-records, maar wel met MX-records uiteraard.Maargoed zorg ook nog VOORDAT je mensen activeert als actief nieuwsbrieflezer ze eerst nog een email krijgen met een link ofzo om hun emailadres te bevestigen. Zo voorkom je lolbroeken die anderen lidmaken e.d. en/of typo's voorkomen zodat je met een vervuilde database zit van niet-bestaande adressen.
Puch Geplaatst: 19 juli 2007 Geplaatst: 19 juli 2007 Citaat: Maargoed zorg ook nog VOORDAT je mensen activeert als actief nieuwsbrieflezer ze eerst nog een email krijgen met een link ofzo om hun emailadres te bevestigen. Zo voorkom je lolbroeken die anderen lidmaken e.d. en/of typo's voorkomen zodat je met een vervuilde database zit van niet-bestaande adressen. Dat zit in mijn websites ingebouwd, maar ik denk dat satfreaked zo al een hele boterham te verwerken heeft. <img src="/forums/images/graemlins/grin.gif" alt="" /> Citaat: Wat een akelige controle Het is handiger om te controleren of het domein MX-records heeft. Die zijn namelijk wel 'verplicht'. Ik heb bijvoorbeeld een paar e-mail-only (sub)domeinen zonder A-records, maar wel met MX-records uiteraard. hmm, leg even kort uit hoe je die controle doet? Heb er nl nog niet van gehoord. Thx iMac 27" macOS SierraiPhone 5s iOS 10
Digger Geplaatst: 19 juli 2007 Geplaatst: 19 juli 2007 Citaat: hmm, leg even kort uit hoe je die controle doet?Heb er nl nog niet van gehoord.Thx http://nl3.php.net/manual/en/function.getmxrr.phpEn dan hoef je het array nog niet eens te verwerken. Gewoon afgaan op de returnwaarde van die functie.Edit: dus in het geval van pietje@mijnemaildomein.topdomein.invalid alles na de @ checken.In mijn geval: Code: host -t a spamreports.tweak-it.netspamreports.tweak-it.net has no A recordhost -t mx spamreports.tweak-it.net spamreports.tweak-it.net mail is handled by 10 graver.xs4all.nl. In jouw check zou je dus www.spamreports.tweak-it.net checken, en dat gaat niet altijd werken (in dit geval wel, aangezien mijn Registrar het schijnbaar leuk vindt om alle niet bestaande A-records naar zichtzelf te verwijzen :S)
Puch Geplaatst: 19 juli 2007 Geplaatst: 19 juli 2007 Thx, ik bekijk het even <img src="/forums/images/graemlins/xyxthumbs.gif" alt="" /> iMac 27" macOS SierraiPhone 5s iOS 10
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen