• 25-07-2017, 15:10:15
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba;
    Eğlencesine siteye yükleyeceğim bir test lazım oldu. Aşağıdaki kodlarda değişiklik yapıp yardımcı olabilecek var mı?
    1.Hesapla butonu ekranı yenilemeyecek, hemen aşağısına Doğru, Yanlış sonuçlarını yazacak.
    2.Doğru cevap sayısına göre yine çıktı ekranında biraz büyükçe ileti yazacak.
    örnek:
    Doğru sayısı;
    1-3 ise "Hiç çalışmamışsın."
    4-6 ise 'Çok az çalışmışsın'

    Gibi.. Aşağıdaki kodu denedim çalışıyor ama dediğim gibi yukarıdaki değişiklikleri yapmak gerekiyor. Tabii sorulara Resim de koyabilirsem iyi olur. Bir tane de resim konmuş soru örneği yapabilirseniz harika olacak..
    3. Şuradaki gibi bir tasarım çok iyi olur..
    https://www.w3schools.com/quiztest/q...asp?qtest=HTML

    Teşekkür ederim.

    <html lang="tr_TR">
    <head>
        <meta charset="utf-8">
        <title>PHP'de Basit Bir Test Hazırlama</title>
    </head>
    <body>
        <form action="" method=POST>
            <h2>1) Aşağıdakilerden hangisi tümünü seçer?</h2>
            <input type="radio" name="r" value="a"> CTRL+A
            <input type="radio" name="r" value="b"> CTRL+C
            <input type="radio" name="r" value="c"> CTRL+S
            <input type="radio" name="r" value="d"> CTRL+V
            <br>
            <br>
            <h2>2) Aşağıdakilerden hangisi oturumu kapatır?</h2>
            <input type="radio" name="rr" value="a">window+R
            <input type="radio" name="rr" value="b">window+E
            <input type="radio" name="rr" value="c">window+L
            <input type="radio" name="rr" value="d">window+Break
            <br>
            <br>
            <input type="submit" value="HESAPLA" name="btn">
            <br>
        </form>
        <?php
          if (isset($_POST['r']) & isset($_POST['r'])) {
            $soru1 = $_POST['r'];
            $soru2 = $_POST['rr'];
            $d = 0;
            $y = 0;
    
            if($soru1=="a" ) {
              $c1="DOĞRU" ;
              $d = $d+1;
            } else {
              $c1 = "YANLIŞ";
              $y = $y+1;
            }
    
            if($soru2=="c") {
              $c2 = "DOĞRU";
              $d = $d+1;
            } else {
              $c2 = "YANLIŞ";
              $y = $y+1;
            }
            echo "Doğru sayısı=$d<br>";
            echo "Yanlış sayısı=$y<br>";
          }
        ?>
    </body>
    </html>
  • 26-07-2017, 08:36:06
    #2
    Arkadaşlar vakti olan yok mu? Yukarıdaki kodu 20 soruya çıkarıp doğru cevap sayısına göre ileti verecek.. 3. bir hadise Testi bitiren HESAPLA butonu sayfayı en yukarı taşıyor. Ekranı silmeden ilgili iletileri hemen aşağısına yazacak. Bilen bir arkadaşın 5 dakikasını almayacaktır..
    İki tane değişken var.. onların sayısı 20'ye çıkacak sadece,
    $soru1 = $_POST['r'];
    $soru2 = $_POST['rr'];

    Teşekkür ederim.
  • 24-04-2025, 11:58:13
    #3
    Bu şekilde işini görür galiba hocam

    <!DOCTYPE html>
    <html lang="tr">
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
        <style>
            body {
                font-family: Arial;
                background: #f2f2f2;
                padding: 20px;
            }
            .container {
                display: flex;
                flex-wrap: wrap;
                gap: 20px;
            }
            .question-box {
                background: #fff;
                padding: 15px;
                border-radius: 10px;
                box-shadow: 0 0 10px #ccc;
                flex: 1 1 calc(50% - 20px);
            }
            h2 {
                font-size: 18px;
            }
            .submit-btn {
                display: block;
                margin: 40px auto;
                padding: 15px 40px;
                font-size: 20px;
                background: green;
                color: #fff;
                border: none;
                border-radius: 10px;
                cursor: pointer;
            }
            .results {
                text-align: center;
                font-size: 24px;
                margin-top: 20px;
            }
        </style>
    </head>
    <body>
    <?php
    $cevaplar = [
        'r1' => 'a',
        'r2' => 'c',
        'r3' => 'd',
        'r4' => 'd',
        'r5' => 'd',
        'r6' => 'd',
        'r7' => 'd',
        'r8' => 'd',
        'r9' => 'd',
        'r10' => 'd'
    ];
    $dogru = 0;
    $yanlis = 0;
    $secilen = [];
    if ($_SERVER["REQUEST_METHOD"] === "POST") {
        foreach ($cevaplar as $key => $dogru_cevap) {
            $cevap = $_POST[$key] ?? '';
            $secilen[$key] = $cevap;
            if ($cevap === $dogru_cevap) {
                $dogru++;
            } else {
                $yanlis++;
            }
        }
    }
    function seciliMi($name, $val, $secilen) {
        return isset($secilen[$name]) && $secilen[$name] === $val ? 'checked' : '';
    }
    ?>
    <form method="POST">
        <div class="container">
            <?php
            $sorular = [
                'r1' => '1) Aşağıdakilerden hangisi tümünü seçer?',
                'r2' => '2) Oturumu kapatmak için hangi kısayol kullanılır?',
                'r3' => '3) Kopyalama kısayolu nedir?',
                'r4' => '4) Kopyalama kısayolu nedir?',
                'r5' => '5) Kopyalama kısayolu nedir?',
                'r6' => '6) Kopyalama kısayolu nedir?',
                'r7' => '7) Kopyalama kısayolu nedir?',
                'r8' => '8) Kopyalama kısayolu nedir?',
                'r9' => '9) Kopyalama kısayolu nedir?',
                'r10' => '10) Kopyalama kısayolu nedir?',
            ];
            $secenekler = [
                'a' => 'CTRL+A',
                'b' => 'CTRL+B',
                'c' => 'WINDOW+L',
                'd' => 'CTRL+C'
            ];
            foreach ($sorular as $name => $soru) {
                echo "<div class='question-box'>";
                echo "<h2>$soru</h2>";
                foreach ($secenekler as $harf => $yazi) {
                    $checked = seciliMi($name, $harf, $secilen);
                    echo "<label><input type='radio' name='$name' value='$harf' $checked> $yazi</label><br>";
                }
                echo "</div>";
            }
            ?>
        </div>
        <input type="submit" class="submit-btn" value="HESAPLA">
    </form>
    <?php if ($_SERVER["REQUEST_METHOD"] === "POST"): ?>
        <div class="results">
            ✅ Doğru Sayısı: <?= $dogru ?><br>
            ❌ Yanlış Sayısı: <?= $yanlis ?>
        </div>
    <?php endif; ?>
    </body>
    </html>