Autor Zpráva
casy
Profil
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
č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
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
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
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
žeby echo $id ?
casy
Profil
AM

Oprava:

$id = echo $_SESSION['UserId']; 


takto?
AM_
Profil
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
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
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
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
<?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
[#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
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é.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0