Jump to content
Rila_xp

Script php loto!

Recommended Posts

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 by Rila_xp
Link to comment
Share on other sites

pp ca primesti numerele prin POST din campuri diferite: n1,n2,n3,n4,n5,n6

<?php

for($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;

}

?>

Link to comment
Share on other sites

codul lui briceag


<?php
for($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

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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 6

plm e greu de explicat, simplu de inteles... bafta la cod!

Link to comment
Share on other sites


<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 ..

Link to comment
Share on other sites

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 automat
foreach($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>";

}

?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...