berti28
12.03.2017, 10:11:31
Witam
Otóż mam taki problem wyświetlają mi się dane użytkowników serwisu z bazy i jak się w któregoś kliknie to się wchodzi na jego profil.
Ja to rozwiązałem taką metodą:
"<a href=\"li.php?a=edit&id={$rekord['id']}&data={$rekord['data']}&login={$rekord['login']}&wymarzony={$rekord['wymarzony']}&zlotowka={$rekord['zlotowka']}&dziesiec={$rekord['dziesiec']}&piatka={$rekord['piatka']}&sto={$rekord['sto']}&dwiescie={$rekord['dwiescie']}&piecset={$rekord['piecset']}&tysiak={$rekord['tysiak']}&cena={$rekord['cena']}&zebrano={$rekord['zebrano']}\">Wyświetl</a>
</h2></center>";
}.
Problem w tym że jak się przejdzie na profil użytkownika to osoba która korzysta z serwisu może w pasku URL zmieniać opisy.
Jak można takie coś rozwiązać?
woxala123
12.03.2017, 10:25:25
Uporządkuj kod. Korzystaj z tagów.
berti28
12.03.2017, 11:18:33
Bym mi mógł ktoś napisać jak można takie coś zrobić? Będę bardzo wdzięczny.
Mam taki plik o nazwie zbierajacy.php
<?php
$connection = @mysql_connect('localhost', 'root', '')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('baza', $connection)
or die('Nie mogę połączyć się z bazą danych');
mysql_query('SET NAMES "utf8"');
$count=4; //wyników na strone
$offset=0; //obecnie wyświetlana strona
if(isset($_GET['count'])) //jeśli wybrano za pomocą GET ilość wyników
{
$count = $_GET['count'];
}
if(isset($_GET['offset'])) //jeśli wybrano kolejne strony z wynikami
{
$offset = $count*$_GET['offset'];
}
// zapytanie zwracające ilosc rekordów z tabeli
$sql = 'SELECT COUNT(*) FROM `posiadlosc`';
$result = mysql_query($sql);
$r = mysql_fetch_array($result);
//podział wyników na strony
$pages = ceil($r[0]/$count);
//wybranie wyników dla bieżących parametrów offset
$select = 'SELECT * FROM `posiadlosc` login ORDER BY `id` desc LIMIT '.$count.' offset '.$offset.';';
$q=mysql_query($select)or die(mysql_error());
while ($rekord = mysql_fetch_assoc($q)) {
$id = $rekord['id'];
$login = $rekord['login'];
$wymarzony = $rekord['wymarzony'];
$cena = $rekord['cena'];
$zebrano = $rekord['zebrano'];
$data = $rekord['data'];
$zlotowka = $rekord['zlotowka'];
$dziesiec = $rekord['dziesiec'];
$piatka = $rekord['piatka'];
$sto = $rekord['sto'];
$dwiescie = $rekord['dwiescie'];
$piecset = $rekord['piecset'];
$tysiak = $rekord['tysiak'];
$remained = ceil((strtotime($data) - time()) / (60 * 60 * 24));
echo "<center><h2>Login: $login.
Cena domu: $cena.
Opis wymarzonego domu: $wymarzony.
Postęp zbiórki: $zebrano
Koniec zbiórki: $remained dni
<a href=\"li.php?a=edit&id={$rekord['id']}&data={$rekord['data']}&login={$rekord['login']}&wymarzony={$rekord['wymarzony']}&zlotowka={$rekord['zlotowka']}&dziesiec={$rekord['dziesiec']}&piatka={$rekord['piatka']}&sto={$rekord['sto']}&dwiescie={$rekord['dwiescie']}&piecset={$rekord['piecset']}&tysiak={$rekord['tysiak']}&cena={$rekord['cena']}&zebrano={$rekord['zebrano']}\">Wyświetl</a>
</h2></center>";
}
echo "<b><font color='white'>Strony:</font></b>";
for($i=0;$i<$pages;$i++) //wyswietlanie numerów stron
{
if($i*$count==$offset)
{
echo ' '.$i.' ';
}else{
echo '<sup><a href="zbierajacy.php?count='.$count.'&offset='.$i.'"> '.$i.' </a></sup>'; //tworzenie odnośnika z odpowiednimi parametrami offset i count
}
}
?>
</fieldset>
<style>
h2 {
background-color: #D08AFF;
width: 804px;
height: 500px;
text-shadow: blue;
}
</style>
Wyświetlają się użytkownicy jak kliknie się w jednego otwiera się plik "li.php" to jest jego kod:
<?php
$data= $_GET['data'];
$piatka= $_GET['piatka'];
$sto= $_GET['sto'];
$dwiescie= $_GET['dwiescie'];
$piecset= $_GET['piecset'];
$tysiak= $_GET['tysiak'];
$zlotowka=$_GET['zlotowka'];
$dziesiec=$_GET['dziesiec'];
$zebrano=$_GET['zebrano'];
$wymarzony=$_GET['wymarzony'];
$login=$_GET['login'];
$id=$_GET['id'];
$date = $_GET['data'];
$remained = ceil((strtotime($date) - time()) / (60 * 60 * 24));
$query = mysql_query("SELECT FROM posiadlosc login='".$login."',zlotowka='".$zlotowka."' piatka='".$piatka."'sto='".$sto."'dwiescie='".$dwiescie."' piecset='".$piecset."'tysiak='".$tysiak."' data='".$data."'wymarzony='".$wymarzony."' zlotowka='".$zlotowka."'zebrano='".$zebrano."' WHERE id='".$id."'");
echo '<fieldset>';
echo "<h1>Moim wymarzonym domem jest: $wymarzony</br></h1>";
echo "<h1>Postęp mojej zbiórki: $zebrano </br></h1>";
echo "<h1>Koniec mojej zbiórki: $remained dni </br></h1>";
Problem mam taki że w adresie url przeglądarki każdy odwiedzający może zmienić treść niektórych punktów na stronie.
Jak to rozwiązać?
viking
12.03.2017, 11:21:06
Używaj bbcode. Ja bym się raczej martwił że w tym kodzie można zrobić cokolwiek w bazie - sql injection.
berti28
13.03.2017, 11:02:08
Temat zamknięty problem rozwiązany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.