als beginner in php (wel ervaring in vba en algemeen programeren) ben ik bezig een website te bouwen. ik heb een formulier welke via post naar zichzelf verwijst. dit werkt perfect. om nu te zorgen dat ik het formulier per gebruiker kan gebruiken (profiel pagina) wil ik gebruik maken van een login script. als basis wil ik onderstaand script gebruiken
http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL (ik weet dat er nog zaken aan dit script missen qua veiligheid maar dat is nu niet de discusie. dat is de volgende stap.
dit werkt prima. ik heb het kunnen implementeren in mijn bestaande pagina's. hij haalt uit de sesie variabelen netjes de gebruiker en toont die gebruiker. alles lijkt te werken behalve het volgende
als ik het profiel form open dan toont hij netjes op basis van de session variabele het bijbehorende profiel welke uit mysql gehaald word. zodra ik echter op submit druk (en hij uiteindelijk zichzelf opvraagt dan krijg ik buiten de header een lege pagina vanaf het moment dat de regel <?php if (login_check($mysqlil) == true) : ?> doorlopen wordt.
ikl heb het vermoeden dat het zit in dat dit login script gebaseerd is op het regenereren van de sessie en deze dus leeg is of misschien zelfs niet goed gezet tijdens het opvragen van deze pagina via post.
mijn vraag klopt deze denkwijze en zo ja wat kan ik er aan doen.
hieronder mijn profiel pagina
http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL (ik weet dat er nog zaken aan dit script missen qua veiligheid maar dat is nu niet de discusie. dat is de volgende stap.
dit werkt prima. ik heb het kunnen implementeren in mijn bestaande pagina's. hij haalt uit de sesie variabelen netjes de gebruiker en toont die gebruiker. alles lijkt te werken behalve het volgende
als ik het profiel form open dan toont hij netjes op basis van de session variabele het bijbehorende profiel welke uit mysql gehaald word. zodra ik echter op submit druk (en hij uiteindelijk zichzelf opvraagt dan krijg ik buiten de header een lege pagina vanaf het moment dat de regel <?php if (login_check($mysqlil) == true) : ?> doorlopen wordt.
ikl heb het vermoeden dat het zit in dat dit login script gebaseerd is op het regenereren van de sessie en deze dus leeg is of misschien zelfs niet goed gezet tijdens het opvragen van deze pagina via post.
mijn vraag klopt deze denkwijze en zo ja wat kan ik er aan doen.
hieronder mijn profiel pagina
Code:
<head><?php
include_once 'includes/db_connect.php';
include_once 'includes/functions.php';
sec_session_start();}
?>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"/>
<!-- your webpage info goes here -->
<script type="text/JavaScript" src="js/sha512.js"></script>
<script type="text/JavaScript" src="js/forms.js"></script>
<!-- you should always add your stylesheet (css) in the head tag so that it starts loading before the page html is being displayed -->
<link rel="stylesheet" href="/style.css" type="text/css" />
</head>
<body>
<!-- webpage content goes here in the body -->
<div id="page">
</div><div id="kv">
<img src="Images/logo.gif" alt="o"/>
</div>
<div id="logo"><?php
echo "welkom " . htmlentities($_SESSION['username'])
?></div>
<div id="nav">
<?php include('head.php'); ?>//enkele links verder geen php
</div>
<div id="content"> <h2>Profiel</h2>
<div id="profielcentre">
<?php if (login_check($mysqlil) == true) : ?>
<?php
include ("Connection.php");
$user = ($_SERVER['PHP_AUTH_USER']);
$sql = "SELECT * FROM*** where loginname = '" . htmlentities($_SESSION['username']) . "'" ;
if (!$result = $mysqli->query($sql)) {
# echo "Error: Our query failed to execute and here is why: \n";
echo "Website Fout. Probeer het later nog eens!.";
exit;
}
if ($result->num_rows === 0) {
echo "<br>Uw gegevens zijn niet bekend of uw bent niet ingelogd! ";
echo "<br> ";
echo "<br>Stuur een email naar de " ?> <a href="mailto:xl@x.nl">Webmaster</a><?;
exit;
}
$Lid = $result->fetch_assoc();
hier staat een stuk formulier code die goed werkt
return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table>
<tbody>
<tr>
het formulier in een tabel verwijderd voor leesbaarheid
<td style="width:15%"><? echo "" ; ?></td>
</tr>
<tr><td><input type="submit" name="Submit" value="Wijzigingen opslaan" ></td> <td>
<? if ($_SERVER["REQUEST_METHOD"] == "POST"){
if ($VoornaamErr == "" and $VoorlettersErr == "" and $TussenvoegselErr == "" and $AchternaamErr == ""
and $AdresErr == "" and $PostcodeErr == "" and $WoonplaatsErr == "" and $LandErr == "" and $TelefoonErr == ""
and $EMailErr == "" and $GeslachtErr == "" and $GeboortedatumErr == "" and $MobielErr == ""
and $BSNErr == "" and $BeroepErr == "" and $FunktieErr == ""){ include ('Saveprofile.php');
} else {
echo "Niet alle velden zijn correct ingevuld!" ;}
}
?></td><td></td><td>* required field.</td>
</tr>
</form>
<? unset ($lid) ;
?>
</tbody>
</table></form>
</div>
</div>
</div>
</p>
</div>
<?php else : ?>
<p>
<span class="error">U bent niet ingelogd.</span> klik <a href="login.php">hier om in te loggen</a>.
</p>
<?php endif; ?>
</p>
<div id="footer">
<p>
Webpage made by <a href="mailto:x@x.nl" target="_blank">[Mp]</a> Copyright 2016 by Mpp
</p>
</div>
</div>
</body>
</html>