Kertokaahan viisaat missä mättää; kun mulla on php:lla toteutettu sovellus joka näyttää listan työntekijöistä ja jolla voi muokata työntekijöiden tietoja yms. <Ongelma> En saa muodostettua toimivaa linkkiä jotta voisin muuttaa työntekijöiden tietoja tai poistaa niitä.</ongelma>
Lista muuten näyttää tiedot oikein.
Saan selaimeen tälläisiä linkkejä
http://localhost/apusi/intra/index.php?s=paivitatt.php?id=22
myöskään http://localhost/apusi/intra/index.php?s=paivitatt?id=22
ei toimi..
Tässä on se työntekijät esittävä skripti;
<?php include_once 'includes/db_connect.php'; include_once 'includes/functions.php'; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/bootstrap.mid.js"></script> </head> <script> $(document).ready(function() { var table = $('#example').DataTable(); var tt = new $.fn.dataTable.TableTools( table ); $( tt.fnContainer() ).insertBefore('div.dataTables_wrapper'); } ); </script> <body> <div class="container"> <div class="row"> </br> </br> </div> <div class="row"> <p> <a href="index.php?s=luott" button class="btn btn-success">Lisää</button></a> </p> <table class="table table-striped table-bordered"> <thead> <tr> <th>Nimi</th> <th>Yritys</th> <th>Y-tunnus</th> <th>Osoite</th> <th>Paikkakunta</th> <th>Meili</th> <th>Puhelin nro</th> <th>Huomioitavaa</th> <th>Toiminnot</th> </tr> </thead> <tbody> <?php include 'database.php'; $pdo = Database::connect(); $sql = 'SELECT * FROM duunarit ORDER BY nimi ASC'; foreach ($pdo->query($sql) as $row){ echo '<tr>'; echo '<td>'. $row['nimi'] . '</td>'; echo '<td>'. $row['yritys'] . '</td>'; echo '<td>'. $row['tunnus'] . '</td>'; echo '<td>'. $row['osoite'] . '</td>'; echo '<td>'. $row['kunta'] . '</td>'; echo '<td>'. $row['meili'] . '</td>'; echo '<td>'. $row['numero'] . '</td>'; echo '<td>'. $row['huomioitavaa'] . '</td>'; echo '<td width=250>'; echo '<a class="btn" href="index.php?s=luett?id='.$row['id'].'">Avaa</a>'; echo ' '; echo '<a class="btn btn-success" href="index.php?s=paivitatt.php?id='.$row['id'].'">Päivitä</a>'; echo ' '; echo '<a class="btn btn-danger" href="index.php?s=poistatt.php?id='.$row['id'].'">Poista</a>'; echo '</td>'; } Database::disconnect(); ?> </tbody> </table> </div> </body> </html>
Tässä on index sivu jossa määrittelen sallitut sivut, uskon ongelman tulevan tässäkohtaa?
<?php include_once 'includes/db_connect.php'; include_once 'includes/functions.php'; sec_session_start(); // Määritellään sallitut sivut $intra = ARRAY( "oletus" => "oletus.php", "error" => "error.php", "apusi" => "apusi.php", "duunarit" => "duunarit.php", "luett" => "luett.php", "paivitatt" => "paivitatt.php", "poistatt" => "poistatt.php", "database" => "database.php", "luott" => "luott.php" ); $virheet = ARRAY( "404" => "Sivua ei löytynyt", ); $sivukansio = "./sisainen"; $oletussivu = "apusi"; $s = @$_GET['s']; $s = ($s ? $s : $oletussivu); if(@$intra[$s]){ $apusi = $s; } else { $apusi = "error"; $error = 404; } $sivug = $sivukansio . '/' . $intra[$apusi]; ?><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Apusi: Kirjautuminen</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]--> <script type="text/JavaScript" src="js/sha512.js"></script> <script type="text/JavaScript" src="js/forms.js"></script> <script src="js/jquery.min.js"></script> <script src="js/skel.min.js"></script> <script src="js/skel-layers.min.js"></script> <script src="js/init.js"></script> <script src="js/bootstrap.mid.js"></script> <noscript> <link rel="stylesheet" href="css/skel.css" /> <link rel="stylesheet" href="css/style.css" /> <link rel="stylesheet" href="css/style-xlarge.css" /> <link rel="stylesheet" href="css/bootstrap.min.css" /> </noscript> <!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]--> </head> <body class="landing"> <?php if (login_check($mysqli) == true) : ?> <?php /* SISÄLTÖ */ if(@file_exists($sivug)){ include($sivug); } ?> <?php else : ?> <p> <span class="error">Et ole kirjautuneena sisään.</span> Ole hyvä ja <a href="kirjautuminen.php">Kirjaudu</a>. </p> <?php endif; ?>
Uskon siis ongelman olevan tässä index sivulla koska toi duunarilista toimi loistavasti ennen kun liitin sen tähän index sivuun..
Kiitos jo valmiiksi neuvoista!
-Rintsi
Rintsi kirjoitti:
En saa muodostettua toimivaa linkkiä jotta voisin muuttaa työntekijöiden tietoja tai poistaa niitä.
Lähtökohtaisesti tietojen muuttaminen tai poistaminen linkkiä käyttäen on "huono idea(tm)"
Mutta noin muuten tuon koodisi huomioiden linkkien pitäisi olla:
Vaihtoehto 1)
'...href="index.php?s=paivitatt&id='.$row['id'].'"...'
Eikä
'...href="index.php?s=paivitatt.php?id='.$row['id'].'"...'
Ja luultavasti tämän
$apusi = $s;
pitäisi olla
$apusi = $intra[$s];
Vaihtoehto 2)
Linkki:
'...href="index.php?s=paivitatt.php&id='.$row['id'].'"...'
(eli toisen ? tilalle &)
Index-sivua:
Kiitos äärettömästi! Jo akoi lista toimimaan.
Kokeilin myös muutoksia index sivulle mutta antoi virheen;
Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\apusi\intra\index.php on line 110
-Rintsi
Katso puuttuuko sinulla joku sulku sieltä tiedoston lopusta. Jos ei, niin kerro mitä on tuolla kyseisellä rivillä ja sen lähellä niin voidaan auttaa paremmin.
Sitten vielä pitää muistaa, että &-merkki HTML-koodissa kuuluu kirjoittaa muodossa & ongelmien ja syntaksivirheiden välttämiseksi. Tässä auttaa funktio htmlspecialchars, jolla kannattaa usein käsitellä suurin osa sivulle tulostettavasta sisällöstä.
Kiitos taas! Korjasin virheet.
-Rintsi
Aihe on jo aika vanha, joten et voi enää vastata siihen.