sesion login scrip error

Status
Niet open voor verdere reacties.

manueld

Gebruiker
Lid geworden
12 feb 2012
Berichten
216
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
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>
 
Hi
Weet je zeker dat $mysqlil goed is?..paar regels verder gebruik je namelijk $mysqli
 
Ik weet zeker dat die goed is. Ik heb twee scripts gebruikt de en is is een formulier en de ander het login gedeelte. Aangezien beide scripts dezelfde variabele gebruiken heb ik die van het login script voorzien van een l aan het einde
 
Wat is nu precies je vraag in een korte samenvatting?
 
mijn vraag is hoe kan ik de loginstatus check doen in combinatie met post.
 
uw script met minder fouten.
PHP:
<head>
<?php
    include_once 'includes/db_connect.php';
    include_once 'includes/functions.php';
    session_start();//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout1
?>
    <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']); //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout2
         ?></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){//:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout9 --> 
                    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;//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout3
                //}//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout4
            ?>
            <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
                <table>
                      <tbody>
                         <tr><td style="width:15%"><? echo  '' ;//het formulier in een tabel verwijderd voor leesbaarheid ?></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>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout5 -->
                            <?php //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>kan al dan niet fout zijn zie instelling appache
                                unset ($lid) ;
                            ?>   
                        </tbody>
                </table>
            </form>
            </div> 
        </div>
        <!--    </div>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout6 -->
		<!--	</p> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout7 -->
		<!--</div>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout8 -->
        <?php }else{/*:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>was fout10 -->*/  ?>
            <p>  <span class="error">U bent niet ingelogd.</span> klik <a href="login.php">hier om in te loggen</a>. </p>
        <?php } ?>
			</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>
 
Laatst bewerkt:
nu geef je aan dat het fout was maar alle fouten die je aangeeft kloppen niet. ik heb grote delen uit het script weggehaald om de leesbaarheid te vergroten en ja dat geeft fouten als je hem zo zou uitvoeren. verder haal je het sec_session_start();} stuk weg wat juist een deel is van de code om sessies te beveiligen. heelaas heb ik dus niet veel aan uw antwoord.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan