Autor | Zpráva | ||
---|---|---|---|
oboda7 Profil |
#1 · Zasláno: 1. 6. 2012, 22:49:31
Ahoj, potřebuji rychle pomoc s touto věcí, php mám prvním rokem a moc to neovládám....máme za úkol udělat přihlašovací stránku, kde se bude moct změnit i heslo:
Formulář indexx.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Rozhodovací formulář</title> </head> <body> <h1>Vítejte na stránkách PHP</h1> <form method="post" action="php.php"> Uživatelské jméno / Login <input type="text" name="jmeno"><br> Heslo / Password <input type="password" name="heslo"><br> <input type="submit" value="odeslat"> </form> <form action="password.php" method="post"> Jméno uživatele<br> <input type="text" name="id"/><br> Staré heslo <br><input type="text" name="stare"/></font><br> Nové heslo<br> <input type="text" name="nove"/></font><br> Potvrzení hesla<br> <input type="text" name="potvrdit"/></font><br> <input type="submit" value="Změnit heslo"/></font></b> </form> </body> </html> php kod php.php <?php $jmeno=$_POST ['jmeno']; $heslo=$_POST ['heslo']; if ($heslo=="abc"){ echo 'Děkujeme, pokračujte kliknutím <a href="obsah_cz.php">sem</a>.';} else{ echo 'Je nám líto, zadali jste špatné heslo, skuste to <a href="indexx.html">znovu</a>.';} ?> uživatelské jméno je libovolné to si tam člověk může napsat co chce, jde mi hlavně o heslo. Potřeboval bych to tak, že když se do formuláře dole napíše staré heslo a nové, tak aby se to původná heslo (abc), přepsalo na to nové a při dalším přihlášení fungovalo to nové....nevím přesně jak to funguje, vím, že může být zápis do ddatabáze atd. ale také do souboru, nevím jeslti přímo do toho php nebo se vytvoří jiné. Dělejte, jak myslíte :) děkuji |
||
Someone Profil |
Do souboru:
file_get_contents a file_put_contents , pomocí databáze: příkazy SELECT a UPDATE . Nikdo ti tu nebude předělávat celý kód od toho jsou Práce a Zakázky
edit: měl jsem tam file_fut_contents |
||
martin1312 Profil |
#3 · Zasláno: 1. 6. 2012, 23:14:11
file_put_contents |
||
Someone Profil |
#4 · Zasláno: 1. 6. 2012, 23:17:11
martin1312:
Jojo, přepsal jsem se.. Děkuju |
||
Eanex-Michal Profil |
Moderátor Davex: Přesunuto z duplicitního tématu Pomoc vytvořit php kód pro změnu hesla (zapsaní do souboru).
oboda7: Ahoj. Nejednodušší bude, když se heslo bude ukládat šifrované do txt souboru (heslo.txt). Stačí použít MD5 (předpokládám, že se jedná o výukovou práci), aby heslo bylo "v bezpečí". Takže tedy vytvoř soubor heslo.txt a: $soubor = fopen("heslo.txt", "r"); $text = fread($soubor, 10); ověření hesla: if(md5($_POST['heslo'])==md5($text)) {správné heslo} else {špatné heslo} fclose($soubor); změna hesla: if(md5($_POST['stare_heslo'])==md5($text)) { //hesla se schodují $text = "$_POST["nove_heslo"]"; $soubor = fopen("heslo.txt", "a+"); fwrite($soubor, $text); fclose($soubor); } else { //hesla se neschodují fclose($soubor);} Samozřejmě pokud to bude někde na webu tak proměnné ošetři, kontroluj, zda soubor existuje a použij lepší šifrování (třeba sha1). |
||
Davex Profil |
#6 · Zasláno: 2. 6. 2012, 11:15:02
Someone:
„Nikdo ti tu nebude předělávat celý kód od toho jsou Práce a Zakázky“ Nevyháněj prosím lidi do kategorie Práce a zakázky, protože tam obvykle jen založí duplicitní téma, že chtějí poradit zdarma a tím se nic neřeší. |
||
oboda7 Profil |
#7 · Zasláno: 2. 6. 2012, 13:37:02
Eanex-Michal:
Moc děkuji za zájem, ale pořád to nějak nechápu....omlouvám se, jsem opravdu noob co se týče tohodle, učitel s náma probral základy formuláře a to je všechno a teĎ po nás chce todle, Mohli by jsi to laicky napsat co a jak mám udělat. Přesný postup jaký soubor vytvořit co do něj přibližnšě dát a tak :) šifrování hesla ani nebusí být stačí aby se v php (nebo textovém souboru) původný heslo "abc" neměnilo na jiné. Nemusí to být tak složité, jen prostě aby to fungovalo. Pokud jsem správně pochopil, vytvořím prázdný txt soubor heslo.txt a ten kód co si my poslal mám dát do toho nebo do nového php, nebo přidat jinam? Děkuji, že se mnou máte trpělivost |
||
Kubo2 Profil |
#8 · Zasláno: 2. 6. 2012, 18:36:03
Kdybych teď byl na počítači aj ti poradím....ale píšem z mobilu tak len napíšem postup:
(1) Spoj sa s databázou, to hádam vieš, (2) deklaruj premenné z form., takhle: $nick = $_POST['meno']; $stareh = $_POST['stare']; $noveh = $_POST['nove']; (4) ak sa zhoduje prikaž vykonať túto funkciu: { mysql_query("UPDATE TABLE uzivatelia SET heslo='$noveh' WHERE meno='$nick'"); // fuha, neviem ci mam ten SQL príkaz celkom validně echo $uspech; } // inak napíš o neuspechu else { die('Niečo sa pokazilo.'); }; Úha musím frčať prihára mi višňový lekvár ... |
||
1Pupik1989 Profil |
#9 · Zasláno: 2. 6. 2012, 18:44:12
klidně bych to jednodušše udělal takto:
mysql_query("UPDATE TABLE uzivatelia SET heslo='$noveh' WHERE meno='$nick'" AND heslo='".$stareh."'); |
||
Kubo2 Profil |
#10 · Zasláno: 2. 6. 2012, 19:20:43
Počuj,1Pupik1989, nenpsal si tam trochu zle tie uvodzovky za tým AND ?
A proč jsou okolo premený ty dvě tečky? Inak celkom Tvoj postup uznávam, lebo sa heslo nemusí overovať dosť dlhým samostatným príkazom . Ahoj oboda7, napíš, jak s tou zmenou hesla, či si sa nejak vynašiel, alebo ak ešte niečo potrebuješ, napíš. Inak dufam že tie kody pomohli, a ja s 1Pupikom1989 sme nepisali zbytočně . |
||
oboda7 Profil |
Kubo2:
Bohužel, ani s databázi neumim spojit....právě proto říkám, jestli to jńejde nějak jednodušeji (prostě normální php příkaz co přepíše php nebo textový soubor).... |
||
Alphard Profil |
#12 · Zasláno: 2. 6. 2012, 22:21:45
oboda7:
Bylo to hned v úvodu – file_get_contents() a file_put_contents(). Následujte odkazy do manuálu, jsou tam ukázky použití. |
||
oboda7 Profil |
#13 · Zasláno: 2. 6. 2012, 22:35:35
sákryš, pořád nechápu.....prosím o lidi co by mi byli ochotni osobně pomoc, ať mi dají na sebe kontakt (e-mail, skype, facebook, nebo jiné)..... nebo spíše vám dám kontakt na mě:
skype: oboda7 facebook: michal bounla email: oboda7@seznam.cz děkuji |
||
Amunak Profil |
#14 · Zasláno: 3. 6. 2012, 00:49:33
oboda7:
Možná bys měl o hodinách víc dávat pozor nebo se radši vůbec nevěnovat programování, když ani s manuálem a několika ukázkami nedáš dohromady něco jako tohle: <?PHP define('pwdf', 'pass.sha1'); //soubor s heslem if(isset($_POST['heslo']) && sha1($_POST['heslo']) == file_get_contents(pwdf)) { if(isset($_POST['noveheslo'])) { file_put_contents(pwdf, sha1($_POST['noveheslo'])); echo 'Heslo změněno.'.PHP_EOL; } echo 'Zabezpečený obsah a formulář action=? method=post se dvěma poli s name heslo a noveheslo'; } else { if(isset($_POST['heslo'])) echo 'Heslo je chybné.'.PHP_EOL; echo 'Nezabezpečený obsah a login formulář action=? method=post s polem s name=heslo'; } Upozorňuji že je to jen kostra bez jakéhokoliv ověřování chyb (existence souboru, délka hesla, ...). Na začátku budeš muset soubor s heslem ručně vytvořit a do něj vepsat hash nějakého hesla. |
||
Kubo2 Profil |
#15 · Zasláno: 3. 6. 2012, 10:25:08
oboda7, mám pro tebe něco :
---> Tady se naučíš základy - http://jakpsatweb.cz/php/moznosti-php.html ---> Tady pokročilejší spolupráci s databázemi - http://blog.tociman.net/php-mysql/ Přečti si to celé . Tak jsem se učil i já a celkem dobře mi to už jde --- |
||
oboda7 Profil |
#16 · Zasláno: 3. 6. 2012, 12:12:33
Amunak:
dobře, takže pokud chápu správně, udělám soubor(txt,php,....?) s názvem "pwdf" a do něj dám heslo "pass.sha1"(pokud dobře chápu, tak "pass.sha1" znamená heslo vygenerované v sha1)? |
||
Kubo2 Profil |
#17 · Zasláno: 3. 6. 2012, 12:16:34
oboda7:
...bohužel, ani s databází neumím spojit... To se dělá takto: <?php /* Spojíš sa so serverom, kde máš databázu */ mysql_connect("mysql.server.cz","prihlasovacie_meno","heslo"); /* Vyberieš tvoju DB */ Mysql_select_db(tvoja_databáza); // do tých zátvoriej hoď meno tvojej db bez úvodzoviek // Celé to daj (aspoň ja to tak robím) úplne na začiatok skriptu { ... ďaľší PHP program ... }; ?> |
||
Someone Profil |
#18 · Zasláno: 3. 6. 2012, 12:20:27
Kubo2:
„db bez úvodzoviek“ Opravdu? |
||
oboda7 Profil |
#19 · Zasláno: 3. 6. 2012, 12:25:29
Kubo2:
a kdy to dělám přes local? co mám napsat dále? používám xammp mám to napsat nějak takhle? [pre][mysql_connect("localhost","zde něvím jaké je přihlašovací jného", "a heslo"); Mysql_select_db(nevím kde mám vzít databázi nebo jestli tam je tak jak se jmenuje nebo kde bych jí měl najít)/pre] jinak pro všechny, hned na začátku jsem se ptal jestlo to nejde nějak jednodušeji jako mi například poradil Eanex-Michal, prostě zápis do textového souboru, žádná databáze. |
||
Someone Profil |
#20 · Zasláno: 3. 6. 2012, 12:26:43
Tak si o tom něco přečti.
|
||
Davex Profil |
#21 · Zasláno: 3. 6. 2012, 13:01:10
oboda7:
„dobře, takže pokud chápu správně, udělám soubor(txt,php,....?) s názvem "pwdf" a do něj dám heslo "pass.sha1"(pokud dobře chápu, tak "pass.sha1" znamená heslo vygenerované v sha1)?“ Chápeš to špatně. Pokud ti mohu doporučit, tak si projdi Amunakův kód řádek po řádku, nad každým se zastav a pokus se odpovědět na otázku „co přesně tento řádek a jednotlivé části v něm dělají?“ Dohledej si co dělají jednotlivé příkazy, jak fungují podmínky, pole, funkce... Dokud se nepokusíš pochopit naprosté základy, tak se nehneš dál. |
||
oboda7 Profil |
#22 · Zasláno: 3. 6. 2012, 13:24:57
dobře, budu se snažit to pročítat. prosím ještě mi teda cysvětlete jak mám udělat ten soubor s heslem. prosím, jak se má jmenovat, jaký formát jaký obsah, děkuji
|
||
Someone Profil |
#23 · Zasláno: 3. 6. 2012, 13:26:06
oboda7:
Může to být klidně i textový soubor, který bude obsahovat hash hesla. |
||
oboda7 Profil |
#24 · Zasláno: 3. 6. 2012, 14:03:40
konečně jsem to pochopil a už to funguje děkuju :) teď jenom vymyslet aby to fungovali i s přihlašováním.....děkuji všem za trpělivost...pokud by někdo chtěl tak mi klidně mže i trochu popsat jak to spojit s dokumentem nahoře (s přihlašováním)
|
||
Kubo2 Profil |
#25 · Zasláno: 3. 6. 2012, 15:05:38
a kdes vzal localhosta? Vravel si ze sa nevies spojit s databazou.
V localhostovi asi není databáze, musíš si ji vytvořit. Ale zeptej se učitela . O tej databazi je vše potřebné rozpísané na Yuhůova stránkách ( jakpsatweb.cz ) v sekci Ostatní. |
||
Amunak Profil |
#26 · Zasláno: 3. 6. 2012, 16:41:20
Kubo2:
Myslím že by bylo vhodné netrápit obodu7 databázemi, když má problém s pochopením základních příkazů. Poslal jsi mu sice pár SQL příkazů, ale vzhledem k tomu, že nejspíš nemá ani založenou databázi (natož tabulku s uživateli a hesly), nepřijde mi to jako zrovna ideální řešení. |
||
oboda7 Profil |
#27 · Zasláno: 3. 6. 2012, 18:20:35
už jsem to vyřešil, funguje to celé! děkuji všem za trpělivost..... :)
|
||
Časová prodleva: 12 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0