webbrowsergame

Status
Niet open voor verdere reacties.
Heb je er een check op de sessie/cookie in zitten dan?

Dus iets van
PHP:
if(isset($_SESSION['login'])) {
  echo 'U bent al ingelogd';
} else {
  echo '<form method="post">'; //etc
}
 
Heb je er een check op de sessie/cookie in zitten dan?

Dus iets van
PHP:
if(isset($_SESSION['login'])) {
  echo 'U bent al ingelogd';
} else {
  echo '<form method="post">'; //etc
}
nee ik controleer op cookie/mysql(of ie in de db voorkomt)
 
Volgens mij als je een pagina terug gaat, dat ie de pagina niet opnieuw wil laden.

Weet iemand hoe dat wél kan

Alvast bedankt mensen
 
Werken met een header("Location: {url}"); LET WEL: header vereist dat er geen output voor de functie wordt gegenereerd.

Maar je zegt eerst dat je geen check uitvoert en daarna dat je controleert op de cookie/databasegegevens. Wat is het nou? Wel of niet een check?

Je gebruikt dus ook een soortgelijke methode welke ik als voorbeeld gaf? Dus dat je een formulier weergeeft bij geen cookie en een melding dat je al bent ingelogd wanneer die cookie wel is gevonden.
 
Dit:
PHP:
echo 'Hoi';
header("Location: http://www.mijnsite.nl/pagina.php");
Vaak krijg je de fout (Headers already sent) wanneer je een pagina include waarin je de functie header() gebruikt.
 
is het misschien goed als ik de code van het inlog script op deze site zet?
 
Is mogelijk, als je de code tussen
PHP:
...
zet komt het goed :)
 
http://lautje145.la.funpic.org/dieren_spel/inloggen.php:
PHP:
<?php
include('include/uitgelogd.php');
include('include/controleer_ingelogd.php');
if($controleer_ingelogd!=0){
include('include/doorsturen.php');
echo "$doorsturen_een je al bent ingelogd $doorsturen_twee";

}
else{
?>
<?php
//wachtwoord enz. hieronder heb ik weggehaald
$inloggen_verbinding=mysql_connect('localhost', 'user', 'pass');
$inloggen_select_db=mysql_select_db('db');

$submit_inloggen=$_POST['submit_inloggen'];
$inloggen_gebruikersnaam=$_POST['inloggen_gebruikersnaam'];
$inloggen_wachtwoord=$_POST['inloggen_wachtwoord'];
if($submit_inloggen){
$inloggen_query_gebruikersnaam_slash_wachtwoord_checken_of_zij_in_de_db_voorkomen=mysql_query("SELECT count(id) FROM dieren_spel_gebruikers WHERE user='$inloggen_gebruikersnaam' AND pass='$inloggen_wachtwoord'");
$inloggen_result_gebruikersnaam_slash_wachtwoord_checken_of_zij_in_de_db_voorkomen=mysql_result($inloggen_query_gebruikersnaam_slash_wachtwoord_checken_of_zij_in_de_db_voorkomen, 0);
if($inloggen_result_gebruikersnaam_slash_wachtwoord_checken_of_zij_in_de_db_voorkomen!=0){
setcookie("user",$inloggen_gebruikersnaam,time()+3600*3);
setcookie("pass",$inloggen_wachtwoord,time()+3600*3);
echo "JE wordt doorgestuurd";
header('Location: http://lautje145.la.funpic.org/dieren_spel');
$_POST['inloggen_gebruikersnaam']="";
$_POST['inloggen_wachtwoord']="";
}
elseif($inloggen_result_gebruikersnaam_slash_wachtwoord_checken_of_zij_in_de_db_voorkomen==0 || $inloggen_gebruikersnaam=="" || $inloggen_wachtwoord==""){
?>
<? echo "$een"; ?>Inloggen
<? echo "$twee"; ?>Inloggen
<? echo "$drie"; ?>
<?
echo "Fout : <ul type=\"disc\">";
if($inloggen_gebruikersnaam==""){
echo "<li>De gebruikersnaam is leeg</li>";
}
if($inloggen_wachtwoord==""){
echo "<li>Het wachtwoord is leeg</li>";
}
if($inloggen_result_gebruikersnaam_slash_wachtwoord_checken_of_zij_in_de_db_voorkomen=="0" && $inloggen_gebruikersnaam!="" && $inloggen_wachtwoord!=""){
echo "<li>Je wachtwoord en/of gebruikersnaam komt niet in de database voor</li>";
}
echo "</ul><center><a href=\"javascript:history.go(-1)\" class=\"oranje\">« Keer terug</a></center>";
?>
<? echo "$vier"; ?>
<?
}

}
else{
?>
<? echo "$een"; ?>Inloggen
<? echo "$twee"; ?>Inloggen
<? echo "$drie"; ?>
<form method="post" name="form">
Gebruikersnaam : <input type="text" name="inloggen_gebruikersnaam" VALUE=""><br>
Wachtwoord : <input type="password" name="inloggen_wachtwoord" VALUE="wachtwoord"><br>
<input type="submit" name="submit_inloggen" value="Inloggen!"><br>
</form>
<? echo "$vier"; ?>
<?
}
?>

<?
}
?>
 
Ik zou ook wel graag de inhoud van include/controleer_ingelogd.php en include/doorsturen.php willen zien aangezien ik nu niet weet wat de variabele $controleer_ingelogd bevat.

Ik heb je code wat opgeschoond en leesbaarder gemaakt, ellenlange variabelenamen zijn niet echt aan te raden. Gebruik een korte variabele naam welke voldoende zegt en alle andere informatie die je er bij wilt hebben zet je er in commentaar bij :)

PHP:
<?php 
include('include/uitgelogd.php'); 
include('include/controleer_ingelogd.php'); 
if($controleer_ingelogd != 0){ 
  include('include/doorsturen.php'); 
  echo "$doorsturen_een je al bent ingelogd $doorsturen_twee"; 
} else {
  //wachtwoord enz. hieronder heb ik weggehaald 
  $inloggen_verbinding=mysql_connect('localhost', 'user', 'pass'); 
  $inloggen_select_db=mysql_select_db('db'); 

  $submit_inloggen= $_POST['submit_inloggen']; 
  $inloggen_gebruikersnaam= $_POST['inloggen_gebruikersnaam']; 
  $inloggen_wachtwoord= $_POST['inloggen_wachtwoord']; 
  if(isset($submit_inloggen)){
    // Array aanmaken voor eventuele fouten
    $errors = array();
    // Query aanmaken
    $loginQuery = mysql_query("SELECT id FROM dieren_spel_gebruikers WHERE user='$inloggen_gebruikersnaam' AND pass='$inloggen_wachtwoord'");
    // Resultaten tellen 
    $loginNum = mysql_num_rows($loginQuery);
    // Fouten controleren
    if($inloggen_gebruikersnaam == "") {
      $errors[] = 'De gebruikersnaam is leeg.';
    }
    if($inloggen_wachtwoord == "") {
      $errors[] = 'Het wachtwoord is leeg.';
    }
    if($loginNum == 0) {
      $errors[] = 'De gebruikersnaam en/of het wachtwoord zijn incorrect';
    }
    // Kijken of er fouten zijn gevonden
    if(count($errors) != 0) {
      // Geen fouten -> Cookies aanmaken
      setcookie("user",$inloggen_gebruikersnaam,time()+3600*3); 
      setcookie("pass",$inloggen_wachtwoord,time()+3600*3);
      // Doorsturen
      header('Location: http://lautje145.la.funpic.org/dieren_spel');
      // $_POST leegmaken
      empty($_POST);
    } else {
      echo $een; ?>Inloggen <?
      echo $twee; ?>Inloggen <?
      echo $drie;
      // Alle fouten weergeven
      echo 'Fout : <ul type="disc">';
      foreach($errors AS $error) {
        echo '<li>'. $error .'</li>';
      }
      echo '</ul><div style="text-align: center"><a href="javascript:history.go(-1)" class="oranje">&laquo; Keer terug</a></div>';
      echo $vier;
    }
  } else {
    echo $een; ?>Inloggen <?
    echo $twee; ?>Inloggen <?
    echo $drie; ?> 
    <form method="post" name="form"> 
     Gebruikersnaam : <input type="text" name="inloggen_gebruikersnaam" VALUE=""><br> 
     Wachtwoord : <input type="password" name="inloggen_wachtwoord" VALUE="wachtwoord"><br> 
     <input type="submit" name="submit_inloggen" value="Inloggen!"><br> 
    </form>
    <?
    echo $vier;
  }
} 
?>
 
http://lautje145.la.funpic.org/dieren_spel/include/doorsturen.php :
PHP:
<?php
$doorsturen_een="
<html>
<head>
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">
   <title>Online Pet - Doorsturen</title>
</head>
<body>
<div id=\"center\"><div id=\"oranje_smooth_boven\"></div><div id=\"middle\"><div id=\"middle_twee\"><center>Je wordt doorgestuurd omdat
";
$doorsturen_twee="
<br><img src=\"images/load.gif\"></center></div></div></div>
</body>
</html>
";
header('Refresh: 3; url=http://lautje145.la.funpic.org/dieren_spel/include/doorsturen2.php');
$_POST="";
?>

http://lautje145.la.funpic.org/dieren_spel/include/controleer_ingelogd.php :
PHP:
<?php
//Verbinding maken met mysql database
$verbinding_controleer_ingelogd=mysql_connect('localhost', 'user', 'pass');
$select_db_controleer_ingelogd=mysql_select_db('db');
//Zet strings voor cookies (om te lezen)
$cookie_gebruikersnaam_controleer_ingelogd=$HTTP_COOKIE_VARS['user'];
$cookie_wachtwoord_controleer_ingelogd=$HTTP_COOKIE_VARS['pass'];
//Het ophaal gedeelte (MySQL)
$sql_controleer_ingelogd="SELECT count(id) FROM dieren_spel_gebruikers WHERE user='" . $cookie_gebruikersnaam_controleer_ingelogd . "' AND pass='" . $cookie_wachtwoord_controleer_ingelogd . "'";
$query_controleer_ingelogd=mysql_query($sql_controleer_ingelogd);
$result_controleer_ingelogd=mysql_result($query_controleer_ingelogd, 0);

$controleer_ingelogd=$result_controleer_ingelogd;
?>
 
Laatst bewerkt:
Het controleer ingelogd is een erg overbodig aangezien het niets anders is dan de query welke je eerder gebruikte bij het inloggen... Dus als hij niet goed zou zijn dan was er nooit een cookie aangemaakt :)

Probeer dus dit eens:
PHP:
<?php  
include('include/uitgelogd.php');
if(isset($_COOKIE['user']) && isset($_COOKIE['pass')){  
  include('include/doorsturen.php');  
  echo "$doorsturen_een je al bent ingelogd $doorsturen_twee";  
} else {
 
Het controleer ingelogd is een erg overbodig aangezien het niets anders is dan de query welke je eerder gebruikte bij het inloggen... Dus als hij niet goed zou zijn dan was er nooit een cookie aangemaakt :)

Probeer dus dit eens:
PHP:
<?php  
include('include/uitgelogd.php');
if(isset($_COOKIE['user']) && isset($_COOKIE['pass')){  
  include('include/doorsturen.php');  
  echo "$doorsturen_een je al bent ingelogd $doorsturen_twee";  
} else {
maar anders krijg je weer dat gedoe dat andere de cookie aanpassen.
gevolg: foutmeldingen
 
? Anderen de cookie aanpassen? Foutmeldingen?

Je kunt ook de query daaronder nog uitvoeren
PHP:
if(isset($_COOKIE['user']) && isset($_COOKIE['pass')){
  $userQuery = "SELECT id FROM dieren_spel_gebruikers WHERE user='". $_COOKIE['user'] ."' AND pass='". $_COOKIE['pass'] ."'";
  $userResult = mysql_query($userQuery) or die(mysql_error());
  $userNum = mysql_num_rows($userResult);
  if($userNum == 0) {
    echo 'Ongeldige Cookies!';
  } else {
    include('include/doorsturen.php');
    echo "$doorsturen_een je al bent ingelogd $doorsturen_twee";
  }
} else {
 
Ik zou ook wel graag de inhoud van include/controleer_ingelogd.php en include/doorsturen.php willen zien aangezien ik nu niet weet wat de variabele $controleer_ingelogd bevat.

Ik heb je code wat opgeschoond en leesbaarder gemaakt, ellenlange variabelenamen zijn niet echt aan te raden. Gebruik een korte variabele naam welke voldoende zegt en alle andere informatie die je er bij wilt hebben zet je er in commentaar bij :)

PHP:
<?php 
include('include/uitgelogd.php'); 
include('include/controleer_ingelogd.php'); 
if($controleer_ingelogd != 0){ 
  include('include/doorsturen.php'); 
  echo "$doorsturen_een je al bent ingelogd $doorsturen_twee"; 
} else {
  //wachtwoord enz. hieronder heb ik weggehaald 
  $inloggen_verbinding=mysql_connect('localhost', 'user', 'pass'); 
  $inloggen_select_db=mysql_select_db('db'); 

  $submit_inloggen= $_POST['submit_inloggen']; 
  $inloggen_gebruikersnaam= $_POST['inloggen_gebruikersnaam']; 
  $inloggen_wachtwoord= $_POST['inloggen_wachtwoord']; 
  if(isset($submit_inloggen)){
    // Array aanmaken voor eventuele fouten
    $errors = array();
    // Query aanmaken
    $loginQuery = mysql_query("SELECT id FROM dieren_spel_gebruikers WHERE user='$inloggen_gebruikersnaam' AND pass='$inloggen_wachtwoord'");
    // Resultaten tellen 
    $loginNum = mysql_num_rows($loginQuery);
    // Fouten controleren
    if($inloggen_gebruikersnaam == "") {
      $errors[] = 'De gebruikersnaam is leeg.';
    }
    if($inloggen_wachtwoord == "") {
      $errors[] = 'Het wachtwoord is leeg.';
    }
    if($loginNum == 0) {
      $errors[] = 'De gebruikersnaam en/of het wachtwoord zijn incorrect';
    }
    // Kijken of er fouten zijn gevonden
    if(count($errors) != 0) {
      // Geen fouten -> Cookies aanmaken
      setcookie("user",$inloggen_gebruikersnaam,time()+3600*3); 
      setcookie("pass",$inloggen_wachtwoord,time()+3600*3);
      // Doorsturen
      header('Location: http://lautje145.la.funpic.org/dieren_spel');
      // $_POST leegmaken
      empty($_POST);
    } else {
      echo $een; ?>Inloggen <?
      echo $twee; ?>Inloggen <?
      echo $drie;
      // Alle fouten weergeven
      echo 'Fout : <ul type="disc">';
      foreach($errors AS $error) {
        echo '<li>'. $error .'</li>';
      }
      echo '</ul><div style="text-align: center"><a href="javascript:history.go(-1)" class="oranje">&laquo; Keer terug</a></div>';
      echo $vier;
    }
  } else {
    echo $een; ?>Inloggen <?
    echo $twee; ?>Inloggen <?
    echo $drie; ?> 
    <form method="post" name="form"> 
     Gebruikersnaam : <input type="text" name="inloggen_gebruikersnaam" VALUE=""><br> 
     Wachtwoord : <input type="password" name="inloggen_wachtwoord" VALUE="wachtwoord"><br> 
     <input type="submit" name="submit_inloggen" value="Inloggen!"><br> 
    </form>
    <?
    echo $vier;
  }
} 
?>

ik heb deze code toegepast, maar hij werkt niet helemaal perfect( http://lautje145.la.funpic.org/dieren_spel/inloggen.php ) , test account:
USER : jan
PASS : jan
 
Probeer deze volledige code eens. Ik had de verkeerde vergelijking gemaakt :) Hij ging cookies zetten wanneer er fouten waren gevonden. Dat is niet echt de bedoeling :D
PHP:
<?php
// MySQL gegevens
//wachtwoord enz. hieronder heb ik weggehaald  
$inloggen_verbinding=mysql_connect('localhost', 'user', 'pass');  
$inloggen_select_db=mysql_select_db('db');

// Check op cookies
if(isset($_COOKIE['user']) && isset($_COOKIE['pass')){ 
  $userQuery = "SELECT id FROM dieren_spel_gebruikers WHERE user='". $_COOKIE['user'] ."' AND pass='". $_COOKIE['pass'] ."'"; 
  $userResult = mysql_query($userQuery) or die(mysql_error()); 
  $userNum = mysql_num_rows($userResult); 
  if($userNum == 0) { 
    echo 'Ongeldige Cookies!'; 
  } else { 
    include('include/doorsturen.php'); 
    echo "$doorsturen_een je al bent ingelogd $doorsturen_twee"; 
  } 
} else {
  $submit_inloggen= $_POST['submit_inloggen'];  
  $inloggen_gebruikersnaam= $_POST['inloggen_gebruikersnaam'];  
  $inloggen_wachtwoord= $_POST['inloggen_wachtwoord'];  
  if(isset($submit_inloggen)){ 
    // Array aanmaken voor eventuele fouten 
    $errors = array(); 
    // Query aanmaken 
    $loginQuery = mysql_query("SELECT id FROM dieren_spel_gebruikers WHERE user='$inloggen_gebruikersnaam' AND pass='$inloggen_wachtwoord'"); 
    // Resultaten tellen  
    $loginNum = mysql_num_rows($loginQuery); 
    // Fouten controleren 
    if($inloggen_gebruikersnaam == "") { 
      $errors[] = 'De gebruikersnaam is leeg.'; 
    } 
    if($inloggen_wachtwoord == "") { 
      $errors[] = 'Het wachtwoord is leeg.'; 
    } 
    if($loginNum == 0) { 
      $errors[] = 'De gebruikersnaam en/of het wachtwoord zijn incorrect'; 
    } 
    // Kijken of er fouten zijn gevonden 
    if(count($errors) == 0) { 
      // Geen fouten -> Cookies aanmaken 
      setcookie("user",$inloggen_gebruikersnaam,time()+3600*3);  
      setcookie("pass",$inloggen_wachtwoord,time()+3600*3); 
      // Doorsturen 
      header('Location: http://lautje145.la.funpic.org/dieren_spel'); 
      // $_POST leegmaken 
      empty($_POST); 
    } else { 
      echo $een; ?>Inloggen <? 
      echo $twee; ?>Inloggen <? 
      echo $drie; 
      // Alle fouten weergeven
      //Bugfixen
      print_r($errors);
      // End bugfixen
      echo 'Fout : <ul type="disc">'; 
      foreach($errors AS $error) { 
        echo '<li>'. $error .'</li>'; 
      } 
      echo '</ul><div style="text-align: center"><a href="javascript:history.go(-1)" class="oranje">&laquo; Keer terug</a></div>'; 
      echo $vier; 
    } 
  } else { 
    echo $een; ?>Inloggen <? 
    echo $twee; ?>Inloggen <? 
    echo $drie; ?>  
    <form method="post" name="form">  
     Gebruikersnaam : <input type="text" name="inloggen_gebruikersnaam" VALUE=""><br>  
     Wachtwoord : <input type="password" name="inloggen_wachtwoord" VALUE="wachtwoord"><br>  
     <input type="submit" name="submit_inloggen" value="Inloggen!"><br>  
    </form> 
    <? 
    echo $vier; 
  } 
}  
?>
 
Weet iemand als je een pagina terug gaat , dat ie dan de pagina opnieuw laad,
weet iemand hoe


alvast bedankt
 
Gewoon met een harde link en niet met history.go(-1).

Ik zie dat het inloggen nu werkt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan