Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Sprawdzian na stronie www


Rekomendowane odpowiedzi

Opublikowano

Witam
Mam taki problem.


Mianowicie chciałem zrobić skrypt sprawdzianu np w java polegający na tym aby losował on z puli przygotowanych wcześniej np 100 zadań 10 ( lub więcej) i wyświetlał je po wejściu na stronę zadania miałby by być testowe ( a,b,c,d) ale to 2 część tej strony.

Na początek chodziło by o to by po wejściu w stronę wyświetlało się zapytanie "czy chcesz wziąć udział w sprawdzianie " oraz 2 odp tak / nie ) nie przekierowuje na stronę główną tak przechodzi dalej) Potem wyświetla się zapytanie o imię i imię i nazwisko i tu zaczynają się schody zależało by mi na tym by skrypt zaczął liczyć czas od tego momentu do momentu kliknięcia przycisku "zakończyłem" po odpowiedzeniu na 10 pytań ( lub więcej ) i tu mamy to co napisałem na początku czyli aby skrypt losował z pewnej puli pytań i wyświetlał te pytania potem sprawdzał poprawność ( według klucza dołączonego do pytania) i podawał wynik oraz wysyłał go na maila razem z czasem i imieniem oraz nazwiskiem


Nie wiem jak się za to zabrać więc proszę tu o pomoc ( potrafię zrobić aby wyświetlały się pytania była prośba o imię i nazwisko ale jak zrobić ten czas oraz losowanie + wysłanie na e-mail to już inna sprawa )


Pozdrawiam

Opublikowano
<?php
$pytania = array("Pytanie 1", "Pytanie 2", "Pytanie 3", "Pytanie 4", "Pytanie 5");
$odpowiedz_a = array("Odp1a", "Odp2a", "Odp3a", "Odp4a", "Odp5a");
$odpowiedz_b = array("Odp1b", "Odp2b", "Odp3b", "Odp4b", "Odp5b");
$odpowiedz_c = array("Odp1c", "Odp2c", "Odp3c", "Odp4c", "Odp5c");
$odpowiedz_d = array("Odp1d", "Odp2d", "Odp3d", "Odp4d", "Odp5d");

$ile_pytan = 3;
$ile = count($pytania) - 1;

for($i = 1; $i <= $ile_pytan; $i++)
{
	$cos = rand(0,$ile);
	echo'<br>';
	echo $pytania[$cos].'<br/>'; 
	echo $odpowiedz_a[$cos].'<br/>'; 
	echo $odpowiedz_b[$cos].'<br/>'; 
	echo $odpowiedz_c[$cos].'<br/>'; 
	echo $odpowiedz_d[$cos].'<br/>'; 	 
	echo '-----------------------------------';
}
?>

Oczywiście zabezpieczenie możesz sobie dorobić na niepowtarzające się liczby ;) Myślę, że o coś takiego ci chodzi

Osobiście pomagam tylko na PW lub e-mail


-----------------------------------------------------------------


https://github.com/smietanka

Opublikowano

yhm a jak zrobić by działało to w połączeniu o zapytanie o imię i nazwisko wraz z startem czasu oraz z wysłaniem wyników na e-mail ?

 

jeżeli dobrze rozumiem to ma być tak mniej więcej ??

<?php
$pytania = array("Ile rogów ma kwadrat", "ile mam palcy", "co robie", "trol?", "tak nie");
$odpowiedz_a = array("1", "5", "nic", "nie", "tak");
$odpowiedz_b = array("2", "3", "tak", "tak", "nie");
$odpowiedz_c = array("4", "8", "hemoglobina", "oofszem", "tak i nie");
$odpowiedz_d = array("88", "4", "to", "yes", "nie i tak");

$ile_pytan = 3;
$ile = count($pytania) - 1;

for($i = 1; $i <= $ile_pytan; $i++)
{
	$cos = rand(0,$ile);
	echo'<br>';
	echo $pytania[$cos].'<br/>'; 
	echo $odpowiedz_a[$cos].'<br/>'; 
	echo $odpowiedz_b[$cos].'<br/>'; 
	echo $odpowiedz_c[$cos].'<br/>'; 
	echo $odpowiedz_d[$cos].'<br/>'; 	 
	echo '-----------------------------------';
}
?>

 

oraz jak zrobić by sprawdzić czy odp są poprawne

Opublikowano
<?php
error_reporting(0);
$err = $_POST['err'];
if($err == 0)
echo '
<form action="" method="post">
Imię: <input type="text" name="imie"> <br>
Nazwisko: <input type="text" name="nazwisko"> <br>
<input type="hidden" name="err" value="1">
<input type="submit" name="send">
</form>
';

if ($_POST['send'] and $err = 1)
{
	$pytania = array("Pytanie 1", "Pytanie 2", "Pytanie 3", "Pytanie 4", "Pytanie 5");
	$odpowiedz_a = array("Odp1a", "Odp2a", "Odp3a", "Odp4a", "Odp5a");
	$odpowiedz_b = array("Odp1b", "Odp2b", "Odp3b", "Odp4b", "Odp5b");
	$odpowiedz_c = array("Odp1c", "Odp2c", "Odp3c", "Odp4c", "Odp5c");
	$odpowiedz_d = array("Odp1d", "Odp2d", "Odp3d", "Odp4d", "Odp5d");

	$ile_pytan = 3;
	$ile = count($pytania) - 1;
	$imie = $_POST['imie'];
	$nazwisko = $_POST['nazwisko'];
	echo 'Witaj '.$imie.' '.$nazwisko.'<br>';
	echo 'Oto twój test: <br>';
		for($i = 1; $i <= $ile_pytan; $i++)
		{
			$cos = rand(0,$ile);
			echo'<br>';
			echo $pytania[$cos].'<br/>'; 
			echo $odpowiedz_a[$cos].'<br/>'; 
			echo $odpowiedz_b[$cos].'<br/>'; 
			echo $odpowiedz_c[$cos].'<br/>'; 
			echo $odpowiedz_d[$cos].'<br/>'; 	 
			echo '-----------------------------------';
		}
}
?>

Co do tego czasu to nie wiem znajdz jakiś skrypt w jquery na odliczanie czasu i jak sie odliczy do 0 to wyskakuje jakis komunikat

Osobiście pomagam tylko na PW lub e-mail


-----------------------------------------------------------------


https://github.com/smietanka

Opublikowano

Proponuje zrobic tak ze jak wpisjusz imie i nazwisko klikasz na "Start" to w tym momencie do zmiennej zostaje przypisana godzina potem po zakonczeniu tez zostaje pobrana godzina do innej zmiennej i odejmujesz...

 

Jesli pomoglem to licze na plus :)

Opublikowano

To co ja napisałem to tylko przykład. Ty to musisz jeszcze w formualrze wziąć te odpowiedzi... To tylko baza

Osobiście pomagam tylko na PW lub e-mail


-----------------------------------------------------------------


https://github.com/smietanka

Opublikowano

a jak by miał wyglądać taki formularz ( zielony w php ale jak podasz przykład 1 gotowe pytanie i zastosowanie go w tym kodzie to resztę zrobię sam )

Opublikowano
<?php
error_reporting(0);
$err = $_POST['err'];
if($err == 0) 
echo '
<form action="" method="post">
Imię: <input type="text" name="imie"> <br>
Nazwisko: <input type="text" name="nazwisko"> <br>
<input type="hidden" name="err" value="1">
<input type="submit" name="send">
</form>
';

if ($_POST['send'] and $err = 1)
{
	
	$pytania = array("Pytanie 1", "Pytanie 2", "Pytanie 3", "Pytanie 4", "Pytanie 5");
	$odpowiedz_a = array("Odp1a", "Odp2a", "Odp3a", "Odp4a", "Odp5a");
	$odpowiedz_b = array("Odp1b", "Odp2b", "Odp3b", "Odp4b", "Odp5b");
	$odpowiedz_c = array("Odp1c", "Odp2c", "Odp3c", "Odp4c", "Odp5c");
	$odpowiedz_d = array("Odp1d", "Odp2d", "Odp3d", "Odp4d", "Odp5d");

	$ile_pytan = 3;
	$ile = count($pytania) - 1;
	$imie = $_POST['imie'];
	$nazwisko = $_POST['nazwisko'];
	echo 'Witaj '.$imie.' '.$nazwisko.'<br>';
	echo 'Oto twój test: <br>';
		for($i = 1; $i <= $ile_pytan; $i++)
		{
			$cos = rand(0,$ile);
			echo'<br>';
			echo $pytania[$cos].'<br/>'; 
			echo $odpowiedz_a[$cos].'<br/>'; 
			echo $odpowiedz_b[$cos].'<br/>'; 
			echo $odpowiedz_c[$cos].'<br/>'; 
			echo $odpowiedz_d[$cos].'<br/>'; 	 
			echo '-----------------------------------';
		}
	?>
	<br>Masz jeszcze<br>
	<div id="czas">10</div> sekund
	<script type="text/javascript" >
var timerZmiana;
var licznik = 10;
function startZmiana() {
	clearTimeout(timerZmiana);
licznik -=1;
document.getElementById('czas').innerHTML = licznik;
if(licznik == 0) {
 alert("Czas minął!");
}else{
setTimeout('startZmiana()', 1000);
}

}

timerZmiana = setTimeout('startZmiana()', 1000);


</script>
	
	<?
}
?>

Trzymaj odliczanie czasu gotowe łatwy javascript :)

Kocham mpcforum.pl!!!

18706.png

Opublikowano

Wspólnymi siłami sporo zdziałamy ;)

 

 

<?php
error_reporting(0);
if($_POST['err'] != 0) echo'';
else echo '
<form action="" method="post">
Imię: <input type="text" name="imie"> <br>
Nazwisko: <input type="text" name="nazwisko"> <br>
<input type="hidden" name="err" value="1">
<input type="submit" name="send">
</form>
';

if ($_POST['send'] and $_POST['err'] = 1)
{
	$pytania = array("Pytanie 1", "Pytanie 2", "Pytanie 3", "Pytanie 4");
	$odpowiedz_a = array("Odp1a", "Odp2a", "Odp3a", "Odp4a");
	$odpowiedz_b = array("Odp1b", "Odp2b", "Odp3b", "Odp4b");
	$odpowiedz_c = array("Odp1c", "Odp2c", "Odp3c", "Odp4c");
	$odpowiedz_d = array("Odp1d", "Odp2d", "Odp3d", "Odp4d");

	$prawidlowe = array("Odp1b", "Odp2a", "Odp3a", "Odp4d");
	
	$ile_pytan = 3;
	$ile = count($pytania) - 1;
	$imie = $_POST['imie'];
	$nazwisko = $_POST['nazwisko'];
	echo 'Witaj '.$imie.' '.$nazwisko.'<br>';
	echo 'Oto twój test: <br>';
	echo 'Masz jeszcze <div id="czas">10</div> sekund';
	?>
		<script type="text/javascript" >
		var timerZmiana;
		var licznik = 10;
		function startZmiana() {
			clearTimeout(timerZmiana);
		licznik -=1;
		document.getElementById('czas').innerHTML = licznik;
		if(licznik == 0) {
		 alert("Czas minął!");
		 window.location.assign("rand.php")
		}else{
		setTimeout('startZmiana()', 1000);
		}
		}
		timerZmiana = setTimeout('startZmiana()', 1000);
		</script>
	<?php
		echo '<form action="?done=tak" method="post">';
		for($i = 1; $i <= $ile_pytan; $i++)
		{
			$cos = rand(0,$ile);
			echo'<br>';
			echo $pytania[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$a[$i].'">'.$odpowiedz_a[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$b[$i].'">'.$odpowiedz_b[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$c[$i].'">'.$odpowiedz_c[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$d[$i].'">'.$odpowiedz_d[$cos].'<br/>'; 	
			echo '<input type="hidden" name="pyt" value="'.$pytania[$cos].'">';
			echo '-----------------------------------';
		}
		echo'<br><input type="hidden" name="pyt" value="'.$pytania[$cos].'"><input type="hidden" name="err" value="1"><input type="submit" value="Zakończ test"></form>';
}

	if($_GET['done'] == "tak")
	{
		echo 'Skończyłeś test! Sprawdźmy zatem odpowiedzi.';
		for($i = 1; $i <= $ile_pytan; $i++)
		{
			$a = $a[$i];
			$b = $b[$i];
			$c = $c[$i];
			$d = $d[$i];
			echo'<br>';
			echo $_POST[$a].'<br/>'; 
			echo $_POST[$b].'<br/>'; 		
			echo $_POST[$c].'<br/>'; 	
			echo $_POST[$d].'<br/>'; 			
			echo '-----------------------------------';
		}		
	}

?> 

 

 

 

Osobiście pomagam tylko na PW lub e-mail


-----------------------------------------------------------------


https://github.com/smietanka

Opublikowano

@Up Także mi się przydało ale nie pokazuje odpowiedzi a i jak zrobić , że po sprawdzianie była ramka z dobrymi i złymi odpowiedziami np :

------------------------------------------

- Pytanie 1 - -

- Ok - -

- Zle - -

- OK - -

- - -

- - -

------------------------------------------

Opublikowano
http://simonc.com.pl/krzysiek/html/test.php

 

Zmieniłem to odrobinę i mam 2 pliki test.php i test1.php tu są kody jak to poprawić ??

1 kod czyli test.php
<?php
error_reporting(0);
$err = $_POST['err'];
if($err == 0) 
echo '
<form action="" method="post">
Imię: <input type="text" name="imie"> <br>
Nazwisko: <input type="text" name="nazwisko"> <br>
<input type="hidden" name="err" value="1">
<input type="submit" name="send">
</form>
';


if ($_POST['send'] and $_POST['err'] = 1)
{
	$pytania = array("Co to jest MS Access", "Baza danych to?", "Z czego składa się baza danych?", "Model baz danych oparty na postulatach relacyjności to model");
	$odpowiedz_a = array("a)Arkusz kalkulacyjny produkowany przez firmę Microsoft dla systemów Windows i Mac OS.", "a)Kolekcja danych zapisanych zgodnie z określonymi regułami", "a)Z rekordów", "a)Relacyjny");
	$odpowiedz_b = array("b)System obsługi relacyjnych baz danych, wchodzący w skład pakietu biurowego Microsoft Office dla środowiska Windows.", "b)Forma wypowiedzi publicznej lub społecznej z wykorzystaniem projektora multimedialnego", "b)Z komórek", "b)Odpowiadający");
	$odpowiedz_c = array("c)Program do tworzenia prezentacji multimedialnych wchodzący w skład pakietu biurowego Microsoft Office.", "c)To program komputerowy przedstawiający dane, głównie liczbowe, w postaci zestawu dużych tabel dwuwymiarowych.", "c) Z tabeli", "c)Składowy");
	$odpowiedz_d = array("d)Bezpłatne oprogramowanie antywirusowe firmy Microsoft", "d) Oprogramowanie szpiegowskie", "d) Z pól", "d)Realistyczny");

	$prawidlowe = array("Odp1B", "Odp2A", "Odp3B", "Odp4A");
	
	$ile_pytan = 3;
	$ile = count($pytania) - 1;
	$imie = $_POST['imie'];
	$nazwisko = $_POST['nazwisko'];
	echo 'Witaj '.$imie.' '.$nazwisko.'<br>';
	echo 'Oto twój test: <br>';
	for($i = 1; $i <= $ile_pytan; $i++)
		{
			$cos = rand(0,$ile);
			echo'<br>';
			echo $pytania[$cos].'<br/>'; 
			echo $odpowiedz_a[$cos].'<br/>'; 
			echo $odpowiedz_b[$cos].'<br/>'; 
			echo $odpowiedz_c[$cos].'<br/>'; 
			echo $odpowiedz_d[$cos].'<br/>'; 	 
			echo '-----------------------------------';
		}
	echo 'Masz jeszcze <div id="czas">30</div> sekund';
 ?>
		<script type="text/javascript" >
		var timerZmiana;
		var licznik = 30;
		function startZmiana() {
			clearTimeout(timerZmiana);
		licznik -=1;
		document.getElementById('czas').innerHTML = licznik;
		if(licznik == 0) {
		 alert("Czas minął!");
		 window.location.assign("test1.php")
		}else{
		setTimeout('startZmiana()', 1000);
		}
		}
		timerZmiana = setTimeout('startZmiana()', 1000);
		</script>
	<?
}
?>




oraz test1.php


<?php
		echo '<form action="?done=tak" method="post">';
		for($i = 1; $i <= $ile_pytan; $i++)
		{
			$cos = rand(0,$ile);
			echo'<br>';
			echo $pytania[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$a[$i].'">'.$odpowiedz_a[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$b[$i].'">'.$odpowiedz_b[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$c[$i].'">'.$odpowiedz_c[$cos].'<br/>'; 
			echo '<input type="checkbox" name="'.$d[$i].'">'.$odpowiedz_d[$cos].'<br/>'; 	
			echo '<input type="hidden" name="pyt" value="'.$pytania[$cos].'">';
			echo '-----------------------------------';
		}
		echo'<br><input type="hidden" name="pyt" value="'.$pytania[$cos].'"><input type="hidden" name="err" value="1"><input type="submit" value="Zakończ test"></form>';


	if($_GET['done'] == "tak")
	{
		echo 'Skończyłeś test! Sprawdźmy zatem odpowiedzi.';
		for($i = 1; $i <= $ile_pytan; $i++)
		{
			$a = $a[$i];
			$b = $b[$i];
			$c = $c[$i];
			$d = $d[$i];
			echo'<br>';
			echo $_POST[$a].'<br/>'; 
			echo $_POST[$b].'<br/>'; 		
			echo $_POST[$c].'<br/>'; 	
			echo $_POST[$d].'<br/>'; 			
			echo '-----------------------------------';
		}		
	}

?> 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...