Autor | Zpráva | ||
---|---|---|---|
casy Profil |
#1 · Zasláno: 27. 6. 2010, 20:28:40 · Upravil/a: casy
Ahoj,
potřeboval bych vypsat data z databulky, to už mám vyřešené a navázat na to změnu hesla, už jsem zjistil že rozkódovat md5 se nedoporučuje nebo lépe řečene nejde. Tak mi připadlo jako vhodné řešení udělat pro změnu hesla samostatnou stránku kde bude znovu ověření, asi script na přihlášení s uložením nové session, která se po uložení změny zničí a nebo input "zadejte heslo" kde se při odeslání formuláře uloží hodnota která buď spustí script se změnou hesla nebo vratí chybu a login se spustí znovu s chybovou hláškou. K samotné změně. Udělám dva inputy (podobné jako při registraci) a při odeslání pomocí UPDATE user SET heslo ho změnit ? Teď by to potřebovat dát do php kódu. Případně jaké řešení by bylo nejlepší. Děkuji |
||
AM_ Profil |
#2 · Zasláno: 27. 6. 2010, 20:34:07
často se dělá jeden formulář
(jméno, pokud ještě není přihlášen) staré heslo: nové heslo: nové heslo znovu: po odeslání formuláře pokud je staré heslo správné a nové heslo se shoduje s kontrolou, tak do databáze zapíšeš nové heslo (md5 nebo sha1, sha1 je o něco silnější). |
||
casy Profil |
#3 · Zasláno: 27. 6. 2010, 20:46:04
AM:
Takže napíšu pouze UPDATE v databízi ? Toto řešení je z důvodu bezpečnosti nejlepší ? S použitím sha1. |
||
AM_ Profil |
#4 · Zasláno: 27. 6. 2010, 20:50:02
casy:
„Takže napíšu pouze UPDATE v databízi ?“ asi to bude chtít trošku víc kódu než "UPDATE v databázi" :D nevím, jaký měl tento tvůj dotaz smysl. „Toto řešení je z důvodu bezpečnosti nejlepší ? S použitím sha1.“ Říkám pouze to, že sha1 je o něco silnější a tedy bezpečnější. Nejlepší není z hlediska bezpečnosti žádné řešení - ke každé délce hesla n lze od uživatele vynutit, aby měl heslo alespoň o délce n+1, a tedy bezpečnost může být teoreticky libovolně velká. |
||
casy Profil |
#5 · Zasláno: 27. 6. 2010, 20:54:35
Jo ještě jsem potřeboval vyřešit tuto věc,
Chci vypsat data o uživateli. Používam tento script, ale nevím jak mám zjistit id uživatele, respektive jak ho určit v scriptu. Id se mi při loginu ukládá do session. <?php require "inc/db.php"; $id = $_SESSION['UserId']; $vysledek = mysql_query("SELECT user,mail,inic FROM user WHERE id = $id LIMIT = 1 ", $spojeni); $zaznam = mysql_fetch_array($vysledek); echo $zaznam["user"]; echo $zaznam["mail"]; echo $zaznam["inic"]; ?> |
||
AM_ Profil |
#6 · Zasláno: 27. 6. 2010, 20:55:28
žeby echo $id ?
|
||
casy Profil |
#7 · Zasláno: 27. 6. 2010, 20:57:59
AM
Oprava: $id = echo $_SESSION['UserId']; takto? |
||
AM_ Profil |
#8 · Zasláno: 27. 6. 2010, 21:08:51 · Upravil/a: AM_
prosímtě ten kód jsi psal sám, nebo jsi nikdy neviděl programování a upravuješ kód nějakého kamaráda? doporučuji nastudovat základy PHP, toto je fórum pro PHP programátory, ty evidentně vůbec netušíš.
|
||
casy Profil |
#9 · Zasláno: 27. 6. 2010, 21:18:07
AM:
Takže když netuším mám se naučit, dobře a je tedy chybou když se učím něco nevím a tak napíšu na forum o radu. Je na tom něco špatně? Jinak mi prosím ještě odepiš a pak tuto tvou připomínku už dále řešit nebudeme, nejsem pro neproduktivní komunikaci. Ale i tak děkuju, tuhle chybku jsem přehlédl. |
||
AM_ Profil |
#10 · Zasláno: 27. 6. 2010, 21:35:09 · Upravil/a: AM_
no PHP konstrukce "echo" především nic nevrací, tak nevím, jaký smysl má stavět ji na pravou stranu přiřazení (=). Přiřadit do proměnné a vypsat na výstup jsou dvě úplně různé věci, to neber zle, ale opravdu produktivní bude vrátit se k základům a nastudovat si programování, věř mi, že pokud netušíš, jak vypsat proměnnou, je opravdu něco špatně. Navíc, když já jsem ti to napsal dobře jak to má být (echo $id) a ty vymyslíš jakýsi bastl ($id = echo $_SESSION['UserId']; ) a ptáš se, jestli je to dobře, když už jsi měl řešení pod nosem? pak ani nechápu význam takové otázky.. navíc mezi programátory platí jedna zásada, nejdřív zkusit, pak se ptát... tohle není jaderný průmysl, tady pokusem a omylem nic nezkazíš...
|
||
casy Profil |
#11 · Zasláno: 27. 6. 2010, 22:01:22
AM:
Uznavám že máš pravdu, předpokládám že to má být takto <?php require "inc/db.php"; $id = $_SESSION['UserId']; $vysledek = mysql_query("SELECT user,mail,inic FROM user WHERE id = echo $id LIMIT = 1 ", $spojeni); $zaznam = mysql_fetch_array($vysledek); echo $zaznam["user"]; echo $zaznam["mail"]; echo $zaznam["inic"]; ?> Určitě si toho teď víc přečtu a než něco napíšu vyzkouším více možností. Tohle si zapamatuju "nejdřív zkusit, pak se ptát" Děkuju |
||
joe Profil |
#12 · Zasláno: 27. 6. 2010, 22:06:48 · Upravil/a: joe
<?php require "inc/db.php"; $id = intval($_SESSION['UserId']); $vysledek = mysql_query("SELECT user,mail,inic FROM user WHERE id = $id", $spojeni); $zaznam = mysql_fetch_assoc($vysledek); echo $zaznam["user"]; // tady používej ' místo " echo $zaznam["mail"]; echo $zaznam["inic"]; ?> |
||
AM_ Profil |
#13 · Zasláno: 27. 6. 2010, 22:09:43 · Upravil/a: AM_
[#11] casy
prosím, vrať se opravdu k těm základům, něco si o tom přečti... nacpat echo do databázového dotazu, tím jen ukazuješ, že opravdu vůbec nevíš. Je to ještě trošku jinak - nejdřív si to nastudovat, pak zkusit, pak se ptát... Tímto uzavírám diskusi dalším tvým pokusům, neber si to zle, ale dokud si o programování něco nenastuduješ, tohle je ztráta tvého i mého času... aby se neřeklo, že jsem pes: echo $zaznam["user"]; // tady používej ' místo " echo $zaznam["mail"]; echo $zaznam["inic"]; echo $id; ale opravdu tě nechápu, v kódu máš 3x pod sebou echo, a při vymýšlení, jak tam přidat ještě jedno, se ti podařily opravd perly... joe: je hezké, že jsi mu opravil stylistické chyby, ale on ani neví, co s echem... ten kód stěží psal on |
||
joe Profil |
#14 · Zasláno: 27. 6. 2010, 22:34:57 · Upravil/a: joe
AM:
Pravda, já jsem to moc nečetl, opravil jsem kód, který jsem viděl :-) I když nemyslím, že jen stylistické, nějaké věci jsou celkem závažné. |
||
Časová prodleva: 14 let
|
0