Autor | Zpráva | ||
---|---|---|---|
one Profil |
#1 · Zasláno: 30. 6. 2007, 20:37:02
Zdravim, potřeboval bych poradit, dělám si svoji registraci a přihlášení a teď jsem se chtěl vrhnout na změnu údajů, jenže nenapadá mě, jak to provést.
Jediné co mě napadlo, je to, že bych měl vyplněné ty pole podle toho, co je v databázi a pak by se jen kontrolovalo zda se to změnilo a nebo ne, a podle toho to změnit v databázi, ale to je stejně blbé, protože bych to chtěl v jednom UPDATE dotazu. Druhé řešení co mě napadlo bylo skoro stejné, jako to první, akorát s tím rozdílem, že bych kontroloval každé pole zvlášť a pokud by se nerovnalo s tím co je v databázi tak provést UPDATE dotaz, a pak další podmínka a zase zjištění zda se rovná nebo ne. co by jste mi poradili vy? co používate vy? díky ;) |
||
djlj Profil |
#2 · Zasláno: 30. 6. 2007, 20:42:10
Proč chceš kontrolovat, jestli se to rovná? Prostě updatni všechno v jednom dotazu. Pokud nebude co měnit, tak stejně UPDATE vrátí 0 změněných řádků (kontroluje si to sám).
|
||
Joker Profil |
#3 · Zasláno: 30. 6. 2007, 20:49:03 · Upravil/a: Joker
Řešení je daleko prostší: vůbec nekontrolovat, co se změnilo a nezměnilo a zavolat UPDATE se všemi zadanými hodnotami.
edit: njn, djlj byl rychlejší. |
||
one Profil |
#4 · Zasláno: 30. 6. 2007, 21:04:43
aha, díky, já právě myslel, že kdyby to bylo prázdné updatlo by to i položku v databázi na prázdnou, no nic, jsem zase o něco chytřejší, díkes ;-)
|
||
djlj Profil |
#5 · Zasláno: 30. 6. 2007, 21:21:53
kdyby to bylo prázdné updatlo by to i položku v databázi na prázdnou
Ano, to máš pravdu. V dotazu ses ale ptal na něco jinýho… |
||
Časová prodleva: 7 dní
|
|||
one Profil |
#6 · Zasláno: 7. 7. 2007, 17:43:31
Tak už to mám celé, jen mám problém se změnou hesla. Mám tam pole se starým heslemn (pro bezpečnost) a potom 2 pole pro nové heslo a pro nové heslo znovu (kontrola). A potom samozřejmě další pole pro změnu informací, třeba email a ten už mám předvyplněný(vyselectovaný z databáze) a takto to mám samozřejmě u všech polí. Jenže problém nastává v tom, že když uživatel nevyplní staré heslo, ani nové heslo (protože ho prostě nechce měnit), tak se v databázi updatuje na prázdné md5, a to já právě chci nějak ošetřit, možná updatovat heslo nějakým sql zvlášt, máte nějaké nápady, mě teď zrovna nic nenapadá, díky moc
|
||
djlj Profil |
#7 · Zasláno: 7. 7. 2007, 17:50:22
mě teď zrovna nic nenapadá
Jen takovej náčrt: if(!empty($_POST['heslo1']) && !empty($_POST['heslo2']) && $_POST['heslo1']==$_POST['heslo2'])){ $hesla=" heslo1='".md5($_POST['heslo1'])."', ... "; } mysql_query("UPDATE users SET neco='".$_POST['neco']."' ... ".$hesla." ... "); |
||
one Profil |
#8 · Zasláno: 7. 7. 2007, 19:39:49
no jo, jenže když nic nevyplním, tak se tam heslo vloží prázdné ne? protože se nesplní ta podmínka tudíž $heslo v dotazu bude mít prázdnou hodnotu a update se to i v db, teda aspoň tak jsem si to teď udělal, a tohle mi to dělá, nejspíš jsem tě špatně pochopil
|
||
djlj Profil |
#9 · Zasláno: 7. 7. 2007, 19:43:05
Neupdatne se nic, protože proměnná bude prázdná. Sloupce jsou vypsány v ní. Asis to udělal blbě.
|
||
one Profil |
#10 · Zasláno: 7. 7. 2007, 20:25:26
djlj
No jo máš pravdu, ja totiž blbě zapsal tu proměnnou, která zamd5tkuje to heslo, omlouvám se ;-) |
||
one Profil |
#11 · Zasláno: 7. 7. 2007, 23:22:05
ještě bych se chtěl zeptat, jestli řešíte chybové hlášky (samozřejmě myslím teď jenom tu změnu hesla), když třeba staré heslo nebo nová hesla nesouhlasí? protože u mě by to bylo celkem problematické já vkládám do databáze tímto způsobem:
if($neco == 1) { if($neco2 == $neco3) { //vložení do db a hláška se se vše proběhlo ok }else{ echo "neco nesouhlasí s neco3!"; }else{ echo "neco se nerovná 1!"; } omlouvám se jestli to jde, a já jsem jen trubka, která na to nemůže přijít, holt v php ještě nějsem zdaleka tak dobrý, díky |
||
Časová prodleva: 23 dní
|
|||
jirka123 Profil |
#12 · Zasláno: 31. 7. 2007, 11:00:43
Jak zapsat script na zmenu hesla v databázy mysql? Prosím tímto o radu a předem moc děkuji :-)
SCRIPT KTERÝ POUŽÍVÁM: _____________________ <? include("CONFIG.php"); $spojeni=mysql_connect($MySQL_server,$MySQL_user,$MySQL_user_password) ; $spojenidb=mysql_select_db($MySQL_db); if (!$spojeni) { echo"Nepodarilo se navazat spojeni se serverem."; exit; } $prihlasen=""; if($co=="logout"){ MySQL_Query("UPDATE $MySQL_tabulka SET ip='' WHERE id='$id';"); $code=""; $error="<b>Nyní jste byl odhlášen.</b><br>Pokud budete chtít dále pokračovat v režimu pro registrované, musíte se znovu přihlásit<br><br>"; } if($nick!=""){ $bb = MySQL_Query("SELECT * FROM $MySQL_tabulka WHERE nick='$nick';"); echo MySQL_Error(); $aa=MySQL_Fetch_Array($bb); if(($aa[heslo]==$heslo) and ($heslo!="")){ $IP=$REMOTE_ADDR; MySQL_Query("UPDATE $MySQL_tabulka SET ip='$IP' WHERE nick='$nick';"); $time=time(); MySQL_Query("UPDATE $MySQL_tabulka SET posledni_akce='$time' WHERE nick='$nick';"); $kod=MD5($time.$REMOTE_ADDR); MySQL_Query("UPDATE $MySQL_tabulka SET kod='$kod' WHERE nick='$nick';"); $url="id=".$aa[id]."&code=".$kod; $prihlasen=$aa[id]; } else {$error="Přihlášení se nepodařilo. Špatné uživatelské jméno nebo heslo.<br><br>";} } if($code!=""){ $bb = MySQL_Query("SELECT * FROM $MySQL_tabulka WHERE id='$id';"); $aa=MySQL_Fetch_Array($bb); $rozdil = time() - $aa[posledni_akce]; if($rozdil>300 or $rozdil<0) $povol="ne"; if(($aa[kod]==$code)and($aa[ip]==$REMOTE_ADDR) and ($povol=="")){ $time=time(); MySQL_Query("UPDATE $MySQL_tabulka SET posledni_akce='$time' WHERE id='$id';"); $url="id=".$id."&code=".$code; $prihlasen=$id; } else {$str="";MySQL_Query("UPDATE $MySQL_tabulka SET ip='' WHERE id='$id';"); $error="<b>Nejste přihlášen</b><BR>Buď nesouhlasí IP, nebo se provedlo automatické odhlášení, kvůli neaktivitě delší než 5 minut. Přihlaste se proto prosím znovu.<br><br>";} } ?> <HTML> <HEAD> <META name="resource-type" content="document"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250"> <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <TITLE>MOBILNÍ BANKÉŘ s.r.o. | <? echo "$aa[nick]";?></TITLE> <link rel="stylesheet" href="http://mobilnibanker.cz/admin/style.css"> </head> </HEAD> <body style="text-align: center"> <div id="header-v3" align="left"> <table border="0" align=left height="79" width="768"> <tr> <td><b><font size="5" color="#FF0000">Sekce pro spolupracovníky: <? echo "$aa[nick]";?></font></b></td> </tr> </table></div> <table> <tr><TD width="150"> <TABLE><tr><td align="center"> <?if($prihlasen==""){?> <TABLE width="165"><tr><td align="center"> <TABLE width="100%"><tr><TD align="center" width="100%"><b>Přihlášení</b></table> <table><FORM method="post" action="index.php"> <tr><td valign="top"> <td valign="top"> <tr><td valign="top">Jméno:<td valign="top"><INPUT type="text" name="nick" size="10"> <tr><TD valign="top">Heslo:<td valign="top" ><INPUT type="password" name="heslo" size="10"> <tr><th colspan="2"><INPUT type="submit" class="tlacitko" value="Přihlásit !"> </FORM> </table></table> <?}else{ $bb = MySQL_Query("SELECT * FROM $MySQL_tabulka WHERE id='$prihlasen';"); $aa=MySQL_Fetch_Array($bb); $kredit=$aa[kredit]; echo'<TABLE width="100%" align="center" bgcolor="white"><tr><td align="left">'; echo "<table> <tr> <TD align="left"><b>Přihlášen:</b> <td>$aa[jmeno]</td> <TD align="left"><A href="index.php?co=logout&$url"><b>ODHLÁSIT</A></b> | <TD align="left"><A href="nastaveni.php?$url"><b>NASTAVENÍ PROFILU</A></b> </table>"; echo'</table>'; echo "<br>Jméno počítače: ",(gethostbyaddr($REMOTE_ADDR)); echo " | IP adresa počítače: ",(gethostbyname($REMOTE_ADDR)); echo'<TABLE width="800" align="center" bgcolor="white"><tr><td align="left">'; echo "<table> <tr> <TD align="left"><A href="index.php?$url"><b>[Úvodní strana]</A></b> <TD align="left"><A href="klient.php?$url"><b>[Údaje klienta]</A></b> <TD align="left"><A href="provize.php?$url"><b>[Tabulka Vaší provize]</A></b> <TD align="left"><A href="download.php?$url"><b>[Stažení]</A></b> <TD align="left"><A href="produkty.php?$url"><b>[Produkty]</A></b> <TD align="left"><A href="kontakt.php?$url"><b>[Kontakt]</A></b> <TD align="left"><A href="infomail.php?$url"><b>[Informační maily]</A></b> <TD align="left"><A href="ucet.php?$url"><b>[Váš účet]</A></b> </table>"; echo'</table>'; echo "<br>"; if(!empty($_POST['heslo1']) && !empty($_POST['heslo2']) && $_POST['heslo1']==$_POST['heslo2'])){ $hesla=" heslo1='".md5($_POST['heslo1'])."', ... "; } mysql_query("UPDATE users SET neco='".$_POST['heslo']."' ... ".$hesla." ... "); echo'<TABLE width="800" align="center" bgcolor="white"><tr><td align="left">'; echo "<table> <tr> <TD align="left"> <TABLE align="center"> <tr> <FORM method="post"> <TD nowrap align="right"> </table>"; echo'</table>'; } ?> </table> <TD width="*"> <? echo $error; ?> </body> </html> <?MySQL_close();?> |
||
HGD Profil |
#13 · Zasláno: 31. 7. 2007, 17:22:27
2 jirka 123 !!! Nemusíš to tady dávat do každýho topicu!!!
|
||
Časová prodleva: 17 let
|
0