• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Edycja pól tabeli w bazie danych poprzez formularz z "radio-buttonami" w tym samym pliku .php

Object Storage Arubacloud
0 głosów
807 wizyt
pytanie zadane 23 lipca 2017 w PHP przez plkpiotr Stary wyjadacz (12,420 p.)
edycja 23 lipca 2017 przez plkpiotr

W swojej aplikacji webowej chciałbym dokonywać możliwości zmian pól w bazodanowej tabeli poprzez wysyłanie zapytań za pomocą języka SQL do bazy MySQL, wykorzystując xampp/php-my-admin. Wybór nazwy avatara odbywa się za pomocą formularza z radio-buttonami, które dzięki stylizacji w CSS są obrazkami.

Nie potrafię znaleźć luki w moim kodzie, bo jakkolwiek zapytanie nie jest realizowane w bazie, nie dostaję również informacji o błędzie lub niezdefiniowaniu zmiennych, w odróżnieniu od np. dodawania użytkowników przy rejestracji, które łączy się z bazą i działa poprawnie. Próbowałem umieszczać instrukcję zapytania w instrukcji warunkowej, użycia funkcji mysqli_query oraz umieszczania kodu .php w oddzielnym pliku z uwzględnieniem pola action, jednak bezskutecznie...

<?php
    session_start();
    if (!isset($_SESSION['logged'])) {
        header('Location: get-to-know-squash-court-better');
        exit();
    }

    require_once "connect.php";
    mysqli_report(MYSQLI_REPORT_STRICT);

    if (isset($_POST['avatar'])) {
        try {
            $connection = new mysqli($host, $dbUser, $dbPassword, $dbName);
            if ($connection->connect_errno != 0)
                throw new Exception(mysqli_connect_errno());
            else {
                $new_avatar = $_POST['avatar'];
                $nick = $_SESSION['nick'];
                $connection->query("UPDATE players SET avatar='$new_avatar' WHERE nick='$nick'");
                $connection->close();
            }
        } catch (Exception $exception) {
            $_SESSION['error_login'] = "Server error: $exception. Update avatar another time, please...";
        }
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="css/women.css">
    <title>Title</title>

</head>
<body>
    <form method="post">
        <div class="selector">
            <input id="woman1" type="radio" name="avatar" value="woman1.png"
                <?php echo ($_SESSION['avatar'] == 'woman1.png') ? 'checked' : '' ?>/>
            <label class="face woman1" for="woman1"></label>

            <input id="woman2" type="radio" name="avatar" value="woman2.png"
                <?php echo ($_SESSION['avatar'] == 'woman2.png') ? 'checked' : '' ?>/>
            <label class="face woman2" for="woman2"></label>

            <input id="woman3" type="radio" name="avatar" value="woman3.png"
                <?php echo ($_SESSION['avatar'] == 'woman3.png') ? 'checked' : '' ?>/>
            <label class="face woman3" for="woman3"></label>

            <input id="woman4" type="radio" name="avatar" value="woman4.png"
                <?php echo ($_SESSION['avatar'] == 'woman4.png') ? 'checked' : '' ?>/>
            <label class="face woman4" for="woman4"></label>

            <input id="woman5" type="radio" name="avatar" value="woman5.png"
                <?php echo ($_SESSION['avatar'] == 'woman5.png') ? 'checked' : '' ?>/>
            <label class="face woman5" for="woman5"></label>

            <input id="woman6" type="radio" name="avatar" value="woman6.png"
                <?php echo ($_SESSION['avatar'] == 'woman6.png') ? 'checked' : '' ?>/>
            <label class="face woman6" for="woman6"></label>

            <input id="woman7" type="radio" name="avatar" value="woman7.png"
                <?php echo ($_SESSION['avatar'] == 'woman7.png') ? 'checked' : '' ?>/>
            <label class="face woman7" for="woman7"></label>

            <input id="woman8" type="radio" name="avatar" value="woman8.png"
                <?php echo ($_SESSION['avatar'] == 'woman8.png') ? 'checked' : '' ?>/>
            <label class="face woman8" for="woman8"></label>

            <input id="woman9" type="radio" name="avatar" value="woman9.png"
                <?php echo ($_SESSION['avatar'] == 'woman9.png') ? 'checked' : '' ?>/>
            <label class="face woman9" for="woman9"></label>

            <input id="woman10" type="radio" name="avatar" value="woman10.png"
                <?php echo ($_SESSION['avatar'] == 'woman10.png') ? 'checked' : '' ?>/>
            <label class="face woman10" for="woman10"></label>

            <input id="woman11" type="radio" name="avatar" value="woman11.png"
                <?php echo ($_SESSION['avatar'] == 'woman11.png') ? 'checked' : '' ?>/>
            <label class="face woman11" for="woman11"></label>

            <input id="woman12" type="radio" name="avatar" value="woman12.png"
                <?php echo ($_SESSION['avatar'] == 'woman12.png') ? 'checked' : '' ?>/>
            <label class="face woman12" for="woman12"></label>

            <input id="woman13" type="radio" name="avatar" value="woman13.png"
                <?php echo ($_SESSION['avatar'] == 'woman13.png') ? 'checked' : '' ?>/>
            <label class="face woman13" for="woman13"></label>

            <input id="woman14" type="radio" name="avatar" value="woman14.png"
                <?php echo ($_SESSION['avatar'] == 'woman14.png') ? 'checked' : '' ?>/>
            <label class="face woman14" for="woman14"></label>

            <input id="woman15" type="radio" name="avatar" value="woman15.png"
                <?php echo ($_SESSION['avatar'] == 'woman15.png') ? 'checked' : '' ?>/>
            <label class="face woman15" for="woman15"></label>

            <input id="woman16" type="radio" name="avatar" value="woman16.png"
                <?php echo ($_SESSION['avatar'] == 'woman16.png') ? 'checked' : '' ?>/>
            <label class="face woman16" for="woman16"></label>

            <input id="woman17" type="radio" name="avatar" value="woman17.png"
                <?php echo ($_SESSION['avatar'] == 'woman17.png') ? 'checked' : '' ?>/>
            <label class="face woman17" for="woman17"></label>

            <input id="woman18" type="radio" name="avatar" value="woman18.png"
                <?php echo ($_SESSION['avatar'] == 'woman18.png') ? 'checked' : '' ?>/>
            <label class="face woman18" for="woman18"></label>

            <input id="woman19" type="radio" name="avatar" value="woman19.png"
                <?php echo ($_SESSION['avatar'] == 'woman19.png') ? 'checked' : '' ?>/>
            <label class="face woman19" for="woman19"></label>

            <input id="woman20" type="radio" name="avatar" value="woman20.png"
                <?php echo ($_SESSION['avatar'] == 'woman20.png') ? 'checked' : '' ?>/>
            <label class="face woman20" for="woman20"></label>

            <br /><br /><br />

            <input type="submit" value="Update avatar">
        </div>
    </form>
</body>
</html>
1
komentarz 23 lipca 2017 przez Chess Szeryf (76,710 p.)
edycja 23 lipca 2017 przez Chess

Po co dwadzieścia razy przeklejasz to samo? Zastąp to pętlą.

<form method="post">
	<div class="selector">
         
		<?php 
        for($i=1;$i<=20;$i++) {
		?>
			<input id="woman<?= $i ?>" type="radio" name="avatar" value="woman<?= $i ?>.png"
			<?php echo ($_SESSION['avatar'] == "woman$i.png") ? 'checked' : '' ?>/>
			<label class="face woman<?= $i ?>" for="woman<?= $i ?>"></label>
        <?php 
		}
		?>
              
		<br /><br /><br />
  
		<input type="submit" value="Update avatar">
	</div>
</form>

 

komentarz 23 lipca 2017 przez plkpiotr Stary wyjadacz (12,420 p.)

Nie to samo, ale dziękuję za radę : )

<form method="post">
	<div class="selector">
		<?php
		for ($i = 1; $i < 21; $i++) {
			if (strcmp($_SESSION['avatar'], 'woman'.$i.'.png')) {
				echo '<input id="woman' . $i . '" type="radio" name="avatar" value="woman' . $i . '.png"/>';
				echo '<label class="face woman' . $i . '" for="woman' . $i . '"></label>';
			} else {
				echo '<input id="woman' . $i . '" type="radio" name="avatar" value="woman' . $i . '.png" checked />';
				echo '<label class="face woman' . $i . '" for="woman' . $i . '"></label>';
			}
		}
		?>
		<br /><br /><br />
		<input type="submit" value="Update avatar">
	</div>
</form>

edit: Ok, zauważyłem, że zedytowałeś komentarz - wybieram twoją wersję - bardziej czytelna ; )

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
2 odpowiedzi 664 wizyt
pytanie zadane 30 czerwca 2017 w SQL, bazy danych przez BeFree Początkujący (380 p.)
0 głosów
2 odpowiedzi 371 wizyt
pytanie zadane 14 maja 2020 w PHP przez spicedagger Użytkownik (530 p.)
0 głosów
0 odpowiedzi 596 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...