Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
MySQL

Zapytanie "DELETE" Problem

MySQL

  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 11.09.2011 17:52

Nie wiem czemu, ale chyba źle wykonuje zapytanie delete. wcześniej nie miałem z tym problemu a teraz d*pa



if($_GET['menu'] == 'news')
{
if($_GET['menu'] == 'news' && $_GET['delete'])
{
$get = $_GET['delete'];
$usun = mysql_query("DELETE * from `newsy` where `id`='$get'");
if($usun)
{
echo '<div class="uwaga">Pomyślnie usunięto</div>';
}
else if($usun)
{
echo '<div class="uwagaczer">Nie udało się usunąć Newsa</div>';
}

}
echo '<center>
<table bordercolor="#94a3c4" width="100%" height="5%">
<tr height="5" bgcolor="#eceff5">
<td colspan="4"><b>Możesz Tutaj Usuwać / edytować Newsy</b></td>
</tr>';

$mysql = mysql_query("SELECT * from `newsy`");
while($newsy = mysql_fetch_array($mysql))
{
echo <<< newsy
<tr height="5" bgcolor="#eceff5">
<td colspan="3">{$newsy['tytul']}</td><td><a href="index.php?menu=news&delete={$newsy['id']}">Usuń</a> / <a href="index.php?edit={$newsy['id']}">Edutuj</a></td>
</tr>
newsy;
}
echo '</table></center>';


}

  • +
  • -
  • 0

#2 byCZUS

    Listonosz

  • Support Team

Reputacja: 752
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Napisano 11.09.2011 17:56

złe zapytanie ;D

powinno być
DELETE FROM `newsy` WHERE `id` = '$get'

Do tego radzę przed $_GET['id'] dodać znaczek (int) by uniknąć SQL INJECTION w jakimś tam stopniu.

$get = (int)$_GET['delete'];

Użytkownik byCZUS edytował ten post 11.09.2011 17:56

  • +
  • -
  • 1

Dziękuje, dobranoc.


#3 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 11.09.2011 17:59

Ok dzięki,
z tą gwiazdą co jej nie powinno być to się domyśliłem , ale z tą dziurą na SQL injection to nie ;d

Ok + leci
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: MySQL

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych