ugrás a tartalomhoz

Felhasználói adat módosításnál nem megy végbe a lekérdezés!

Tailor993 · 2010. Már. 15. (H), 15.40
Sziasztok! Kezdő PHP programozóként sikerült egy login rendszert elkészítenem regisztrációval bejelentkezéssel és sütikkel. De a felhasználó adatainak módosítása nem akar össze jönni.

Az volt az ötletem hogy lejön az az űrlap mint a regisztrációnál kitöltve a már bevitt adatokkal és ezt lehet majd átírni. Így átmásoltam az a <form> utasítást a regisztrációból. Ezután a value értékét megváltoztattam $e_mezöneve paraméterre.
pl így:
ez volt a regisztrációnál:
  1. echo'<tr><td>Felhasználó név:</td><td><input type=text name=name value=Felhasználóneved></td></tr>';   
ez lett a beállításoknál:
  1. echo'<tr><td>Felhasználó név:</td><td><input type=text name=name value=';  print($e_name);   
  2. echo'></td></tr>';  
De hogy tisztán lássatok itt a teljes és hibás kód!
  1. <?php  
  2. //bejelentkezési állapot ellenőrzése  
  3.   
  4. if(isset($_COOKIE['login_tailor993_jog']))  
  5. {  
  6.   
  7. //Felhasználó jogkörének ellenőrzése  
  8. if($_COOKIE[login_tailor993_jog]>0)  
  9. {  
  10. //beléptető sütik megújítása  
  11. $name=$_COOKIE['login_tailor993_name'];  
  12. $jog=$_COOKIE['login_tailor993_jog'];  
  13. setcookie('login_tailor993_jog''0', time()-10*365*24*60*60);  
  14. setcookie('login_tailor993_name''0', time()-10*365*24*60*60);  
  15. setcookie('login_tailor993_jog'$jog, time()+2*60*60);  
  16. setcookie('login_tailor993_name'$name, time()+2*60*60);  
  17.   
  18. //felhasználó felület  
  19.   
  20. echo'<body bgcolor=#FFFFCC><h1>Beállítások</h1><a target=_self href=./main.php>Vissza a főmenübe!</a>';  
  21.   
  22.  //MySQL kapcsolódás eleje  
  23. $kapcsolat = mysql_connect("Host""Felhasználó név""Jelszó");  
  24. if (!$kapcsolatdie("Nem sikerült kapcsolódni az adatbázishoz!");  
  25.   
  26. mysql_select_db("tailor993"$kapcsolator die("Nem sikerült kiválasztani az adatbázist!");  
  27. //MySQL kapcsolódás vége  
  28.   
  29. //MySQL művelet eleje  
  30.   
  31.   
  32. $sql_jog="select jog from login where name='$name'" ;  
  33. $e_jog = mysql_query($sql_jog$kapcsolator die(print("Nem sikerült a művelet végrehajtása (2)! A hiba oka: ".mysql_error()));  
  34.   
  35. $sql_date="select date from login where name='$name'" ;  
  36. $e_date = mysql_query($sql_date$kapcsolator die(print("Nem sikerült a művelet végrehajtása (3)! A hiba oka: ".mysql_error()));  
  37.   
  38. $sql_id="select id from login where name='$name'" ;  
  39. $e_id = mysql_query($sql_id$kapcsolator die(print("Nem sikerült a művelet végrehajtása (4)! A hiba oka: ".mysql_error()));  
  40.   
  41. $sql_vezetek = "select vezer from login where name=$name" ;   
  42. $e_vezetek = mysql_query($sql_vezetek$kapcsolator die(print("Nem sikerült a művelet végrehajtása (5)! A hiba oka: ".mysql_error()));  
  43.   
  44. $sql_kereszt="select kereszt from login where name='$name'" ;  
  45. $e_kereszt = mysql_query($sql_kereszt$kapcsolator die(print("Nem sikerült a művelet végrehajtása (6)! A hiba oka: ".mysql_error()));  
  46.   
  47. $sql_email="select email from login where name='$name'" ;  
  48. $e_email = mysql_query($sql_email$kapcsolator die(print("Nem sikerült a művelet végrehajtása (7)! A hiba oka: ".mysql_error()));  
  49.   
  50. $sql_szulet="select szulet from login where name='$name'" ;  
  51. $e_szulet = mysql_query($sql_szulet$kapcsolator die(print("Nem sikerült a művelet végrehajtása (8)! A hiba oka: ".mysql_error()));  
  52.   
  53. $sql_nevnap="select nevnap from login where name='$name'" ;  
  54. $e_nevnap = mysql_query($sql_nevnap$kapcsolator die(print("Nem sikerült a művelet végrehajtása (9)! A hiba oka: ".mysql_error()));  
  55.   
  56. $sql_horoszkop="select horoszkop from login where name='$name'" ;  
  57. $e_horoszkop = mysql_query($sql_horoszkop$kapcsolator die(print("Nem sikerült a művelet végrehajtása (10)! A hiba oka: ".mysql_error()));  
  58.   
  59. $sql_lakik="select lakik from login where name='$name'" ;  
  60. $e_lakik = mysql_query($sql_lakik$kapcsolator die(print("Nem sikerült a művelet végrehajtása (11)! A hiba oka: ".mysql_error()));  
  61.   
  62. $sql_tel="select tel from login where name='$name'" ;  
  63. $e_tel = mysql_query($sql_tel$kapcsolator die(print("Nem sikerült a művelet végrehajtása (12)! A hiba oka: ".mysql_error()));  
  64.   
  65. $sql_fogl="select fogl from login where name='$name'" ;  
  66. $e_fogl = mysql_query($sql_fogl$kapcsolator die(print("Nem sikerült a művelet végrehajtása (13)! A hiba oka: ".mysql_error()));  
  67.   
  68. $sql_text="select text from login where name='$name'" ;  
  69. $e_text = mysql_query($sql_text$kapcsolator die(print("Nem sikerült a művelet végrehajtása (14)! A hiba oka: ".mysql_error()));  
  70.    
  71.  $sql_hogy="select hogy from login where name='$name'" ;  
  72. $e_hogy = mysql_query($sql_hogy$kapcsolator die(print("Nem sikerült a művelet végrehajtása (15)! A hiba oka: ".mysql_error()));  
  73.    
  74.  $sql_fogl="select fogl from login where name='$name'" ;  
  75. $e_fogl = mysql_query($sql_fogl$kapcsolator die(print("Nem sikerült a művelet végrehajtása (16)! A hiba oka: ".mysql_error()));  
  76.   
  77.  $sql_nem="select nem from login where name='$name'" ;  
  78. $e_nem = mysql_query($sql_nem$kapcsolator die(print("Nem sikerült a művelet végrehajtása (17)! A hiba oka: ".mysql_error()));  
  79.   
  80.  $sql_pass="select password from login where name='$name'" ;  
  81. $e_pass = mysql_query($sql_pass$kapcsolator die(print("Nem sikerült a művelet végrehajtása (18)! A hiba oka: ".mysql_error()));  
  82. print($e_vezetek);      
  83. //MySQL művelet vége  
  84. $email=$e_email;  
  85. echo'<form method=POST action=./options_fix.php>  
  86. Az azonosító számod: ';    
  87.  switch($e_jog){  
  88.    case 0:  
  89.   echo'0';  
  90.    break;  
  91.    case 1:  
  92.   echo'1';  
  93.    break;  
  94.       case 2:  
  95.   echo'2';  
  96.    break;  
  97.       case 3:  
  98.   echo'3';  
  99.    break;  
  100.    case 4:  
  101.   echo'4';  
  102.    break;  
  103.    case 5:  
  104.   echo'5';  
  105.    break;  
  106.       case 6:  
  107.   echo'6';  
  108.    break;  
  109.       case 7:  
  110.   echo'7';  
  111.    break;  
  112.       case 8:  
  113.   echo'8';  
  114.    break;  
  115.       case 9:  
  116.   echo'9';  
  117.    break;  
  118.       case 10:  
  119.   echo'10';  
  120.    break;  
  121.       case 11:  
  122.   echo'11';  
  123.    break;  
  124.       case 12:  
  125.   echo'12';  
  126.    break;  
  127.       case 13:  
  128.   echo'13';  
  129.    break;  
  130.       case 14:  
  131.   echo'14';  
  132.    break;  
  133.       case 15:  
  134.   echo'15';  
  135.    break;  
  136.       case 16:  
  137.   echo'16';  
  138.    break;  
  139.       case 17:  
  140.   echo'17';  
  141.    break;  
  142.       case 18:  
  143.   echo'18';  
  144.    break;  
  145.       case 19:  
  146.   echo'19';  
  147.    break;  
  148.       case 20:  
  149.   echo'20';  
  150.    break;  
  151.       case 21:  
  152.   echo'21';  
  153.    break;  
  154.       case 22:  
  155.   echo'22';  
  156.    break;  
  157.       case 23:  
  158.   echo'23';  
  159.    break;  
  160.       case 24:  
  161.   echo'24';  
  162.    break;  
  163.       case 25:  
  164.   echo'25';  
  165.    break;  
  166.       case 26:  
  167.   echo'26';  
  168.    break;  
  169.       case 27:  
  170.   echo'27';  
  171.    break;  
  172.       case 28:  
  173.   echo'28';  
  174.    break;  
  175.       case 29:  
  176.   echo'29';  
  177.    break;  
  178.       case 30:  
  179.   echo'30';  
  180.    break;  
  181.       case 31:  
  182.   echo'31';  
  183.    break;  
  184.    }  
  185.  echo' <br>  
  186. A jogosultsági köröd: ';  
  187.  switch($e_jog){  
  188.    case 0:  
  189.   echo'0';  
  190.    break;  
  191.    case 1:  
  192.   echo'1';  
  193.    break;  
  194.       case 2:  
  195.   echo'2';  
  196.    break;  
  197.       case 3:  
  198.   echo'3';  
  199.    break;  
  200.    case 4:  
  201.   echo'4';  
  202.    break;  
  203.    case 5:  
  204.   echo'5';  
  205.    break;}  
  206.  $date=$e_date;  
  207.   
  208. $sor=mysql_fetch_array($e_vezetek, MYSQL_ASSOC);  
  209. FOREACH($sor as $i=>$ertek)  
  210. {print"$ertek";}  
  211.   
  212.  echo'  <br>  
  213. A regisztrációd ideje: '; print($date1); echo' <br>  
  214. A így találtál ide: '; print($e_hogy); echo'  <br>  
  215. <table>  
  216. <tr><td>Felhasználónév:</td><td><input type=text name=name value=';print($name);echo'></td></tr>  
  217. <tr><td>vezetéknév:</td><td><input type=text name=vezetek value=';print($e_vezetek);echo'></td></tr>  
  218. <tr><td>Keresztnév:</td><td><input type=text name=kereszt value=';print($e_kereszt);echo'></td></tr>  
  219. <tr><td>E-mail:</td><td><input type=text name=email value=';print($email);echo'></td></tr>  
  220. <tr><td>Születésnap:</td><td><input type=text name=szulet value=';print($e_szulet);echo'></td></tr>  
  221. <tr><td>Névnap:</td><td><input type=text name=nevnap value=';print($e_nevnap);echo'></td></tr>  
  222. <tr><td>Horoszkóp:</td><td><input type=text name=horoszkop value=';print($e_horoszkop);echo'></td></tr>  
  223. <tr><td>Lakhely:</td><td><input type=text name=lakik value=';print($e_lakik);echo'></td></tr>  
  224. <tr><td>Telefonszám:</td><td><input type=text name=tel value=';print($e_tel);echo'></td></tr>  
  225. <tr><td>Foglalkozás</td><td><input type=text name=fogl value=';print($e_fogl);echo'></td></tr>  
  226. <tr><td>Nemed:</td><td>';  
  227. if($e_nem==='f'){  
  228. echo'<label><input type=radio value=n name=nem>Nő<br><input type=radio check=check value=f name=nem>Férfi</label>';}  
  229. elseif($_nem==='n'){  
  230. echo'<label><input type=radio value=n check=check name=nem>Nő<br><input type=radio value=f name=nem>Férfi</label>';}  
  231. else{  
  232. echo'<label><input type=radio value=n name=nem>Nő<br><input type=radio value=f name=nem>Férfi</label>';}  
  233. Echo'  
  234. </td></tr>  
  235. <tr><td>Megjegyzés:</td><td><textarea name=text value=';print($e_text);echo'></textarea></td></tr>  
  236. <tr><td>Régi jelszó:</td><td><input type=password name=oldpass ></td></tr>  
  237. <tr><td>Új jelszó</td><td><input type=password name=pass1 ></td></tr>  
  238. <tr><td>Új jelszó ismét:</td><td><input type=password name=pass2 ></td></tr>  
  239.   
  240. </table>  
  241. <input type=submit value=Módosít name=send>  
  242. </form>  
  243. ';  
  244.   
  245.   
  246.   
  247. }  
  248. //sikertelen beléptetés  
  249. else  
  250. echo'<body bgcolor=#FFFFCC>Nincs megfelelő jogköröd az oldal megtekintéséhez! <a target=_self href=./login.php>Vissza</a>';  
  251. }  
  252. else  
  253.  echo'<body bgcolor=#FFFFCC> Nem vagy bejelentkezve! <a target=_self href=./login.php> Jelentkezzbe</a> vagy ha nem vagy regisztrálva  <a target=_self href=./reg.php>regisztrálj</a>!';  
  254.   
  255. ?>  
Remélem tudtok segíteni. A MySQL kapcsolatból biztonsági okokból vettem ki a valós paramétereket.

Előre is Köszönöm a segítséget.
 
1

Utóirat

Tailor993 · 2010. Már. 15. (H), 15.43
A mezők értéke mindig Resourcid lesz igazából ez a bajom.
2

UPDATE

Poetro · 2010. Már. 15. (H), 17.18
Én nem látok egyetlen UPDATE SQL utasítást sem így nem értem mit takar számodra a módosítás. Ha teszel egy lekérdezést, akkor az sorokat fog visszaadni, amiket külön még ki kell szedned mysql_fetch_* műveletekkel.
3

Re: UPDATE

Tailor993 · 2010. Már. 15. (H), 19.04
Itt csak átírhatja az adatlapot és mikor rákattint hogy módosít az adatok átadódnak a options_fix.php -be de előbb ennek a lehívásnak kéne végbemennie. De minden esetbe csak 1 sor az eredmény mert nem lehet 2 azonos nevű felhasználó.
4

Nincs itt hiba...

a.d.a.m · 2010. Már. 15. (H), 23.15
az általad jelzett állapotot (ti. "mezők értéke mindig Resourcid lesz") az okozza, hogy a php végrehajtja amit kérsz tőle.

Részletesebben:
  1. $sql_nem="select nem from login where name='$name'" ;    
  2. $e_nem = mysql_query($sql_nem$kapcsolator die(print("Nem sikerült a művelet végrehajtása (17)! A hiba oka: ".mysql_error()));  
A fenti esetben az $e_nem értéke resource lesz (ld. a manual-t), mert a mysql_query visszatérési értéke egy erőforrás mutató. Amit te kiiratsz.

Ahhoz hogy a lekérdezésed eredményét megjelenítsd egy másik függvényre van szükséged: mysql_fetch_array, mysql_fetch_assoc, mysql_result. Bármelyiket választhatod.

Érdemes lenne az egyes elemek lekérdezéseit összevonni. Én vizsgálnám azt is, hogy a megadott $name szerepel-e egyáltalán az adatbázisban és levédeném a sütiből származó adatokat. A miértről további olvasnivaló itt.
5

OFF - Switch lecserélése

Kevlar · 2010. Már. 17. (Sze), 17.02
Nem vagyok PHP-s, így ha butaságot mondok, majd kijavítanak, de szükséges ez a hosszú switch a kódban? Hiszen a visszatérési érték ugyanaz, mint a vizsgált változó értéke. Egyszerűbb lenne így:
  1. echo 'Az azonosító számod: '.$e_jog;