Kom ihåg mig?
Home Menu

Menu


PHP/SQL - fråga

 
Ämnesverktyg Visningsalternativ
Oläst 2005-05-09, 13:28 #1
Jesper Bs avatar
Jesper B Jesper B är inte uppkopplad
Medlem
 
Reg.datum: Apr 2004
Inlägg: 238
Jesper B Jesper B är inte uppkopplad
Medlem
Jesper Bs avatar
 
Reg.datum: Apr 2004
Inlägg: 238
Jag vill börja med att säga att jag itne är någon världsmästare på detta men jag kan inte reda ut följande riktigt.

Det handlar om när en annons sparas i en databas, ev bild laddas upp och ett bekräftelsemail skickas.


#1 Ev. bild laddas upp o får nytt namn

#2 Data sparas i databasen med en instert into.

#3 Här kommer mitt problem. I detta skede skickas det ut ett mail till annonsören där han/hon ombdes att besöka en länk för att bekräfta sin annons (en confirmcode har generats och sparats i databsen). Mitt problem är att jag dels vill att mailet ska innehålla länken till annonsen dvs peka till dokumentet som vi kan kalla ad.php?aid=XXXX men även länken till confirm.php?aid=XXXX&code=XXXXXXXX. Men eftersom detta ID skapats automatiskt i databsen, hur gör jag lämpligast för att få fram det skapade IDet på direkten?


Tacksam för svar, glöm inte att ni som ev svarar talar med ett php-pucko
Jesper B är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 13:32 #2
nomicon nomicon är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2003
Inlägg: 753
nomicon nomicon är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2003
Inlägg: 753
Citat:
Originally posted by Jesper B@May 9 2005, 13:28
Jag vill börja med att säga att jag itne är någon världsmästare på detta men jag kan inte reda ut följande riktigt.

Det handlar om när en annons sparas i en databas, ev bild laddas upp och ett bekräftelsemail skickas.


#1 Ev. bild laddas upp o får nytt namn

#2 Data sparas i databasen med en instert into.

#3 Här kommer mitt problem. I detta skede skickas det ut ett mail till annonsören där han/hon ombdes att besöka en länk för att bekräfta sin annons (en confirmcode har generats och sparats i databsen). Mitt problem är att jag dels vill att mailet ska innehålla länken till annonsen dvs peka till dokumentet som vi kan kalla ad.php?aid=XXXX men även länken till confirm.php?aid=XXXX&code=XXXXXXXX. Men eftersom detta ID skapats automatiskt i databsen, hur gör jag lämpligast för att få fram det skapade IDet på direkten?


Tacksam för svar, glöm inte att ni som ev svarar talar med ett php-pucko
Ptja, du sparar ju ned en genererad snutt, som jag antar att du generar med php, kan du inte göra typ såhär:

$code = someRandomFunction();
$code är alltså det som genereras...

sedan har du väl något
INSERT INTO blah (code) VALUES ('$code')

för att få upp id:
SELECT id FROM blah WHERE code='$code'

Nått sånt?

Mvh Martin
nomicon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 13:35 #3
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
uniqid(rand()); är en bra funktion som someRandomFunction();
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 13:44 #4
nomicon nomicon är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2003
Inlägg: 753
nomicon nomicon är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2003
Inlägg: 753
Citat:
Originally posted by grazzy@May 9 2005, 13:35
uniqid(rand()); är en bra funktion som someRandomFunction();
Jaja ;) Jag skrev bara så, så att han skulle förstå va ja menade ;)
-Martin
nomicon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 14:04 #5
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Stödjer inte MySQL (antar att det gäller detta) @@IDENTITY (som returnerar senaste skapade id?)

[edit]: ehrm, glöm det, kommer ihåg nu att MySQL inte stödjer stored procedures.. /edit
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 14:33 #6
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
Kanske jag är dum och missupfattat frågan, men är det inte mysql_insert_id() som är enklast att använda?
blixtsystems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 16:02 #7
Jesper Bs avatar
Jesper B Jesper B är inte uppkopplad
Medlem
 
Reg.datum: Apr 2004
Inlägg: 238
Jesper B Jesper B är inte uppkopplad
Medlem
Jesper Bs avatar
 
Reg.datum: Apr 2004
Inlägg: 238
anledningen till att jag inte ville köra en select sats på den genererade coden direkt är att även om risken är liten så kan det ju faktiskt skapas två annonser med code?


Eller kan man göra bedömningen att risken för att detta sker är så ofantligt liten när man generar koden med 16 tecken: a-z + 0-9 ?
Jesper B är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 16:04 #8
nomicon nomicon är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2003
Inlägg: 753
nomicon nomicon är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2003
Inlägg: 753
Citat:
Originally posted by Jesper B@May 9 2005, 16:02
anledningen till att jag inte ville köra en select sats på den genererade coden direkt är att även om risken är liten så kan det ju faktiskt skapas två annonser med code?


Eller kan man göra bedömningen att risken för att detta sker är så ofantligt liten när man generar koden med 16 tecken: a-z + 0-9 ?
Ptja, du kan ju köra en microtime före och efter sql-satsen för att se hur många millisekunder den tog,
jag skulle nog chansa på att om du inte har tiotusentals besökare om dagen så är nog denna lösning rätt säker.

Kolla även på mysql_insert_id() som gör exakt vad du är ute efter.

-Martin
nomicon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 16:07 #9
Jesper Bs avatar
Jesper B Jesper B är inte uppkopplad
Medlem
 
Reg.datum: Apr 2004
Inlägg: 238
Jesper B Jesper B är inte uppkopplad
Medlem
Jesper Bs avatar
 
Reg.datum: Apr 2004
Inlägg: 238
Då tackar jag för alla svar!
Jesper B är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-09, 16:20 #10
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Som sagt; ID för den nya annonsen får du ju med mysql_inserted_id()

Om du vill skapa en aktiveringskod som är garanterat unik så föreslår jag att du låter koden vara MD5 hashen av ensträng innehållande username, microtime, time same ett random.

Redan där borde du vara säker, men om du dessutom låter aktiveringskoden vara ett unikt index i tabellen där den lagras är du ju helt säker... Det värsta som sker då är att OM det mot förmodan blir en konflikt så läggs inte dubletten in.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:03.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017