Gå til innhold

Trenger litt hjelp med reg. system


Anbefalte innlegg

Jeg har et skjema som fylles ut av alle som vil registrere seg. Når de har fyllt ut skjemaet vil jeg at en mail skal sendes til mailen de oppgav i skjemaet der skal det være en link som de må trykke på for å bekrefte registreringen. Når de trykker på linken skal infoen de skrev inn i skjemaet skrives til en .txt fil. Noen som har forslag til hvordan jeg kan gjøre dette? Jeg har sett eksempler som sender all infoen i en form me d hidden-verdier, der mottageren av mailen må trykke på en submit-knapp, og infoen i den "skjulte" formen blir sendt til http://www.eksempel.com/registrer.php. Dette desverre dårlig med hotmail, noe de fleste bruker. Derfor lurer jeg på om det finnes andre alternativer...f.eks en link de kan trykke på istedet for denne formen med skjulte verdier...

Lenke til kommentar
Videoannonse
Annonse

Hvorfor i alle dager skal det skrives til en tekst fil? Jeg vil foreslå at du lagrer dataene i en database, f.eks. MySQL. Mye bedre å håndtere data i en database.

 

Her kommer min fremgangsmåte for å løse problemet.

 

1. Brukeren fyller ut skjemaet.

 

2. All informasjon blir lagret i en database da brukeren trykker på submit knappen sammen med en unik id. Denne lager vi f.eks. slik:

uid = md5(uniqid(rand(), true));

Du må altså ha et felt i tabellen som inneholder denne id.

 

3. Når informasjonen er lagret så sender vi mail til brukeren med linken

http://www.eksempel.com/registrer.php?uid=<her kommer uid variabelen>

 

4. Brukeren klikker på linken og vi leter i gjennom databasen etter uid. Hvis vi finner uid til brukeren så skriver vi ut innholdet. Deretter så oppdaterer vi databasen slik at uid blir tom, på den måten kan vi se at brukeren har verifisert e-posten sin.

 

El Nino

Lenke til kommentar

Hvorfor det? Du kan jo bare legge med en dato når brukeren registrerte seg. Så lager du et nytt script som går igjennom alle postene i databasen og sletter de som ikke har verifisert e-posten sin i løpet av 14 dager. På den måten får du ryddet opp i databasen.

 

Og uansett hva du skal benytte dataene til, så trenger jo ikke de å vises før e-posten er godkjent så jeg kan ikke begripe at dette skal være et problem.

 

El Nino

Lenke til kommentar

Du kjører en SQL spørring slik:

 

$sql = sprintf("DELETE FROM users WHERE uid != '' AND date < '%s'",date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-14, date("Y"))));

 

Denne spørringen vil slette alle som ikke har verifisert e-posten sin og som er eldre enn 14 dager.

 

Denne kan du enten kjøre som cronjob hvis du har mulighet til det på serveren, eller kjøre den hver gang en ny bruker registrerer seg.

 

El Nino

Lenke til kommentar

Jeg har laget registrer.php nå og det funker, men jeg har et lite problem:

 

Det står at det funker hver gang selv om id'en ikke eksisterer..

 

 

<?php 
include ("config.php");
$uid = $_GET['uid'];
if (isset($uid)){

mysql_connect($mySQLhost, $mySQLuser, $mySQLpass)
       or die("Could not connect: " . mysql_error());
mysql_select_db($mySQLdb);

if (mysql_query("UPDATE $mySQLtable SET uid = '' WHERE uid = '$uid'")){
echo "Du er nå registrert, velkommen til Nisselink! Logg deg inn her.";
}

else{
echo "Noe gikk galt og du ble ikke registrert. Hvis du opplever dette flere ganger, vennligst ta kontakt med webmaster";
}
}
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...