Poslao: 25 Avg 2011 00:33
|
offline
- zekasing
- Građanin
- Pridružio: 01 Jan 2010
- Poruke: 75
- Gde živiš: Beograd
|
Da li postoji rand sa izuzetkom?
npr
4=brojkojinecu
$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.
|
|
Poslao: 25 Avg 2011 01:59
|
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);
}
|
|
|
|
Poslao: 25 Avg 2011 03:53
|
offline
- zekasing
- Građanin
- 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
|
|
|
|
Poslao: 25 Avg 2011 07:56
|
offline
- 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 ===
|
|
|
|
Poslao: 25 Avg 2011 08:22
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3747
- 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
@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.
|
|
|
|
Poslao: 30 Avg 2011 14:22
|
offline
- zekasing
- Građanin
- 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
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..
|
|
|
|
Poslao: 30 Avg 2011 15:55
|
offline
- Blood
- 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..
|
|
|
|