1. #1
    50Euro's Avatar
    Registered
    15/08/03
    Location
    Moorsele
    Posts
    2,552
    iTrader
    10 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/18

    PHP: Log In Met Cookies

    Zo set ik mijn Cookies in config.php:
    PHP Code:
    <?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 Code:
    <?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 Code:
    NoticeUndefined indexgebruikersnaam 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:3in /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?
    Last edited by 50Euro; 08-09-2004 at 18:24.
    Nintendo ID & PSN & Xbox Live & Steam: FiFtyEuro
    no votes  

  2. #2
    Dece's Avatar
    Registered
    25/10/02
    Location
    Ninove
    Posts
    829
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    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?
    no votes  

  3. #3
    servi's Avatar
    Registered
    01/07/02
    Location
    Zolder
    Posts
    2,487
    iTrader
    6 (100%)
    Mentioned
    0 Post(s)
    $_POST['gebruikersnaam'] is leeg, dat genereert een notice, met als gevolg dat de cookie niet meer kan worden ingesteld.


    een oplossing is :
    PHP Code:
       <?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,'/'); 
         }
     
    ?>

    Last edited by servi; 08-09-2004 at 01:54.
    no votes  

  4. #4
    50Euro's Avatar
    Registered
    15/08/03
    Location
    Moorsele
    Posts
    2,552
    iTrader
    10 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/18
    Quote Originally Posted by servi
    This quote is hidden because you are ignoring this member. Show
    $_POST['gebruikersnaam'] is leeg, dat genereert een notice, met als gevolg dat de cookie niet meer kan worden ingesteld.


    een oplossing is :
    PHP Code:
       <?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!
    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 Code:
    <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.
    Last edited by 50Euro; 08-09-2004 at 18:28.
    Nintendo ID & PSN & Xbox Live & Steam: FiFtyEuro
    no votes  

  5. #5

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    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 .
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in