Kezdőoldal » Számítástechnika » Weblapkészítés » PHP felhasználói adatok...

PHP felhasználói adatok megváltoztatása?

Figyelt kérdés

Van egy egyszerű weboldalam, lehet regisztrálni, ott bekér minden adatot felhasználónévtől elkezdve az életkorig, keresztnévig stb. Ha bejelentkezel, meg tudod ezeket változtatni, viszont ez volt az első ilyen "megváltoztatós program"-om, ami nagyon bonyolult lett.

if($valid){

$mysql_connect = mysql_connect("localhost","root","");

mysql_select_db("forumadatbazis");

mysql_query("SET NAMES 'utf8'");

//Felhasználónév

if(strlen($username)>0){

mysql_query("UPDATE `regist` SET `username` = '$username' WHERE `id`= '$id'");

mysql_query("UPDATE `forum` SET `name` = '$username' WHERE `name`= '$name'");

$allitems = mysql_query("SELECT * from `regist` WHERE `id`= '$id'");

while($rows = mysql_fetch_assoc($allitems)){

$items[] = $rows;

}

foreach($items as $item){

$_SESSION["login"]["username"] = $item["username"];

}

rename("regdatas/profiles/".$name,"regdatas/profiles/".$username);

}


//Jelszó

if(strlen($jelszo)>0){

mysql_query("UPDATE `regist` SET `jelszo` = '$jelszo' WHERE `id`= '$id'");

foreach($items as $item){

$_SESSION["login"]["jelszo"] = $item["jelszo"];

}

}

stb.............. és a végén jön a mysql_close($connect);

Nem lehet ezt egyszerűbben megoldani? :D Ne szidjatok, ez volt az első ilyen php kódom.



2015. júl. 18. 13:08
 1/7 A kérdező kommentje:
Ui.: A mysqli re akkor tervezem a kódok átírását, ha a localhoston végeztem az oldallal :D
2015. júl. 18. 13:11
 2/7 A kérdező kommentje:
Ja, és minden adat egy táblában van.
2015. júl. 18. 13:11
 3/7 anonim ***** válasza:
Szerintem a fórum táblában felesleges a nevet tárolni, elég az ID, és akkor csak egyetlen helyen kell átírni, a felhasználók táblájában.
2015. júl. 18. 13:19
Hasznos számodra ez a válasz?
 4/7 Drone007 ***** válasza:

Ha jól tévedek ez fut le, ha megváltoztatja a felhasználónevét a delikvens.

Ha engeded, hogy a felhasználónevét megváltoztassa valaki, akkor célszerű a hozzá tartozó mappát eleve nem a nevével elnevezni. Az az adat, ami nem változik (nem változhat!) az a felhasználóhoz tartozó id (regist.id). Ezzel célszerű hivatkozni a felhasználóra mindenhol. A fórum táblában is (forum.id_user), és a mappája nevében is ("regdatas/profiles/user_".$user->id). Így a fenti borzalom feleslegessé válik.

A foreach-es részeket abszolút nem értem. Totálisan feleslegesek, nem tudom mit akartál elérni velük.


Alapvetően úgy látom, hogy eléggé kaotikusan állsz hozzá a probléma megoldásának. Jobb lenne, ha a megoldási folyamatot először leírnád, vagy lerajzolnád egy folyamatábrában, és több részre tagolnád (adatbekérés, ellenőrzés, feldolgozás, tárolás, kijelzés). A legjobb persze az lenne, ha tanulmányoznád az MVC módszertant, és az alapján építenéd fel a weboldal motorját, mert ez így szörnyen átláthatatlan és kaotikus.

2015. júl. 18. 17:48
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
Köszi! :) Utánanézek annak a módszertannak. Egyébként a foreachal jártam be a mysql_fetch_assoc által kapott tömb összes elemét, és amikor az elemem odaért a felhasználónévhez akkor a SESSION_USERNAME-t átírja, így egyszerre történik minden, nem kell a sessiont újraindítani, hogy a sessionban is megváltozzon minden
2015. júl. 18. 19:41
 6/7 A kérdező kommentje:
Már írtam, hogy ez az első "adatok megváltoztatása" funkciós oldalam, kódom. Azaz, fogalmam sincs, hogyan kell egy ilyet jól megcsinálni. Hiába csinálnék mvc-t, ha nem tudom hogyan álljak neki. Van egy űrlapom, azon belül a felhasználónév, keresztnév, vezetéknév, kor, nem stb. elemekhez tartozik egy input, majd ha elküldi a felhasználó az űrlapot, akkor megváltoztatja amit beírt viszont figyelmen kívül hagyja amit nem.
2015. júl. 18. 19:49
 7/7 Drone007 ***** válasza:
Az id azonosítású keresésnek csak 1(egy) eredménye lehet, már ha rendesen van beállítva az sql táblában az id mező (auto inc. primary key), így a while is felesleges, a foreach, és az $items tömb szintén. UPDATE esetén ugyanígy.
2015. júl. 19. 10:10
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!