dynamisch informatie vragen
ik zal even uitleggen hoe het zit.
Ik heb een tabel "subscribers" (nieuwsbriefsubscribers wel te verstaan)
CREATE TABLE `subscribers` (
`id` int(11) NOT NULL auto_increment,
`id_landen` int(11) NOT NULL default '0',
`voornaam` varchar(255) default NULL,
`achternaam` varchar(255) default NULL,
`email` varchar(255) default NULL,
`entrydate` datetime default NULL,
`active` enum('1','0') default NULL,
`ip` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `subscriber_FKIndex1` (`id_landen`)
);
daarin heb je een aantal velden met dingen die je wilt weten van een subscriber. Nu moet het mogelijk zijn voor een admin om opties toe te voegen aan de database zonder dat de admin toegang mag hebben tot de database en dan moet het dus ook meteen zo zijn dat wanneer een subscriber zich aan meldt voor deze nieuwsbrief hij dan ook direct die toegevoegde velden kan invullen.
dit is dus per mailinglijst of zelfs per nieuwsbrief verschillend, maar daar hebben we dan ook een extra tabel "mailinglijst_has_subscriber" voor.
Ik weet dat het een lastige vraag is, maar ik hoop dat iemand me kan helpen...
ik heb trouwens al wel een subscribe, unsubscribe en bevestiging met een het sturen van een bevestigingsmailtje met een link en als daar op geklikt wordt ben je toegevoegd. Dit is dus met een vast stramien en niet dynamisch...
Normaal is het wel de bedoeling dat je het zelf maakt en dat wij het eventueel verbeteren ...
zo meldt je je aan
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
if($_POST["action"]=="check"){
$error=array();
if(trim($_POST["email"])=="" || !ereg("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",strtolower($_POST["email"]))){
$error[]="<li>Vul een juist E-mailadres in alstublieft</li>";
}
$select="SELECT * FROM subscribers WHERE email='".trim($_POST["email"])."'";
$result=mysql_query($select)
or die(mysql_error());
if(mysql_num_rows($result)!=0){
$error[]="<li>".$lang["error_existingemail"]."</li>";
}
// Geen fouten geconstateerd! Mailen en inserten dus!
if(count($error)==0){
$hash=md5(microtime());
// insert into database
$query="INSERT INTO `subscribers` ( `id` , `id_landen`, `email` , `confirmed` , `confirmationhash` , `entrydate` , `confirmationdate` , `active`) ".
"VALUES (".
"'', '$id_landen', '".trim($_POST["email"])."', '0', '$hash', Now(''), Now(''), '0');";
mysql_query($query)
or die(mysql_error());
$id=mysql_insert_id();
// confirmationmail
$body=ereg_replace("%e-mailadres%",$_POST["email"],$lang["mail"]);
$body=ereg_replace("%confirmationlink%","confirm.php?hash=$hash&id=$id");
mail($_POST["email"],$settings["confirmsubject"],$body,"From: ".$settings["emailfrom"]."\r\nReturn-Path: ".$settings["emailreturnpath"]."\r\n");
$_POST["action"]="succes";
}else{
unset($_POST["action"]);
}
}
// geen actie, dus toon het formulier leeg
if($_POST["action"]==""){
require_once("templates/header.php");
?>
if($_POST["action"]=="check"){
$error=array();
if(trim($_POST["email"])=="" || !ereg("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",strtolower($_POST["email"]))){
$error[]="<li>Vul een juist E-mailadres in alstublieft</li>";
}
$select="SELECT * FROM subscribers WHERE email='".trim($_POST["email"])."'";
$result=mysql_query($select)
or die(mysql_error());
if(mysql_num_rows($result)!=0){
$error[]="<li>".$lang["error_existingemail"]."</li>";
}
// Geen fouten geconstateerd! Mailen en inserten dus!
if(count($error)==0){
$hash=md5(microtime());
// insert into database
$query="INSERT INTO `subscribers` ( `id` , `id_landen`, `email` , `confirmed` , `confirmationhash` , `entrydate` , `confirmationdate` , `active`) ".
"VALUES (".
"'', '$id_landen', '".trim($_POST["email"])."', '0', '$hash', Now(''), Now(''), '0');";
mysql_query($query)
or die(mysql_error());
$id=mysql_insert_id();
// confirmationmail
$body=ereg_replace("%e-mailadres%",$_POST["email"],$lang["mail"]);
$body=ereg_replace("%confirmationlink%","confirm.php?hash=$hash&id=$id");
mail($_POST["email"],$settings["confirmsubject"],$body,"From: ".$settings["emailfrom"]."\r\nReturn-Path: ".$settings["emailreturnpath"]."\r\n");
$_POST["action"]="succes";
}else{
unset($_POST["action"]);
}
}
// geen actie, dus toon het formulier leeg
if($_POST["action"]==""){
require_once("templates/header.php");
?>
<br />
<br />
<table width="500" border="1" cellpadding="5" cellspacing="0" align="center" bordercolor="#3388CA">
<tr bgcolor="#3388CA">
<td>Schrijf je hier in voor deze nieuwsbrief !</td>
</tr>
<tr>
<td>
Code (php)
<br />
<form method="post" action="">
<input type="hidden" name="action" value="check">
<table width="100%">
<colgroup>
<col width="250">
<col width="250">
</colgroup>
<tr>
<td>E-mail</td>
<td><input type="text" name="email" value="" class="subscribe_inputtype"></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" class="subscribe_submit" value="versturen"></center></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
Code (php)
1
2
3
4
5
2
3
4
5
<?php
require_once("templates/footer.php");
}else if($_POST["action"]=="succes"){
require_once("templates/header.php");
?>
require_once("templates/footer.php");
}else if($_POST["action"]=="succes"){
require_once("templates/header.php");
?>
<br />
<br />
<table width="500" border="1" cellpadding="5" cellspacing="0" align="center" bordercolor="#3388CA">
<tr bgcolor="#3388CA">
<td></td>
</tr>
<tr>
<td><br><Br><br><br></td>
</tr>
-voornaam
-achternaam
-adres
-postcode
-Woonplaats
-land van herkomst
-telefoonnummer
-e-mailadres
-prijsvraag
-hobby`s
-etc.
kan echt niemand me hierbij helpen...
Dan doe je dat met een query he :p
maar dat is nu juist niet de issue....
het is de bedoeling dat...de tabel vrij minimaal is (standaard, maar dat er per bedrijf een tabel wordt aangemaakt met deze waarden plus nog eens extra waarden die de admin aan geeft ZONDER toegang tot de database. Deze gegevens moet ieman die zich in schrijft op een nieuwsbrief kunnen invoeren EN kunnen aanpassen (dat laatste is dan op zich nog niet zo`n probleem, maar het toevoegen van die velden is toch echt een ander verhaal en het weergeven van die velden
(als dat er is, is het gewoon een kwestie van kijken in de database welk type het is en welke invoermogelijkheden daar dan bij horen, dat is ook nog eens een mooie klus)
ik gok dat er nog een tabel "type_input" oid moet bijkomen en een tussentabel (als ik nog eens van mijn oorspronkelijke ontwerp uit ga) vanwege "veel-op-veel" relatie. Het probleem is echter de optie die gegeven is om een onderdeel naar keuze toe te voegen.
te moeilijk voor mij :s kzou het echt niet weten
ik weet dat het zeer cryptisch is....
Is dit wat je bedoelt?
dus het rechtensysteem werkt, maar daar gaat het dus niet om, het gaat om het verkrijgen van gegevens van een "subscriber". Niet elke klant wil immers dezelfde gegevens opvragen.
Die rol kan natuurlijk ook door een super user uitgedeeld worden. Dat bepaal jij wat iemand mag en niet mag
maar goed...
-een subscriber meldt zich aan met de gegevens die de klant wil hebben
-de klant heeft een eigen tabel
-in die tabel staan dan dus links naar die types
-bovendien is er nog een verbindingstabel tussen types en nieuwsbrieven.
alleen zijn er types zoals checkboxen en radiobuttons die een beetje anders werken dan een tekstfield of input veld.
of subscribers de mogelijkheid bieden om plaatjes toe te voegen van een bepaald formaat.