Autor | Zpráva | ||
---|---|---|---|
roman_an1 Profil |
#1 · Zasláno: 14. 4. 2012, 08:18:22
zdravim, mám takovej problem, mám 2 tabukly jedna která obsahuje registraci a podle ní dělám login, pak mám jestě jendnu tabulku kde jsou nějaké udáje které si ten příhlašený navolil, ale vůbec nevím jak to udělat..už to zkouším tak týden a furt nic..poradí někdo?
|
||
Bertram Profil |
roman_an1:
Ahoj, co přesně nevíš jak udělat z dotazu to není jasné. Docvaklo mi, že ti asi půjde o propojení těch tabulek. users id | jmeno | heslo 1 | Franta | tajne 2 | Pepa | nereknu info id_uzivatele | velikost_bot 1 | 45 2 | 43 $sql = 'SELECT velikost_bot FROM info WHERE id_uzivatele = $userId'; |
||
roman_an1 Profil |
#3 · Zasláno: 14. 4. 2012, 17:45:09
Bertram, Bertram:
já furt nechápu co s tim userID takovou promennou tam ani nemas |
||
Bertram Profil |
#4 · Zasláno: 14. 4. 2012, 18:23:36
roman_an1:
Z přihlašovacího formuláře získáš data v poli $_POST, poté je ověříš s tabulkou users. Pokud je vše v pořádku sestavíš si jeho identitu, pomůže ti k tomu zmiňované $userId jakožto id z tabulky users. Ale já žil v domění, že toto už máš, jen nevíš jak tyto tabulky svázat. |
||
roman_an1 Profil |
#5 · Zasláno: 14. 4. 2012, 19:36:03
Bertram:
jj to mam ale mě to vypíše undefined index |
||
Bertram Profil |
#6 · Zasláno: 14. 4. 2012, 20:27:25
roman_an1:
Raději ukaž kód, takto je to věštění. |
||
roman_an1 Profil |
Bertram:
tak tady je jak se přihlašuju <?php $db_spojeni = @mysql_connect('localhost','root','','3306'); $databaze = @mysql_select_db("azcomp") or die ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!"); mysql_query("set names utf8"); $login = mysql_real_escape_string($_POST["nick"]);/* nick zadaný ve formuláři pro přihlašování */ $heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */ $md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */ /* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */ $dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'"); $overeni = mysql_num_rows($dotaz); $row = mysql_fetch_array($dotaz); if($overeni == 1) { session_start(); $_SESSION['login'] = stripslashes($login); $_SESSION['id'] = $row["id"]; header("Location: admin.php"); die(); } else { echo"Zadal jsi špatný login nebo heslo!"; } ?> Bertram: no a tady se snažím to spojit a rovnou si to i vypsat :) <?php $db_spojeni = @mysql_connect('localhost','root','','3306'); $databaze = @mysql_select_db("azcomp") or die ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!"); $mail= $_SESSION['email'] ; $query = "SELECT cislo FROM vyrobky WHERE id2 = '$mail'"; $vysledek = mysql_query($query); echo "<table width=100% border=1 cellspacing=20>"; while($clen = mysql_fetch_object($vysledek)) { echo "<tr width='30%'>"; echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>"; echo "</tr>"; } echo "</table>"; |
||
Bertram Profil |
#8 · Zasláno: 14. 4. 2012, 20:47:01
V tom druhém souboru (zřejmě admin.php) pracuješ se session přitom tam nemáš session_start() a $_SESSION['email'] nikde nenastavuješ.
|
||
roman_an1 Profil |
Bertram:
táááák už jsem to poupravil ja už zkoušel vše snad..chybu mi to už nevypisuje..ale nevypíše mi to tu tabulku.. <?php $db_spojeni = @mysql_connect('localhost','root','','3306'); $databaze = @mysql_select_db("azcomp") or die ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!"); session_start(); $login = $_SESSION['login'] ; $query = "SELECT cislo FROM vyrobky WHERE id2 = '$login'"; / $vysledek = mysql_query($query); echo "<table width=100% border=1 cellspacing=20>"; while($clen = mysql_fetch_object($vysledek)) { echo "<tr width='30%'>"; echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>"; echo "</tr>"; } echo "</table>"; /* while($row = mysql_fetch_row($vysledek)) { echo "<tr><td>"; echo $row[1]."</td><BR><td>"; } */ ?> |
||
Bertram Profil |
No, chyb je tam jak maku, ale tobě v této fázi tvého úsilí jde zřejmě o to, ať už se to konečně zobrazí, že ano?
Takže bych ti doporučil naučit se využívat funkce var_dump(), popřípadě echo() a kontrolovat si jeli aplikace ve stavech, jaké očekáváš. Také není na škodu u databázových funkcí podmíněně (při neúspěchu) používat funkce mysql_error() a mysql_errno(). No a potom si ten kód projdi a pokus se sám sobě odpovědět, co dělá například tento řádek, $databaze = @mysql_select_db("azcomp") or die ("Databáze pravděpodobně neexistuje nebo nemáte dostatečná práva!"); To lomítko na patnáctém řádku bude zřejmě chyba kopírování, ale projistotu ho zmiňuji. A také by jsi mohl začít psát ten kód přehledněji, bude se ti v něm lépe orientovat. |
||
panther Profil |
#11 · Zasláno: 15. 4. 2012, 08:38:11
roman_an1:
„chybu mi to už nevypisuje“ vyhoď zavináče a třeba ti to něco vypisovat bude. To, že chybu zavináčem schováš, je hezké, ale sama se takto neopraví. Kromě toho, co píše Bertram, na 11. ř. kódu v [#9] máš ve WHERE nějaké id2 , o kterém se nikde nezmiňuješ. Opravdu sloupec s názvem id2 obsahuje e-malovou adresu? Proč si nepojmenuješ sloupce nějak lidsky?
Když dáš na 12. ř. echo $login , co se ti vypíše? Pokud nějaký e-mail (a ten v DB existuje), echuj takhle řádek po řádku dál. Někde pak zjistíš, že je v dané proměnné jiný obsah (nebo žádný), než který očekáváš.
|
||
Časová prodleva: 12 let
|
0