Archief - PHP: Log In Met Cookies

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

50Euro

Legacy Member
Zo set ik mijn Cookies in config.php:
PHP:
<?php 
 error_reporting(E_ALL); 
  if ( !empty($_POST['gebruikersnaam']) ) {
  setcookie('gebruikersnaam',$_POST['gebruikersnaam'],time()+60*60*24*7,'/'); 
  setcookie('paswoord',$_POST['paswoord'],time()+60*60*24*7,'/'); 
     }
?>

En dit is men login.php:
PHP:
<?php
require ('config.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head>
<title>Welkom bij de Plaskesvrienden! - Log In!!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=stylesheet type="text/css" href="site/styles.css">
</head>
<?php
require ('layout-up.php');
?>
<br />
<table class="style3" align="center">
<tbody>
  <tr>
    <td>
	<form action="login.php" method="post">
	Gebruikersnaam: <br /> <input type="text" name="gebruikersnaam" size="20" /><br />
	Paswoord: <br /> <input type="password" name="paswoord" size="20" /> <br /><br />
	<input value="Log In!" type="submit" name="login" />
	</form>
	</td>
  </tr>
</tbody>
</table>
<br />
<?php
require ('layout-down.php');
?>

Resultaat kan je hier bekijken.

Deze error krijg ik dus:
PHP:
Notice: Undefined index: gebruikersnaam in /opt/www/desutterk/web/www.tipke.be/Plaskesvrienden/config.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /opt/www/desutterk/web/www.tipke.be/Plaskesvrienden/config.php:3) in /opt/www/desutterk/web/www.tipke.be/Plaskesvrienden/config.php on line 3

Hoofdvraag is dus hoe ik mijn Cookie moet setten en hoe wijzig ik deze later?

Dece

Legacy Member
mmm raar.

normaal gezien krijgde deze error alleen maar als ge al html output hebt.
Zijde zeker dat er in u online code geen witregel (spatie, enter) voor de <?php ?>-tags staat?

servi

Legacy Member
$_POST['gebruikersnaam'] is leeg, dat genereert een notice, met als gevolg dat de cookie niet meer kan worden ingesteld.


een oplossing is :
PHP:
   <?php 
 error_reporting(E_ALL); 
  if ( !empty($_POST['gebruikersnaam']) ) {
  setcookie('gebruikersnaam',$_POST['gebruikersnaam'],time()+60*60*24*7,'/'); 
     setcookie('paswoord',$_POST['paswoord'],time()+60*60*24*7,'/'); 
     }
 ?>

50Euro

Legacy Member
servi zei:
$_POST['gebruikersnaam'] is leeg, dat genereert een notice, met als gevolg dat de cookie niet meer kan worden ingesteld.


een oplossing is :
PHP:
   <?php 
 error_reporting(E_ALL); 
  if ( !empty($_POST['gebruikersnaam']) ) {
  setcookie('gebruikersnaam',$_POST['gebruikersnaam'],time()+60*60*24*7,'/'); 
     setcookie('paswoord',$_POST['paswoord'],time()+60*60*24*7,'/'); 
     }
 ?>

Ik heb dit gedaan en het werkt! :applause:
Nu heb ik nog één probleempje om in te loggen. Dat is namelijk dat ik 2 keer op Log In moet klikken..

Misschien dat men layout-up.php kan helpen:
PHP:
<table class="style1" align="center">
<tbody><tr>
	<td width="642">
	<img src="site/header.gif" alt="De Plaskesvrienden!">
	</td>
    <td>
	<?php
	if ((isset($_COOKIE['gebruikersnaam']))&&(isset($_COOKIE['paswoord']))){
	print "Welkom!";
	print "<br />";
	print $_COOKIE['gebruikersnaam'];
	print "<br />";
	}else{
	print '<a href="login.php" target="_self">Log In!</a>';
	}
	?>
	</td>
</tr>
</tbody>
</table>
<br>
<table class="style2" align="center" cellspacing="0">
  <tbody><tr>
    <td width="20%"><a href="home.php">Home</a></td>
    <td width="20%"><a href="kalender.php">De Kalender</a></td>
	<td width="20%"><a href="forum.php">Forum</a></td>
	<td width="20%"><a href="fotopagina.php">Fotopagina</a></td>
	<td width="20%"><a href="wegbeschrijving.php">Wegbeschrijving</a></td>
	</tr>
</tbody></table>

Site kan je hier bekijken.

killgore

Legacy Member
1) op elke gpc (get, post, cookie) var kan je best checken of ie bestaat met isset(); best doe je er ook nog eens extra bewerkingen als addslashes, htmlspecialchars, ... op.
2) die headers heb ik je gisteren uitgelegd: je mag geen html/css/whatever-client-side code hebben voor die aanroep, alsook geen output van php zelve (echo, print, ...). Als je een file include met html-code of echo's of zo in, heb je ffcourse ook output he ;).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan