Avatar billede leif Seniormester
20. marts 2005 - 12:14 Der er 12 kommentarer og
1 løsning

Hent ID fra insert så det kan mailes ?

Hej,

Har et dilemma, har en et script hvor jeg generer nogen mails med links til meddelelser, men jeg vil gerne lave en kontrolsum så man ikke nemt kan komme vide hvad der skal stå i adresselinien for at læse andre beskeder.

Derfor jeg havde jeg tænkt en md5 af meddelelsen id samt brugerensnavn, men IDet får jeg først når jeg sætter den ind i databasen, så hvordan får jeg IDet så jeg kan lave en md5 og sende med i mailen ?

Det script jeg bruger lige nu er:
$result = mysql_query("SELECT * FROM kunder LIMIT 0 , 1");
$row = mysql_fetch_array($result);

$besked = "xxxxxxxxxx har modtaget indbetaling på kr. ".$beløb."<br>";
$besked .= "Udskriv kvittering på xxxxxxx";

$emailbesked = "Kære ".$row['navn'].",\n\n";
$emailbesked .= "Du har modtaget en besked fra xxxxxxxxxx\n\n";
$emailbesked .= "Du kan læse den på xxxxxx\n\n";
$emailbesked .= "Med venlig hilsen\n\n";
$emailbesked .= "xxxxxxxxxx";

mysql_query("INSERT INTO `messages` (`id`, `bruger`, `admin`, `besked`, `læst`) VALUES ('', '".$konto."', 'leif', '".$besked."', '')") or die ("Der skete følgende fejl".mysql_error()."");
mail("".$row['email']."","Besked fra xxxxxxxxxx","$emailbesked","From: xxxxxxxxxx (No-Reply) <noreply@xxxxxxxxxx>");

Nogen der kan gennemskue hvordan jeg skal gøre det ?

Fra
Leif
Avatar billede taskmgr Nybegynder
20. marts 2005 - 12:27 #1
Hvis du har auto increment på `id` kolonnen, kan du bruge mysql_insert_id()
http://dk2.php.net/function.mysql-insert-id
Avatar billede sukos Juniormester
20. marts 2005 - 12:28 #2
Din $beløb bør du ændre så du ikke bruger ø
Og ellers
mysql_insert_id(),
efter din query.

$newid = mysql_insert_id();

mailhalløj...........
Avatar billede sukos Juniormester
20. marts 2005 - 12:29 #3
hmm, altså din mailtekst kan først færdiggøres efter din insert
Avatar billede leif Seniormester
20. marts 2005 - 12:37 #4
Og da jeg så skal have min md5 ind og stå i databasen, skal jeg lave en update efter jeg har lavet min md5 sum eller kan det gøres på en smart måde ?
Avatar billede leif Seniormester
20. marts 2005 - 12:39 #5
sukos -> Hvad kan der ske at jeg bruger beløb med ø ?
Avatar billede sukos Juniormester
20. marts 2005 - 12:41 #6
Ved jeg ikke, men jeg villenu ALDRIG gøre det! :O)

anyway, bruger selv:

// Funktion til at lave et pasword, hentet på http://www.php.net/manual/da/function.rand.php
function randomPassword($len = 4)
{
$pass = '';
$lchar = 0;
$char = 0;
for($i = 0; $i < $len; $i++)
{
while($char == $lchar)
{
$char = rand(48, 109);
if($char > 57) $char += 7;
if($char > 90) $char += 6;
}
$pass .= chr($char);
$lchar = $char;
}
return $pass;
}

$ref = md5(randomPassword());

og så bruger det som reference
Avatar billede leif Seniormester
20. marts 2005 - 12:42 #7
Ja, okay, det var også en mulighed ! Men kan der så ikke i teroien komme 2 poster med samme ref ?
Avatar billede sukos Juniormester
20. marts 2005 - 12:43 #8
Du kan også blot

$tid = time();
$ref = md5($tid);
Avatar billede sukos Juniormester
20. marts 2005 - 12:44 #9
Med den sidste vil der aldrig være to ens! :O)
Medmindre scriptet udføres på samme tid af flere
Avatar billede leif Seniormester
20. marts 2005 - 12:49 #10
Ja, så kunne man jo måske lave:

md5($tid$admin$konto);

eller kombinere din random med time !

Der vil dog aldrig være 2 admin som hedder det samme i systemmet !
Avatar billede leif Seniormester
20. marts 2005 - 13:19 #11
sukos -> Vil du have point for at have inspireret mig til den funktion jeg leder efter ?
Avatar billede sukos Juniormester
20. marts 2005 - 13:20 #12
johh, tak :O)
Og så skal det jo være
md5($tid . $admin . $konto);

hvis du vil "sammensætte" flere variabler
Avatar billede leif Seniormester
20. marts 2005 - 13:25 #13
Detalje :D (Havde nok kommet i tanke om det)
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