Rila_xp Posted October 24, 2011 Report Posted October 24, 2011 (edited) Salutare,m-am apucat de un script pentru mine sa mai invat ceva php,va rog mult daca ma puteti ajuta si pe mine macar cu ideea daca nu cu cod!Am 6 numere pe care le introduce userul,vreau sa le verific daca sunt mai mici decat 0 sau egale si daca sunt mai mari decat 49 apoi sa le verific daca sunt la fel intre ele!Imi puteti da o idee?L.E:Ma refer la o metoda mai usoara nu cu if...ca innebunesc sa le compar pe toate in parte!Multumesc mult,Rila Edited October 24, 2011 by Rila_xp Quote
ROFL Posted October 24, 2011 Report Posted October 24, 2011 Cum fara if?Poti sa pui numere intr-un array si cu un for/foreach le verifici printr-un if. Quote
Rila_xp Posted October 24, 2011 Author Report Posted October 24, 2011 bun...asta nu stiu ca mi-a mai zis cineva.Cum le verific?Nu m-am prea folosit pana acum de structura for si nu stiu cu ce se mananca! Quote
BogdanNBV Posted October 24, 2011 Report Posted October 24, 2011 numerele nu trebuie sa fie cuprinse intre 0 si 49?si da mai multe detalii, ce sa faca daca sunt intre 0 si 49 sau in ce fel sa le compare intre ele, sa vada daca se repeta vreunul? Quote
briceag Posted October 24, 2011 Report Posted October 24, 2011 pp ca primesti numerele prin POST din campuri diferite: n1,n2,n3,n4,n5,n6<?phpfor($i=1; $i<=6; $i++) if(!valid($i) die('nu ai completat corect');function valid($i){ if($_POST["n$i"]>49 || $_POST["n$i"]<0) return 0; for($j=1; $j<=6;$j++) if($j!=$i && $_POST["n$j"]==$_POST["n$i"]) return 0;}?> Quote
Rila_xp Posted October 24, 2011 Author Report Posted October 24, 2011 Deci preiau numerele din 6 campuri nr1,nr2,nr3,nr4,nr5,nr6 cu POST vreau sa fac un sistem gen 6/49 numere sa se incadreze intre 0 si 49 si sa nu se repete Ati inteles acum? Quote
briceag Posted October 24, 2011 Report Posted October 24, 2011 Deci preiau numerele din 6 campuri nr1,nr2,nr3,nr4,nr5,nr6 cu POST vreau sa fac un sistem gen 6/49 numere sa se incadreze intre 0 si 49 si sa nu se repete Ati inteles acum?am inteles, da iti spun pe mess.ma ai in lista ON: rand(0,50) Quote
Robert1995 Posted October 24, 2011 Report Posted October 24, 2011 codul lui briceag<?phpfor($i=1; $i<=6; $i++)if(!valid($i) die('nu ai completat corect');function valid($i){if($_POST["n$i"]>49 || $_POST["n$i"]<0) return 0;for($j=1; $j<=6;$j++)if($j!=$i && $_POST["n$j"]==$_POST["n$i"]) return 0;}?> poti sa ai un array gen "numbers"faci <input type="text" value="<?php echo isset($_POST['numar'][1] ? $_POST['numar'][1] : ''>" name="numar[1]" /> <input type="text" value="<?php echo isset($_POST['numar'][2] ? $_POST['numar'][2] : ''>" name="numar[2]" /> <input type="text" value="<?php echo isset($_POST['numar'][3] ? $_POST['numar'][3] : ''>" name="numar[3]" /> <input type="text" value="<?php echo isset($_POST['numar'][4] ? $_POST['numar'][4] : ''>" name="numar[4]" /> <input type="text" value="<?php echo isset($_POST['numar'][5] ? $_POST['numar'][5] : ''>" name="numar[5]" /> <input type="text" value="<?php echo isset($_POST['numar'][6] ? $_POST['numar'][6] : ''>" name="numar[6]" /> Si facu cu foreach $_POST['numar'] ( il dai unei varibile intai sa para mai corect ) .is_numeric , mai mic , mai mare ,apoi cu random iti faci 6 numere si faci ce vrei tu cu ele Quote
AhEaD Posted October 24, 2011 Report Posted October 24, 2011 Se presupune ca iei numerele prin POST catre php, poftim:<?php$numere = array($_POST['nr1'], $_POST['nr2'], $_POST['nr3'], $_POST['nr4'], $_POST['nr5'], $_POST['nr6']);$count = count($numere);$verif = count(array_unique($numere));if($count == $verif){ foreach($numere as $numar){ if($numar > 0 && $numar < 50){ echo "ai ales numarul: <b>$numar</b><br>"; $loto[$numar] = $nr; }else{ echo "<b>$numar</b> trebuie sa fie intre 1 si 49. DOH !!1<br>"; } } $lotonr = count($loto); if ($lotonr==6){ //aici face molozeala daca sunt toate numerele bune echo "<br><b>6 nr bune</b>"; }else{ //aici ii spune ca nu sunt numerele bune si il fute in gura! echo "<br><b>nu sunt toate nr. bune</b>"; }}else{ die("<b>Nu poti alege un numar de 2 ori...</b>");}?>Mai adaugi 2 - 3 filtre anti xss si ala e! Quote
Rila_xp Posted October 24, 2011 Author Report Posted October 24, 2011 Multumesc frumos!M-am descurcat pana la urma cu codurile voastre Quote
p3tru Posted October 24, 2011 Report Posted October 24, 2011 e mai greu, am incercat eu acuma 1 an, de plictiseala si mi-o luat cateva ore bune sa compar toate numerele, trebuie sa te gandesti, ca sa il faci cat mai realistic, de exemplu numarul6:$nr6 poate nu e acelasi numar ca al saselea numar ales de user, ci e al 3-lea, in cazul ala trebuie sa faci alte if-uri, sa verifici ce numar e sau nu e in locul lui 6plm e greu de explicat, simplu de inteles... bafta la cod! Quote
Addic73d Posted October 24, 2011 Report Posted October 24, 2011 <form name="loto" method="post" action=""><?php $i = 1; while($i <= 6){ echo 'Numar '.$i.' : <input type="text" name="numar'.$i.'" size="3" /><br />'; $i++; } echo '<input type="submit" name="submit" value="Add numbers" /><br />'; if(isset($_POST['submit'])){ $i = 1; while($i <= 6){ $numere[] = trim($_POST['numar'.$i]); $i++; } foreach($numere as $numar){ if(empty($numar)){ echo 'Ma-ta-i grasa <br />'; } elseif($numar < 0 || $numar > 49){ echo $numar . ' invalid. <br />'; } else { $rez = count(array_unique($numere)); if($rez !== 6){ echo 'Alege 6 numere diferite<br />'; } else { echo $numar.', '; } } } }?></form>Incearca si asta, plm .. Quote
Rila_xp Posted October 25, 2011 Author Report Posted October 25, 2011 Bun...am ajuns la partea cu extragerea,trebuie sa fac diferenta intre 2 arrayuri ca sa vad cate numere au iesit castigatoare,am incercat cu array_diff si array_intersect apoi dar nu am reusit.Ma ajutati putin? am codul urmator cu ce am incercat sa fac :<?$numereextrase = array(rand(1,49), rand(1,49), rand(1,49), rand(1,49), rand(1,49), rand(1,49));$count = count($numereextrase);$verif = count(array_unique($numereextrase));while($count !=$verif){$numereextrase = array(rand(1,49), rand(1,49), rand(1,49), rand(1,49), rand(1,49), rand(1,49));}foreach($numereextrase as $numar){ echo "pc a ales numarul: <b>$numar</b><br>"; }$numereuser=array(1,20,12,15,19,20);//puse manual pentru moment...dar vor fi preluate automatforeach($numereuser as $numar1){ echo "ai ales numarul: <b>$numar1</b><br>"; }$result = array_intersect($numereuser, $numereextrase);foreach($result as $numar1){ echo "numere corecte: <b>$numar1</b><br>"; }?> Quote