Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelma linkkien muodostamisessa

Rintsi [08.02.2016 19:16:41]

#

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

Grez [08.02.2016 19:25:16]

#

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:

//...
$intra = array(
	"oletus.php",
	"error.php",
	"apusi.php",
	"duunarit.php",
	"luett.php",
	"paivitatt.php",
	"poistatt.php",
	"database.php",
	"luott.php"
);
//...
if(in_array($s,$intra)) {
	$apusi = $s;
//...

Rintsi [08.02.2016 19:50:19]

#

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

TuomasK [08.02.2016 20:30:55]

#

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.

Metabolix [09.02.2016 18:05:11]

#

Sitten vielä pitää muistaa, että &-merkki HTML-koodissa kuuluu kirjoittaa muodossa &amp; ongelmien ja syntaksivirheiden välttämiseksi. Tässä auttaa funktio htmlspecialchars, jolla kannattaa usein käsitellä suurin osa sivulle tulostettavasta sisällöstä.

Rintsi [10.02.2016 17:26:33]

#

Kiitos taas! Korjasin virheet.

-Rintsi

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta