Любителям по-кидаться тапками:
"Болтовня ничего не сто́ит, покажите свой код"
вообщем так
http://kaz-muz.kz/formula/current.php
там надо вводить максимум 7 оценок
вот мой говнокод))
mb_internal_encoding('UTF-8');
$act = $_GET['act'];
switch($act) {
case 'enu':
$r1 = htmlspecialchars(trim($_POST['r1']));
$r2 = htmlspecialchars(trim($_POST['r2']));
$r3 = htmlspecialchars(trim($_POST['r3']));
$r4 = htmlspecialchars(trim($_POST['r4']));
$rk1 = htmlspecialchars(trim($_POST['rk1']));
$rk2 = htmlspecialchars(trim($_POST['rk2']));
$lab = explode(" ",$r1);
$prak = explode(" ",$r2);
$sro = explode(" ",$r3);
$lek = explode(" ",$r4);
$lab1 = (($lab[0]+$lab[1]+$lab[2]+$lab[3]+$lab[4]+$lab[5]+$lab[6])/count($lab))*0.3;
$lab2 = (($lab[0]+$lab[1]+$lab[2]+$lab[3]+$lab[4]+$lab[5]+$lab[6])/count($lab))*0.5;
$prak1 = (($prak[0]+$prak[1]+$prak[2]+$prak[3]+$prak[4]+$prak[5]+$prak[6])/count($prak))*0.2;
$prak2 = (($prak[0]+$prak[1]+$prak[2]+$prak[3]+$prak[4]+$prak[5]+$prak[6])/count($prak))*0.5;
$prak3 = (($prak[0]+$prak[1]+$prak[2]+$prak[3]+$prak[4]+$prak[5]+$prak[6])/count($prak))*0.7;
$sro1 = (($sro[0]+$sro[1]+$sro[2]+$sro[3]+$sro[4]+$sro[5]+$sro[6])/count($sro))*0.3;
$lek1 = (($lek[0]+$lek[1]+$lek[2]+$lek[3]+$lek[4]+$lek[5]+$lek[6])/count($lek))*0.2;
$lek2 = (($lek[0]+$lek[1]+$lek[2]+$lek[3]+$lek[4]+$lek[5]+$lek[6])/count($lek))*0.7;
$raiting = ($lek1+$prak2+$sro1);
$raiting1 = $lek1+$prak1+$lab1+$sro1;
$raiting2 = $lek1 + $lab2 + $sro1;
$raiting3 = $prak3 + $sro1;
$raiting4 = $lek2 + $sro1;
$labka = intval($_POST['r1']);
$praktika = intval($_POST['r2']);
$sroo = intval($_POST['r3']);
$lekci = intval($_POST['r4']);
if($labka > 100 || $labka < 0 || $praktika > 100 || $praktika < 0 || $sroo > 100 || $sroo < 0 || $lekci > 100 || $lekci < 0) {
echo 'Поле имеет недопустимую оценку';
echo '<div class="panel-footer"><a href="/formula/current.php">Назад</a></div><br/>';
}else{
echo '<div class="alert alert-success" >';
if($r2 != '' && $r3 != '' && $r4 !=''){
echo '<br/> Оценки лекции:';
for($i=0; $i<count($lek);$i++){
echo $lek[$i],", ";
}
echo '<br/> Оценки практики:';
for($i=0; $i<count($prak);$i++){
echo $prak[$i],", ";
}
echo '<br/> Оценки СРО:';
for($i=0; $i<count($sro);$i++){
echo $sro[$i],", ";
}
if($rk1 != ''){
echo "<br/><br/> Если РК1 будет ' .$rk1. ' , то у вас рейтинг будет: '.($raiting+$rk1)/2.' баллов ";
}else{
echo "Вы не ввели РК1";
}
}else
if($r1 != '' && $r2 != '' && $r3 != '' && $r4 !=''){
echo '<br/> Оценки лекции:';
for($i=0; $i<count($lek);$i++){
echo $lek[$i],", ";
}
echo '<br/> Оценки практики:';
for($i=0; $i<count($prak);$i++){
echo $prak[$i],", ";
}
echo '<br/> Оценки лабки:';
for($i=0; $i<count($lab);$i++){
echo $lek[$i],", ";
}
echo '<br/> Оценки СРО:';
for($i=0; $i<count($sro);$i++){
echo $sro[$i],", ";
}
echo '<br/><br/> У вас рейтинг будет: '.$raiting1.' баллов ';
}else
if($r1 != '' && $r3 != '' && $r4 !=''){
echo '<br/> Оценки лекции:';
for($i=0; $i<count($lek);$i++){
echo $lek[$i],", ";
}
echo '<br/> Оценки лабки:';
for($i=0; $i<count($lab);$i++){
echo $lek[$i],", ";
}
echo '<br/> Оценки СРО:';
for($i=0; $i<count($sro);$i++){
echo $sro[$i],", ";
}
echo '<br/><br/> У вас рейтинг будет: '.$raiting2.' баллов ';
}else
if($r2 != '' && $r3 != ''){
echo '<br/> Оценки практики:';
for($i=0; $i<count($prak);$i++){
echo $prak[$i],", ";
}
echo '<br/> Оценки СРО:';
for($i=0; $i<count($sro);$i++){
echo $sro[$i],", ";
}
echo '<br/><br/> У вас рейтинг будет: '.$raiting3.' баллов ';
}else
if($r4 != '' && $r3 != ''){
echo '<br/> Оценки лекции:';
for($i=1; $i<count($lek);$i++){
echo $lek[$i],",";
}
echo '<br/> Оценки СРО:';
for($i=0; $i<count($sro);$i++){
echo $sro[$i],", ";
}
echo '<br/><br/> У вас рейтинг будет: '.$raiting4.' баллов ';
}
echo '</div>';
echo '<div class="panel-footer"><a href="/formula/current.php">Назад</a></div><br/>';
}
break;
default:
echo '<form action = "?act=enu" method = "POST">
<p>Введите оценки лабки <b>(оценки вводить через пробел):</b></p>
<input type = "text" name = "r1" value = "" />
<p>Введите оценки практики <b>(оценки вводить через пробел):</b></p>
<input type = "text" name = "r2" value = "" />
<p>Введите оценки СРО <b>(оценки вводить через пробел):</b></p>
<input type = "text" name = "r3" value = "" />
<p>Введите оценки лекции <b>(оценки вводить через пробел):</b></p>
<input type = "text" name = "r4" value = "" /> <br/>
<p>Введите оценкe РК1 <b></b></p>
<input type = "text" name = "rk1" value = "" /> <br/>
<p>Введите оценкe РК2 <b></b></p>
<input type = "text" name = "rk2" value = "" /> <br/><br/>
<button class="btn btn-info" name = "send"/>Считать</button><br/><br/>
</form>';
break;
}
# ДоХтор (24.05.2016 / 18:08)
Любителям по-кидаться тапками: "Болтовня ничего не сто́ит, покажите свой код"
А хде "(цэ) Л. Торвальдс"?
# Blade (24.05.2016 / 21:29)
А хде "(цэ) Л. Торвальдс"?
Я не указал автора цитаты, но и не претендовал на её авторство, поэтому напечатал её
курсивом
# Blade (24.05.2016 / 21:46)
дальше разберешься
<?php
function parsePoints($string) {
$string = trim(preg_replace('/ {2,}/',' ',$string));
$points = explode(" ", $string);
return array_map(function($point){
что то не работает
можно еще чуть подробнее?
Beibarys, О мой бог, на будущее: когда пишешь код всегда используй
error_reporting(E_ALL);
# Beibarys (25.05.2016 / 08:08)
что то не работает
можно еще чуть подробнее?
версия php какая?
если в двух словах, то:
удаляешь из поля все промежуточные подряд идущие пробелы, которых больше 1 (preg_replace),
удаляешь все пробелы в начале и в конце строки (trim),
парсишь "числа" из строки (explode + intval)
ну а дальше смотришь, меньше ли 7 число введенных оценок и находятся ли они в промежутке [0;100]
можно сразу preg_match на три цифры подряд