tehextinct Skrevet 1. mai 2007 Skrevet 1. mai 2007 Går det ann å sjekke om $_GET['s'] = 1-100 eks.? Dette vil jeg gjøre jeg skal liste en og en nyhet, og si jeg har 78 nyheter. Da vil jeg dette. $rows = mysql_query("SELECT * FROM $table"); $num_rows = mysql_num_rows($rows); if ($_GET['s'] = mellom 1 og $num_rows) { /vis nyhet } else { //error } Skjønner dere? Vis brukeren fikler med url'en og skriver "hest"(eks) kommer det en error, vis brukeren skriver et tall mellom 1 og antall rader(78) vises nyheten. (Btw jeg mener ikke noe sån derre is numeric greier bare sjekke om det er et tall mellom 1 og antallrader) Takk for svar!
grimjoey Skrevet 1. mai 2007 Skrevet 1. mai 2007 (endret) if (0 < (int)$_GET['s'] <= 100) Endret 1. mai 2007 av grimjoey
Bakke Skrevet 1. mai 2007 Skrevet 1. mai 2007 (endret) if(!is_numeric($_GET['s']) { die("error"); } if ($_GET['s'] > 0 && $_GET['s'] < $num_rows) { //Suksess } else { //Feil } Edit: Glemte is_numeric Endret 1. mai 2007 av mhbakke
cyclo Skrevet 1. mai 2007 Skrevet 1. mai 2007 Du må vell ha med en is numeric ting også? Mener at >< kan slå ut på tekst også
grimjoey Skrevet 1. mai 2007 Skrevet 1. mai 2007 (endret) $rows = mysql_query("SELECT * FROM $table"); $num_rows = mysql_num_rows($rows); $s = $_GET['s'] if(!is_numeric($s)) { die("error"); } if (0 < (int)$s <= $num_rows) { /vis nyhet } else { //error } mhbakke: tror ikke scriptet ditt vil vise den siste posten (< $num_rows) tehextinct: husk at hvis du sletter nyheter fra tabellen så dukker det opp hull i id colonnen (altså ikke alle tallene henger sammen) da vil count generere et tall som er lavere en id'en til det siste innlegget. (dersom du bruker int med auto_increment da) en løsning kan være å hente et array: $qry = "select id from $table"; if(!$res = mysql_query($qry)) die(mysql_error()); $ids = array(); $i = 0; while($arr = mysql_fetch_assoc($res)) { $ids[$i] = $arr['id']; $i++; } så se om in_array((int)$_GET['s'], $ids) Endret 1. mai 2007 av grimjoey
tehextinct Skrevet 1. mai 2007 Forfatter Skrevet 1. mai 2007 (endret) if(!is_numeric($_GET['s']) { die("error"); } if ($_GET['s'] > 0 && $_GET['s'] < $num_rows) { //Suksess } else { //Feil } Edit: Glemte is_numeric 8513699[/snapback] Fikset litt på den gjorde om $_GET['s'] < $num_rows til $_GET['s'] <= $num_rows så viket det akkurat slik som jeg vill ha det! if(!is_numeric($_GET['s']) { die("error"); } if ($_GET['s'] > 0 && $_GET['s'] <= $num_rows) { //Suksess } else { //Feil } Takk alle sammen!! Scriptet ble ca. 10ganger forbedret takke være dere Endret 1. mai 2007 av tehextinct
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå