Avatar billede kwanstudios Nybegynder
02. november 2005 - 21:48 Der er 8 kommentarer og
1 løsning

Simpel underskriftindsamling

Jeg ønsker at lave en meget simpel underskriftindsamling med PHP, det skal blot være så brugerne kan indtaste navn, e-mail og postnr og så vises det efter de har godkendt deres e-mail som de har fået en mail om. Er det kompliceret?

Jeg skal bruge det fredag, så hvis I evt. kan pege på en artikel et sted er det også fint, jeg har lidt viden om PHP på forhånd, så kan nok godt lave selve indsamling, det er det med e-mail verifikation der driller.
Avatar billede kwanstudios Nybegynder
02. november 2005 - 22:05 #1
Jeg er villig til at smide nogle hundrede kroner i puljen hvis det hjælper?
Avatar billede bromer Nybegynder
03. november 2005 - 00:01 #2
Det burde ikke være specielt besværligt! Har du adgang til en database?
Avatar billede bromer Nybegynder
03. november 2005 - 00:01 #3
Og jeg mindes ikke at man må bland point og betaling på eksperten. Tror bare du skal holde dig til pointene.
Avatar billede kwanstudios Nybegynder
03. november 2005 - 01:19 #4
Jeg har adgang til PHP, MySQL osv. på Webhosting.dk

Kan du lave et eksempel eller sende et link? Så vil jeg være meget taknemmelig.
Avatar billede wuggawugga Nybegynder
03. november 2005 - 09:37 #5
Hvis du selv har noget viden om PHP, burde du selv kunne lave dette system, det er meget simpelt.
Du skal bruge:
- En database med en enkelt tabel til dine brugere, husk et felt der viser em de er bekræftede eller ej.
- En side der lister alle underskrifter.
- En side hvor man kan tilmelde sig, denne side sender din email ud med mail() funktionen, eller PEARS mail klasser. Denne mail indeholder et link til den sidste side du skal bruge. Linket skal indeholde email adressen og en unik værdi til hver bruger, f.eks. md5(emailadresse.'hemmeligt kodeord').
- En side der bekræfter din tilmelding. Hvis den unikke værdi der kommer med er lig med md5(emailadresse.'hemmeligt kodeord') er underskriften ok og processen er færdig
Avatar billede kwanstudios Nybegynder
03. november 2005 - 14:05 #6
Det skal siges at min viden om PHP er meget begrænset, så hvis en kan demonstrere hvordan det foregår med md5 og osv. så kan jeg nok godt sætte det sammen?
Avatar billede kwanstudios Nybegynder
04. november 2005 - 13:25 #7
Der sker ikke så meget herinde?
Avatar billede bromer Nybegynder
04. november 2005 - 13:26 #8
Jeg havde helt glemt dig. Jeg kan lige bikse noget sammen til dig på 10-20 min.
Avatar billede bromer Nybegynder
04. november 2005 - 14:03 #9
Sådan der. Alle informationerne burde være der nu. Husk at skifte database settings.

<?php
/* Opret database med
CREATE TABLE signature (
signature integer not null auto_increment primary key,
name varchar(255),
email varchar(255),
created datetime not null,
zip varchar(10),
accepted datetime
);
*/

mysql_connect('','','');
mysql_select_db('');

if (isset($_POST['submit'])) {
    $hash = sha1('test' . $_POST['email']);
    $content = sprintf("%s/%s?activate=%s&email=%s",$_SERVER['SERVER_NAME'],$_SERVER['PHP_SELF'],$hash,$_POST['email']);
    mail($_POST['email'],'Aktiver underskrift',$content);
    mysql_query(sprintf("INSERT INTO signature (name,email,created,zip) VALUES ('%s','%s',NOW(),'%s')",$_POST['name'],$_POST['email'],$_POST['zip'])) OR DIE(mysql_error());
}

if ($_GET['activate']) {
    $hash = sha1('test' . $_GET['email']);
    if ($hash == $_GET['activate']) {
        mysql_query(sprintf("UPDATE signature SET accepted = NOW() WHERE email = '%s'",$_GET['email']));
    }
}

printf("<h1>Tilføj dig på listen</h1>
<form action='%s' method='post'>
<table>
    <tr>
        <td>Navn:</td>
        <td><Input type='text' name='name'></td>
    </tr>
    <tr>
        <td>Email:</td>
        <td><Input type='text' name='email'></td>
    </tr>
    <tr>
        <td>Postnummer:</td>
        <td><Input type='text' name='zip'></td>
    </tr>
    <tr>
        <td colspan='2'><Input type='submit' name='submit' value='Send'></td>
    </tr>
</table>
</form>",$_SERVER['PHP_SELF']);

printf("<h1>Listen</h1><table><tr><th>Navn<th><th>Postnummer</th><th>Tilføjet</th></tr>");

$signatures = mysql_query("SELECT name,email,zip,accepted FROM signature WHERE accepted IS NOT NULL ORDER BY accepted") OR DIE(mysql_error()) ;
while($signature = mysql_fetch_assoc($signatures)) {
    printf("<tr>
        <td><a href='mailto:%s'>%s</ah></td>
        <td>%s</td>
        <td>%s</td>
    </tr>",$signature['email'],$signature['name'],$signature['zip'],$signature['accepted']);
}

print "</table>";
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester