dynamisch informatie vragen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert

Robert

17/11/2004 12:05:00
Quote Anchor link
vage titel toch ?

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...
 
PHP hulp

PHP hulp

24/11/2024 07:13:05
 
Christophe

christophe

17/11/2004 12:47:00
Quote Anchor link
wat voor opties :s en hoe bedoel je ik befrijpt het niet zo goed wat moeten we juist doen .
Normaal is het wel de bedoeling dat je het zelf maakt en dat wij het eventueel verbeteren ...
 
Robert

Robert

17/11/2004 13:12:00
Quote Anchor link
oke...

zo meldt je je aan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if(isset($error) && count($error)!=0){
    echo "<font color=\"red\"><ul>";
    while(list($key,$waarde)=each($error)){
      echo $waarde."\n";
    }

    echo "</ul></font>";
}

?>

<br />
<form method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$PHP_SELF?>
">
<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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=stripslashes($_POST["email"])?>
" 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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$lang["subscription"]?>
</td>
</tr>
<tr>
<td><br><Br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=ereg_replace("%e-mailadres%",$_POST["email"])?>
<br><br></td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
require_once("templates/footer.php");
}

?>
 
Robert

Robert

17/11/2004 13:13:00
Quote Anchor link
met opties bedoel ik...

-voornaam
-achternaam
-adres
-postcode
-Woonplaats
-land van herkomst
-telefoonnummer
-e-mailadres
-prijsvraag
-hobby`s
-etc.
 
Robert

Robert

17/11/2004 15:48:00
Quote Anchor link
kan echt niemand me hierbij helpen...
 
Christophe

christophe

17/11/2004 15:50:00
Quote Anchor link
Dus eigelijk wil je als ze ingelogt zijn dat ze op een pagina hun gegevens kunnen zien.Of niet?
Dan doe je dat met een query he :p
 
Robert

Robert

17/11/2004 16:01:00
Quote Anchor link
ja dat zou simpel zijn he ?

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)
 
Robert

Robert

17/11/2004 16:16:00
Quote Anchor link
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.
 
Christophe

christophe

17/11/2004 16:18:00
Quote Anchor link
te moeilijk voor mij :s kzou het echt niet weten
 
Robert

Robert

18/11/2004 09:44:00
Quote Anchor link
ik weet dat het zeer cryptisch is....
 
Mac

Mac

18/11/2004 09:54:00
Quote Anchor link
je zou elke gebruiker een rol mee kunnen geven of een bepaalde level. Die rol word uitgedeeld door de admin. bv rol = user, rol = superuser of rol is admin. Bij inloggen die gegevens wegschrijven naar een sessie. Dan kan je bij elke pagina een controle inbouwen welke rol iemand heeft en kan jij bepalen wat persoon mag of niet mag.

Is dit wat je bedoelt?
 
Robert

Robert

18/11/2004 09:57:00
Quote Anchor link
nee, want dat is al duidelijk. Dat werkt ook al, want dat staat in het stuk ter verduidelijking van de rest....

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.
 
Mac

Mac

18/11/2004 09:58:00
Quote Anchor link
Die rol kan natuurlijk ook door een super user uitgedeeld worden. Dat bepaal jij wat iemand mag en niet mag
 
Robert

Robert

18/11/2004 10:50:00
Quote Anchor link
ja, oke...maar ik heb het dus in de OP niet over een rechtensysteem of wel ?

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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.