Autor Zpráva
one
Profil
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
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
Ř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
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
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…
one
Profil
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
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
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
Neupdatne se nic, protože proměnná bude prázdná. Sloupce jsou vypsány v ní. Asis to udělal blbě.
one
Profil
djlj
No jo máš pravdu, ja totiž blbě zapsal tu proměnnou, která zamd5tkuje to heslo, omlouvám se ;-)
one
Profil
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
jirka123
Profil
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">&nbsp;<td valign="top">&nbsp;
<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
2 jirka 123 !!! Nemusíš to tady dávat do každýho topicu!!!

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: