pitanje u vezi rand()

pitanje u vezi rand()

offline
  • Pridružio: 01 Jan 2010
  • Poruke: 75
  • Gde živiš: Beograd

Da li postoji rand sa izuzetkom?
npr
4=brojkojinecu Smile
$lol=rand(1, 6 if($lol==4)) Pa da izbaci neki br ali ne 4)

ja sam ovde napisao kako ja zamisljam tu skriptu da radi a vi mi molim vas recite da li tako nesto postoji ili ako ne da li postoji alternativa



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan Kragujević
  • tzv. Junior PHP Programer
  • Pridružio: 20 Avg 2011
  • Poruke: 76
  • Gde živiš: Klenovnik, Srbija

$rand = rand(1, 99); if($rand = 4) { $rand = rand(1, 99); }



offline
  • Pridružio: 01 Jan 2010
  • Poruke: 75
  • Gde živiš: Beograd

tako postoji mogucnost da se dobije 4 opet, kod tebe je mala sansa jer se radi o 99 brojeva ali ipak postoji, kod mene se radi o manjoj cifri pa je rizik veci,

resio sam ja, pa ako nekom bude zatrebalo
<?php
$rand=rand(1, 5);
if($rand=="4"){
header("Location: OVA STRANICA";
}else{
dalji kod...
}
?>
Radi se o tome da ce stano iznova ucitavati stranicu dok ne dobije broj koji nije 4 ali sigurno nikad nece biti 4... ako na sajtu imate sadrzaj koji ne sme da se reloaduje napravite ovo kao poseban php fajl i kreirajte kolacic dobijenog broja pa na toj stranici samo uzmite iz kolacica slucajni broj

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Video sam ti gresku iz aviona, mogao bi malo da posvetis vremena na operatere razliku izmedju = i == i ===

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

$rand = rand(1,99); while ($rand == 4) $rand = rand(1,99);

Ovako nikad neces da dobijes 4, a ne moras da osvezavas stranicu unedogled Wink

@MilanKragujevic

if($rand = 4) uvek zadovoljava uslov, tj uvek je true jer se radi o operateru dodele (=) a ne operateru uporedjivanja (==). I posle ovakvog reda $rand je sigurno 4.

offline
  • Pridružio: 01 Jan 2010
  • Poruke: 75
  • Gde živiš: Beograd

<?php
ob_start();

// ovde dodje deo gde proveravam da li je ulogovan...


$iizbroj = count(file("listasajtova.txt")); //BROJIM KOLIKO SAJTOVA IMA TRENUTNO U BAZI
$izbroj=$iizbroj-"1"; // ODUZIMAM 1 JER JE PRVI RED U FAJLU UVEK 0, DEFINISEM POSLEDNJI SAJT
$min = "0"; //DEFINISEM PRVI SAJT
$brojlinije = rand($min, $izbroj); //BIRAM SLUCAJNI REDNI BROJ SAJTA
$fajl = "listasajtova.txt";
$fajllinija = file($fajl, FILE_IGNORE_NEW_LINES);
$link = $fajllinija[$brojlinije]; // UCITAVAM LINIJU IZ FAJLA I UZIMAM KOJI JE SAJT POD DOBIJENIM REDNIM //BROJEM

$lokacija="clanovi/".$link."/kredit.txt"; // ODREDJUJEM LOKACIJU SLUCAJNO DOBIJENOG NALOGA

$nnn=file($lokacija, FILE_IGNORE_NEW_LINES);

$stanje=$nnn[0]; //GLEDAM KOLIKO KORISNIK IMA KREDITA NA RACUNU

$potrebno="2"; // DEFINISEM KOLIKO MORA DA IMA DA BI NJEGOV SAJT MOGAO DA SE PRIKAZE

$lokacija2 = file($kolacsajt, FILE_IGNORE_NEW_LINES);

$mojbroj=$lokacija2[4]; //DEFINISEM NJEGOV SAJT DA NEBI DOBIO SVOJ

//SAD OVDE KRECU PROBLEMI Very Happy

if($stanje<$potrebno){ // AKO IMA DOVOLJNO KREDITA NJEGOV SAJT ULAZI U IGRU
// I SAD NE ZNAM STA OVDE DA STAVIM DA BI PONOVO UCITALO SKRIPTU SAMO POD USLOVOM DA PRESKOCI VEC DOBIJENI SAJT JER NE ISPUNJAVA KRITERIJUME I DA TRAZI SLEDECI

}else {

if($mojbroj=$brojlinije){

// OVDE SAM PROVERIO DA LI JE SLUCAJNO DOBIJENI SAJT - NJEGOV SAJT, AKO JESTE OPET MI TREBA PONOVO UCITAVANJE SKRIPTE

}else{

$http = "http://";

$adresa = $http.$link;

session_start();

$_SESSION['prethodnisajt']="$link";

header("Location: $adresa");

}
}

ob_end_flush();
?>

Kako sada ovde da uklopim rand ? hvala..

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

function myRand($min = 0, $max = 100, $exception = array()) {  $no = mt_rand($min, $max);  if(in_array($no, $exception)) {   $no = myRand($min, $max, $exception);   return $no  }   return $no; } // upotreba // echo myRand(0, 5, array(4));

Pisano je iz glave, ali kapiram da bi trebalo da radi..

EDIT:
ili jos bolje, savrsen primer za upotrebu davno zaboravljenog do-while loop-a
do {     $no = mt_rand(0, 5); } while ($no == 4);

..naravno, sa prvim primerom imas reusable kod i mozes u niz da stavis vise od jednog broja za koji ne zelis da bude vracen..

Ko je trenutno na forumu
 

Ukupno su 859 korisnika na forumu :: 59 registrovanih, 4 sakrivenih i 796 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 04bokibole, amonsrb, arsa, Asteker, Bbbggg1979, bladesu, BUDDAR70, CHARLIE JA., cyprus, djuradj, Doc, DragoslavS, Dugme1984, dushan, Dzambas, ElGenius, farabut, Gogi_avio, Incognito, JOntra, kib, kibihrchak, korin911, ladro, Lazarus, leopard83, Linda, LjutaGuja, luka35, marko.markovic, mat, MB120mm, Milometer, Mirage 2000N, mrvica78, nenad81, Novakomp, obsc, ozzy, Paki, Pantelejmon, Prometeus, Ripanjac, rodoljub, saputnik plavetnila, sasa87, Soncogor, Srdjadj70, sspp, Stevan Visoki, Trpe Grozni, VekiJ, Velizar Laro, vladetije, vukajlo71, vuksa72, yip314, Zukov, zziko