Forum » Izdelava spletišč » MySql gone wild?
MySql gone wild?
root987 ::
Pri strani, ki jo trenutno izdelujem za razred, se mi pri sporočilih, ki jih lahko objavljajo prijavljeni uporabniki pojavlja en precej hud problem:
Vsake nekaj časa se bazi (ali pa php skripti) malo zrola - razlaga: preprosto nabije 100+ sporočil brez vsebine, a z pravilno dodanim avtorjem. Slednje potem lahko na roko brišem, a verjetno ni potrebno povedati, da je to vse prej kot prijetno delo.
Koda, s katero pridobim vsebino ($sms), id uporabnika($id) ter nato avtorja($avtor)
Temu sledi koda za dodajanje slednjega v bazo...
Trenutno poskušam problem rešiti tako:
...a ker se napaka dogaja bolj kot ne random, ne vem ali bo to učinkovalo ali ne.
Bi naj to delalo oz. zakaj se sploh to dogaja? Hvala za pomoč.
Vsake nekaj časa se bazi (ali pa php skripti) malo zrola - razlaga: preprosto nabije 100+ sporočil brez vsebine, a z pravilno dodanim avtorjem. Slednje potem lahko na roko brišem, a verjetno ni potrebno povedati, da je to vse prej kot prijetno delo.
Koda, s katero pridobim vsebino ($sms), id uporabnika($id) ter nato avtorja($avtor)
$sms = $_POST['sms']; $id = $_SESSION['id']; $sql = mysql_query("SELECT * FROM uporabniki WHERE id='$id'"); $sql_fetch = mysql_fetch_array($sql); $avtor = $sql_fetch['1'];
Temu sledi koda za dodajanje slednjega v bazo...
$sql = mysql_query("INSERT INTO sms(id,avtor,sms,cas,ip,cas_true) VALUES('','$avtor','$sms',now(),'$ip','$date')");
Trenutno poskušam problem rešiti tako:
if(!$sms) { echo "Zgodila se je napaka. Prosim, poskusite znova."; exit; }
...a ker se napaka dogaja bolj kot ne random, ne vem ali bo to učinkovalo ali ne.
Bi naj to delalo oz. zakaj se sploh to dogaja? Hvala za pomoč.
"Myths which are believed in tend to become true."
--- George Orwell
--- George Orwell
frke ::
Kot si sam ugotovil, bi bilo dobro opraviti nekatere kontrole preden sporočilo zapišeš v bazo. Postavi kontrolo tudi na $id, queryju za iskanje uporabnika pa dodaj limit 1 - tako, da query vrne le enega uprabnika.
Dodaj tudi postopek, če uprabnika $id ni v tabeli uporabniki.
"SELECT * FROM uporabniki WHERE id='$id' limit 1"
V tabelo sms dodaj na polje avtor, sms NOT NULL, tako da baza ne bo pustila takega vpisa.
Skoraj gotovo ne gre za napako v mysql ampak tvojo napako.
Dodaj tudi postopek, če uprabnika $id ni v tabeli uporabniki.
"SELECT * FROM uporabniki WHERE id='$id' limit 1"
V tabelo sms dodaj na polje avtor, sms NOT NULL, tako da baza ne bo pustila takega vpisa.
Skoraj gotovo ne gre za napako v mysql ampak tvojo napako.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PHP in objektno programiranje (strani: 1 2 )Oddelek: Programiranje | 12133 (10600) | kivi113 |
» | [php] preverjanje online uporabnikovOddelek: Programiranje | 2077 (1733) | cobrica |
» | MySQL Query VprašanjeOddelek: Izdelava spletišč | 3225 (2990) | overlord_tm |
» | [php, mysql] sortiranje izpisa iz bazeOddelek: Izdelava spletišč | 2690 (2209) | Binji |
» | unset cookieOddelek: Izdelava spletišč | 1868 (1675) | tomitza |