Jest taki przykładowy skrypt, który usuwa rekord z listy
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gitarowe wojny - Usuń wynik</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h2>Gitarowe wojny - Usuń wynik</h2>
<?php
require_once('appvars.php');
require_once('connectvars.php');
if (isset($_GET['id']) && isset($_GET['date']) && isset($_GET['name']) && isset($_GET['score']) && isset($_GET['screenshot'])) { // Pobieranie danych z tablicy GET.
$id = $_GET['id'];
$date = $_GET['date'];
$name = $_GET['name'];
$score = $_GET['score'];
$screenshot = $_GET['screenshot'];
}
else if (isset($_POST['id']) && isset($_POST['name']) && isset($_POST['score'])) { // Pobieranie danych z tablicy POST.
$id = $_POST['id'];
$name = $_POST['name'];
$score = $_POST['score'];
}
else {
echo '<p class="error">Nie podano wyniku do usunięcia.</p>'; }
if (isset($_POST['submit'])) { if ($_POST['confirm'] == 'Yes') {
// Usuwanie pliku graficznego ze zrzutem z serwera.
@unlink(GW_UPLOADPATH
. $screenshot); // Łączenie się z bazą danych.
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// Usuwanie danych związanych z wynikiem z bazy.
$query = "DELETE FROM guitarwars WHERE id = $id LIMIT 1";
mysqli_query($dbc, $query);
mysqli_close($dbc);
// Potwierdzanie usunięcia wyniku.
echo '<p>Usunięto wynik ' . $score . ' uzyskany przez ' . $name . '.'; }
else {
echo '<p class="error">Nie usunięto wyniku.</p>'; }
}
echo '<p>Na pewno chcesz usunąć poniższy wynik?</p>'; echo '<p><strong>Imię i nazwisko: </strong>' . $name . '<br /><strong>Data: </strong>'. $date . '<br /><strong>Wynik: </strong>' . $score . '</p>';
echo '<form method="post" action="removescore.php">'; echo '<input type="radio" name="confirm" value="Yes" /> Tak '; echo '<input type="radio" name="confirm" value="No" checked="checked" /> Nie <br />';
echo '<input type="submit" value="Wyślij" name="submit" />'; echo '<input type="hidden" name= "id" value="' . $id . '" />'; echo '<input type="hidden" name="name" value="' . $name . '" />'; echo '<input type="hidden" name="score" value="' . $score . '" />'; }
echo '<p><a href= "admin.php" ><< Wróć do strony administracyjnej</a></p>'; ?>
</body>
</html>
Na początku sprawdza poprawność $id, $date i itd za pomocą GET, jeśli to nie metoda GET to sprawdza dalej za pomocą POST, tak?
Nie lubię else if i jakoś ciężko zrozumieć, bo jak nie ma else w if POST, to wyświetla komunikat Nie podano wyniku do usunięcia - dlaczego tak jest?
co daje else w "else if (isset( $id ) && isset( $name ) && isset( $date ) &&isset($score) && isset($screenshot)) {", bo
działa tak samo bez else czyli
"if (isset( $id ) && isset( $name ) && isset( $date ) && isset($score) && isset($screenshot)) {"
Ten post edytował boy76 19.08.2010, 15:54:31