MySQL aktualizacja danych - Wersja do druku
+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: MySQL aktualizacja danych (/thread-mysql-aktualizacja-danych)
|
MySQL aktualizacja danych - dziamber - 12-06-2009
Witam, mam pewien problem krew mnie już zalewa bo nie mogę się uporac z nim, ale do rzeczy. Mam stronę na której użytkownik zalogowany może zaktualizowac informacje w swoim profilu. Kod tej strony:
Kod: <?php
include "conn.inc.php";
include "auth.inc.php";
mysql_select_db('a3858664_esport')
or die(mysql_error());
$user = $_SESSION['user_logged'];
echo "<p>Tutaj możesz uaktualnic informacje dotyczace swojego profilu.<br/><br/>";
if (isset($_POST['submit']) && $_POST['submit'] == "Uaktualnij") {
$query_update = "UPDATE player SET " .
"gra = ' " . $_POST['gra'] . " ', " .
"staz = ' " . $_POST['staz'] . " ', " .
"klan1 = ' " . $_POST['klan1'] . " ', " .
"klan2 = ' " . $_POST['klan2'] . " ', " .
"sukces = ' " . $_POST['sukces'] . " ', " .
"komentarz = ' " . $_POST['komentarz'] . " ', " .
"email = ' " . $_POST['email'] . " ', " .
"numergg = ' " . $_POST['numergg'] . " ', " .
"klan = ' " . $_POST['klan'] . " ', " .
"miasto = ' " . $_POST['miasto'] . " ', " .
"pass = ' " . $_POST['pass'] . " ' " .
"WHERE nick = '$user' ";
$result_update = mysql_query($query_update)
or die(mysql_error());
$query = "SELECT * FROM player WHERE nick = '$user' ";
$result = mysql_query($query)
or die(mysql_error());
$row = mysql_fetch_array($result);
?>
<b>Dane profilu zostaly uaktualnione</b></br>
<a href="profil.php">Zobacz swoj profil</a>
<form action="profil_edit.php" method="post">
<table>
<tr><td>Gra:</td><td><select name="gra" value="<?php echo $row['gra']; ?>">
<option value="Battlefield 2">Battlefield 2</option>
<option value="Battlefield 2142">Battlefield 2142</option>
<option value="Call of Duty">Call of Duty</option>
<option value="Call of Duty 2">Call of Duty 2</option>
<option value="Call of Duty 4">Call of Duty 4</option>
<option value="CoD World at War">CoD World at War</option>
<option value="Combat Arms">Combat Arms</option>
<option value="Counter Strike 1.6">Counter Strike v1.6</option>
<option value="CS: Source">CS: Source</option>
<option value="Day of Defeat">Day of Defeat</option>
<option value="Enemy Territory">Enemy Territory</option>
<option value="ET: Quake Wars">ET: Quake Wars</option>
<option value="Far Cry 2">Far Cry 2</option>
<option value="FIFA">FIFA</option>
<option value="HALO">HALO</option>
<option value="Left 4 Dead">Left 4 Dead</option>
<option value="MoH: Allied Assault">MoH: Allied Assault</option>
<option value="Operation 7">Operation 7</option>
<option value="PES">PES</option>
<option value="Quake 2">Quake 2</option>
<option value="Quake 3">Quake 3</option>
<option value="Quake Live">Quake Live</option>
<option value="Race Driver GRID">Race Driver Grid</option>
<option value="Solider of Fortune 2">Solider of Fortune 2</option>
<option value="Stalker: Clear Sky">Stalker: Clear Sky</option>
<option value="Swat 4">Swat 4</option>
<option value="Tactical Ops">Tactical Ops</option>
<option value="Team Fortress 2">Team Fortress 2</option>
<option value="TrackMania">TrackMania</option>
<option value="Tibia">Tibia</option>
<option value="Unreal Tournament">Unreal Tournament</option>
<option value="UT 2004">UT 2004</option>
<option value="UT 3">UT 3</option>
<option value="Urban Terror">Urban Terror</option>
<option value="WarSow">WarSow</option>
<option value="Worms">Worms</option>
<option value="World of Warcraft">World of Warcraft</option>
</td></tr>
<tr><td>Staz gry:</td><td><select name="staz" value="<?php echo $row['staz']; ?>">
<option value="mniej niz 1 rok">mniej niz 1 rok</option>
<option value="1 rok">1 rok</option>
<option value="wiecej niz 1 rok">wiecej niz 1 rok</option>
<option value="2 lata">2 lata</option>
<option value="wiecej niz 2 lata">wiecej niz 2 lata</option>
<option value="3 lata">3 lata</option>
<option value="wiecej niz 3 lata">wiecej niz 3 lata</option>
<option value="4 lata">4 lata</option>
<option value="iwiecej niz 4 lata">wiecej niz 4 lata</option>
<option value="5 lat">5 lat</option>
<option value="wiecej niz 5 lat">wiecej niz 5 lat</option>
<option value="6 lat">6 lat</option>
<option value="wiecej niz 6 lat">wiecej niz 6 lat</option>
<option value="7 lat">7 lat</option>
<option value="wiecej niz 7 lat">wiecej niz 7 lat</option>
</td></tr>
<tr><td>Miasto:</td><td><input type="text" name="miasto" value="<?php echo $row['miasto']; ?>"></td></tr>
<tr><td>e-mail</td><td><input type="text" name="email" value="<?php echo $row['email']; ?>"></td></tr>
<tr><td>Aktualny klan:</td><td><select name="klan" value="<?php echo $row['klan']; ?>">
<option value="szukam">Szukam klanu</option>
<option value="mam">Mam juz klan</option>
<optin value="nie szukam">Nie szukam klanu</option></td></tr>
<tr><td>przedostatni klan:</td><td><input type="text" name="klan1" value="<?php echo $row['klan1']; ?>"></td></tr>
<tr><td>ostatni klan:</td><td><input type="text" name="klan2" value="<?php echo $row['klan2']; ?>"></td></tr>
<tr><td>Najwaz. sukces</td><td><input type="text" name="sukces" value="<?php echo $row['sukces']; ?>"></td></tr>
<tr><td>GaduGadu:</td><td><input type="text" name="gg" value="<?php echo $row['numergg']; ?>"></td></tr>
<tr><td>Od siebie</td><td><textarea name="komentarz" cols="30" rows="5" value="<?php echo $row['komentarz']; ?>">Tutaj wpisz cos od siebie</textarea></td></tr>
</table>
<input type="submit" name="submit" value="Uaktualnij"> <input type="button" value="anuluj" onclick="history.go(-1);">
</form>
</p>
<?php
} else {
include "conn.inc.php";
$query = "SELECT * FROM player " .
"WHERE nick = '$user' ";
$result = mysql_query($query)
or die(mysql_error());
$row = mysql_fetch_array($result);
?>
<form action="profil_edit.php" method="post">
<table>
<tr><td>Gra:</td><td><select name="gra" value="<?php echo $row['gra']; ?>">
<option value="Battlefield 2">Battlefield 2</option>
<option value="Battlefield 2142">Battlefield 2142</option>
<option value="Call of Duty">Call of Duty</option>
<option value="Call of Duty 2">Call of Duty 2</option>
<option value="Call of Duty 4">Call of Duty 4</option>
<option value="CoD World at War">CoD World at War</option>
<option value="Combat Arms">Combat Arms</option>
<option value="Counter Strike 1.6">Counter Strike v1.6</option>
<option value="CS: Source">CS: Source</option>
<option value="Day of Defeat">Day of Defeat</option>
<option value="Enemy Territory">Enemy Territory</option>
<option value="ET: Quake Wars">ET: Quake Wars</option>
<option value="Far Cry 2">Far Cry 2</option>
<option value="FIFA">FIFA</option>
<option value="HALO">HALO</option>
<option value="Left 4 Dead">Left 4 Dead</option>
<option value="MoH: Allied Assault">MoH: Allied Assault</option>
<option value="Operation 7">Operation 7</option>
<option value="PES">PES</option>
<option value="Quake 2">Quake 2</option>
<option value="Quake 3">Quake 3</option>
<option value="Quake Live">Quake Live</option>
<option value="Race Driver GRID">Race Driver Grid</option>
<option value="Solider of Fortune 2">Solider of Fortune 2</option>
<option value="Stalker: Clear Sky">Stalker: Clear Sky</option>
<option value="Swat 4">Swat 4</option>
<option value="Tactical Ops">Tactical Ops</option>
<option value="Team Fortress 2">Team Fortress 2</option>
<option value="TrackMania">TrackMania</option>
<option value="Tibia">Tibia</option>
<option value="Unreal Tournament">Unreal Tournament</option>
<option value="UT 2004">UT 2004</option>
<option value="UT 3">UT 3</option>
<option value="Urban Terror">Urban Terror</option>
<option value="WarSow">WarSow</option>
<option value="Worms">Worms</option>
<option value="World of Warcraft">World of Warcraft</option>
</td></tr>
<tr><td>Staz gry:</td><td><select name="staz" value="<?php echo $row['staz']; ?>">
<option value="mniej niz 1 rok">mniej niz 1 rok</option>
<option value="1 rok">1 rok</option>
<option value="wiecej niz 1 rok">wiecej niz 1 rok</option>
<option value="2 lata">2 lata</option>
<option value="wiecej niz 2 lata">wiecej niz 2 lata</option>
<option value="3 lata">3 lata</option>
<option value="wiecej niz 3 lata">wiecej niz 3 lata</option>
<option value="4 lata">4 lata</option>
<option value="iwiecej niz 4 lata">wiecej niz 4 lata</option>
<option value="5 lat">5 lat</option>
<option value="wiecej niz 5 lat">wiecej niz 5 lat</option>
<option value="6 lat">6 lat</option>
<option value="wiecej niz 6 lat">wiecej niz 6 lat</option>
<option value="7 lat">7 lat</option>
<option value="wiecej niz 7 lat">wiecej niz 7 lat</option>
</td></tr>
<tr><td>Miasto:</td><td><input type="text" name="miasto" value="<?php echo $row['miasto']; ?>"></td></tr>
<tr><td>e-mail</td><td><input type="text" name="email" value="<?php echo $row['email']; ?>"></td></tr>
<tr><td>Aktualny klan:</td><td><select name="klan" value="<?php echo $row['klan']; ?>">
<option value="szukam">Szukam klanu</option>
<option value="mam">Mam juz klan</option>
<optin value="nie szukam">Nie szukam klanu</option></td></tr>
<tr><td>przedostatni klan:</td><td><input type="text" name="klan1" value="<?php echo $row['klan1']; ?>"></td></tr>
<tr><td>ostatni klan:</td><td><input type="text" name="klan2" value="<?php echo $row['klan2']; ?>"></td></tr>
<tr><td>Najwaz. sukces</td><td><input type="text" name="sukces" value="<?php echo $row['sukces']; ?>"></td></tr>
<tr><td>GaduGadu:</td><td><input type="text" name="gg" value="<?php echo $row['numergg']; ?>"></td></tr>
<tr><td>Od siebie</td><td><textarea name="komentarz" cols="30" rows="5" value="<?php echo $row['komentarz']; ?>">Tutaj wpisz cos od siebie</textarea></td></tr>
</table>
<input type="submit" name="submit" value="Uaktualnij"> <input type="button" value="anuluj" onclick="history.go(-1);">
</form>
</p>
<?php
}
?>
A teraz przejdę do problemu. Aktualizuję dane i owszem, gdy wchodzę na swój profil to dane są zaktualizowane, jednak w formularzu nie widac zmian, a dane w nim jakoś dziwnie przesuwają się w bok. Wychodzę ze strony, po minucie znów na nią wchodzę i chcę aktualizowac profil jednak nowe dane się zapisują a stare znikają. Podam przykład:
1 wejście aktualizuje rubrykę "gra", która była domyślnie ustawiona na Call Of Duty, i zmieniam ją na Left4Dead.
2 wejście aktualizuję rubrykę "nick" jednak rubryka "gra" którą wcześniej aktualizowałem jest nadal na Call of Duty a nie na pozycji która zmieniłem.
Jeżeli ktoś wie co jest grane to proszę o pomoc
RE: MySQL aktualizacja danych - Jupiter - 12-06-2009
Cytat:<select name="gra" value="<?php echo $row['gra']; ?>">
tak się nie robi znacznik select nie ma atrybutu value
musisz zrobić short-ifa
Kod: <option value="Battlefield 2" <?php ($row['gra'] == "Battlefield 2" ? "selected" : "") >Battlefield 2</option>
etc..., tak samo z rokiem
Pozdrawiam
RE: MySQL aktualizacja danych - BlueMan - 16-06-2009
Kod: $query_update = "UPDATE player SET " .
"gra = ' " . $_POST['gra'] . " ', " .
"staz = ' " . $_POST['staz'] . " ', " .
"klan1 = ' " . $_POST['klan1'] . " ', " .
"klan2 = ' " . $_POST['klan2'] . " ', " .
"sukces = ' " . $_POST['sukces'] . " ', " .
"komentarz = ' " . $_POST['komentarz'] . " ', " .
"email = ' " . $_POST['email'] . " ', " .
"numergg = ' " . $_POST['numergg'] . " ', " .
"klan = ' " . $_POST['klan'] . " ', " .
"miasto = ' " . $_POST['miasto'] . " ', " .
"pass = ' " . $_POST['pass'] . " ' " .
"WHERE nick = '$user' ";
I weź to zabezpiecz bo jak nic sql injection można zrobić!!
RE: MySQL aktualizacja danych - kajzur - 16-06-2009
Proponuję do tego funkcję
htmlspecialchars();
Przeflirtuj nią, to co pobierasz z formularza 
RE: MySQL aktualizacja danych - KowR - 16-06-2009
Najlepiej było by przefiltrować te dane takimi funkcjami jak np. htmlspecialchars, a następnie wyrażeniami regularnymi i funkcją eregi (wolniej, ale bezpiecznie)... Do tego, aby odciążyć serwer można by było to zrobić w AJAXie.
|