PHP Formulier gegevens ophalen

Status
Niet open voor verdere reacties.

raoulduivestein

Gebruiker
Lid geworden
7 aug 2012
Berichten
115
Ik maak gebruik van onderstaande code voor een formulier, en zou graag het volgende willen.
Mensen kunnen het formulier alleen zien, indien ze zijn ingelogd.
Nu zou ik graag het veld Naam en E-mail automatisch willen vullen met de gegevens van de persoon die ingelogd is.
Deze gegevens staan in de MYSQL tabel users (email en naam)
Wie zou mij hiermee op weg kunnen helpen?

HTML:
<?

/*
php login system

(c) Michael Zelensky miha.in 2012
*/

include_once ('inc/start.inc');

?><!DOCTYPE html>
<html>
<head>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
	<script src="/js/app.js" type="text/javascript"></script>
	<link rel="stylesheet" href="/css/style.css" type="text/css" />
</head>
<body>
<h1>PHP Login</h1>
<p><a href="index.php">Home page</a> <a href="beschikbaarheid.php">Beschikbaarheid</a>

<?
if (!isset($_SESSION['user_id'])) {
	$display = "display:none";
?>
<div id="login">
	Login: 
	<br>
	<form id="form_login">
		<input type="text" name="login_email" class="login_inactive"/>
		<input type="password" name="login_password" class="login_inactive"/>
		<a href="#" id="form_login_submit" class="form_button">Submit</a> <img src="/img/ajax-loader.gif" style="display:none" id="login_loader">
		<div id="login_error" style="display:none" class="login_error">Wrong email/password!</div>
		<div id="not_confirmed_error" style="display:none" class="login_error">Registration not complete! <a href="/register/resend.php">Resend confirmation email</a></div>
		<br>
		<a href="/register/reminder.php">Forgot password?</a> <a href="/register/">Register</a>
	</form>
</div>
<? } else {
	$display = "";
}

?>
<div id="loggedin" style="<?=$display?>">
	<p>Welcome, <a href="#" id="user_email">
	<?=$_SESSION['user_email']?>
	</a>! <a href="#" id="user_logout" class="logout_link">Logout</a>
</p>
<body>
<form id="form1" name="form1" method="post" action="verstuur.php">
  <p>&nbsp;</p>
  <table width="200" border="0">
    <tr>
      <td>Naam</td>
      <td><input type="text" name="naam" id="naam" /></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><label for="email"></label>
      <input type="text" name="email" id="email" /></td>
    </tr>
    <tr>
      <td>Week </td>
      <td><label for="week"></label>
      <input type="text" name="week" id="week" /></td>
    </tr>
  </table>
  <br />
  <table width="209" border="0">
    <tr>
      <td width="117">Maandag</td>
      <td width="25"><input type="checkbox" name="maochtend" id="maochtend"  />
      <label for="maochtend"></label></td>
      <td width="26"><input type="checkbox" name="mamiddag" id="maochtend2" /></td>
      <td width="23"><input type="checkbox" name="maavond" id="maavond" /></td>
    </tr>
    <tr>
      <td>Dinsdag</td>
      <td><input type="checkbox" name="maochtend2" id="diochtend" /></td>
      <td><input type="checkbox" name="dimiddag" id="dimiddag" /></td>
      <td><input type="checkbox" name="diavond" id="diavond" /></td>
    </tr>
    <tr>
      <td>Woensdag</td>
      <td><input type="checkbox" name="woochtend" id="woochtend" /></td>
      <td><input type="checkbox" name="womiddag" id="womiddag" /></td>
      <td><input type="checkbox" name="woavond" id="woavond" /></td>
    </tr>
    <tr>
      <td>Donderdag</td>
      <td><input type="checkbox" name="doochtend" id="doochtend" /></td>
      <td><input name="domiddag" type="checkbox" id="domiddag"  /></td>
      <td><input type="checkbox" name="doavond" id="doavond" /></td>
    </tr>
    <tr>
      <td>Vrijdag</td>
      <td><input type="checkbox" name="vrochtend" id="vrochtend" /></td>
      <td><input type="checkbox" name="vrmiddag" id="vrmiddag" /></td>
      <td><input type="checkbox" name="vravond" id="vravond" /></td>
    </tr>
    <tr>
      <td>Zaterdag</td>
      <td><input type="checkbox" name="zaochtend" id="zaochtend" /></td>
      <td><input type="checkbox" name="zamiddag" id="zamiddag" /></td>
      <td><input type="checkbox" name="zaavond" id="zaavond" /></td>
    </tr>
  </table>
  <p>
    <input type="submit" name="Verzenden" id="Verzenden" value="Submit" />
  </p>
  <p>&nbsp;</p>
</form>


</body>
</html>

</div>
<p class="c">(c) 2012 <a href="http://www.miha.in">Michael Zelensky</a></p>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-2929326-25");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>

PHP:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>

<?php 
          mysql_connect("localhost", "clin01_1", "Duives01");
            mysql_select_db("clin01_1");
                    
        $sql = "INSERT INTO beschikbaarheid (`naam`, `email`, `week`, `maochtend` , `mamiddag`, `maavond`) VALUES ('".$_POST['naam']."', '".$_POST['email']."', '".$_POST['week']."', '".$_POST['maochtend']."', '".$_POST['mamiddag']."', '".$_POST['maavond']."')";
    $query = mysql_query($sql) or die(mysql_error());
    
    echo "De informatie is succesvol weg geschreven in de database.<br />";
            
?>
 
Ik zie dat je de email van de gebruiker in een session heb staan. Dus kun je die vanaf daar als value in je veld zetten:
Lijn 55
Code:
<td><input type="text" name="naam" id="naam" value="<?php echo ($_SESSION['user_email']) ? $_SESSION['user_email'] : "" ?>"/></td>
Ik weet niet of je de naam in een sessie heb staan, zou wel logisch zijn trouwens.
Er vanuit gaande dat elke e-mail maar 1 maal voor komt in de database en er een bestaande database verbinding is kan je de naam zo ophalen:
Code:
$sql = "SELECT naam FROM beschikbaarheid WHERE email='" . $_SESSION['user_email'] . "'";
$res = mysql_query($sql);

$naam = (mysql_num_rows($res)>0) ? mysql_result($res, 0) : "";

Overigens zie ik dat je bij het inserten van een record de data niet van te voren beveiligd. Zo is het nu super easy een sql injectie te runnen op je database.
Ik heb ooit deze functie gemaakt:
array_secure
Code:
function array_secure($array)
{
	foreach($array as $k=>$v)
	{
		if (is_array($array[$k]))
		{
			$array[$k] = secureArray($array[$k]);
		}
		else
		{
			$array[$k] = mysql_real_escape_string($v);
		}
	}
	
	return $array;
}
Let wel op dat er een lopende verbinding met de database nodig is wil je de functie uit kunnen voeren. Je past het trouwens zo toe:
Code:
$_POST = array_secure($_POST);

Ik raad je trouwens aan als je SQL aan het leren bent gelijk "mysql_" te skippen, en PDO te leren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan