tehextinct Skrevet 1. mai 2007 Del 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! Lenke til kommentar
grimjoey Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 (endret) if (0 < (int)$_GET['s'] <= 100) Endret 1. mai 2007 av grimjoey Lenke til kommentar
Bakke Skrevet 1. mai 2007 Del 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 Lenke til kommentar
cyclo Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Du må vell ha med en is numeric ting også? Mener at >< kan slå ut på tekst også Lenke til kommentar
grimjoey Skrevet 1. mai 2007 Del 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 Lenke til kommentar
tehextinct Skrevet 1. mai 2007 Forfatter Del 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 Lenke til kommentar
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å