Dit is een stuk code dat anderhalf jaar geleden nog perfect werkte. Nu probeerde ik de site terug te openen (was enkel gesloten door een redirect), maar opeens werken een aantal key functionaliteiten niet meer, waaronder de login en authenticatie. Ik heb niets veranderd aan de code, maar de site wel verhuisd van dennisclaes.com naar dennisclaes.be Zelfde hosting, zelfde server, zelfde database.

Onderstaand stuk code doet (deed):

1) wachtwoord ontvangen van de login pagina
2) checken of die gebruiker nog actief is en of hij niet geblokkeerd is
3) checken of er meerdere gebruikers zijn met hetzelfde wachtwoord (don't ask ...:-) )
4) een sessie variabele invullen met de naam van de gebruiker
5) indien gewenst een cookie invullen zodat die persoon zich volgende keer niet meer hoef aan te melden
6) de gebruiker doorsturen naar de hoofdpagina

In een poging om te debuggen heb ik dat laatste in comment gezet, maar die code wordt TOCH uitgevoerd!!! Onderstaande code resulteert dus in het doorverwijzen naar de hoofdpagina, zonder authenticatie (want daar krijg ik de foumelding dat 'User' een undefined index is).

<?php
header("Cache-Control: private");
header("Pragma: no-cache");
session_start();
?>

<html>
<body>

<?
$Pass = $_POST["pass"];

$db = mysql_connect("******", "******", "******");
mysql_select_db("******",$db);

$sql = "Select Naam FROM ****** WHERE Wachtwoord = '" . $Pass . "' AND Actief='1' AND Blocked = 0";
$result = mysql_query($sql, $db);
if ($result === false) die(mysql_error());

$num=mysql_numrows($result);

if($num == 0)
{
echo "Wachtwoord is verkeerd of uw account is nog niet actief";
}
else
{
if($num > 1)
{
echo "Kan u niet inloggen momenteel, neem contact op met Dennis Claes: [email protected]";
}
else
{
$_SESSION['User'] = mysql_result($result, $i, "Naam");

if($_POST['Onthouden'] == true)
{
setcookie("Gebruiker", mysql_result($result, $i, "Naam"), time()+(3600*24*365));
}
//echo "<script>window.location='poker.php'</script>";
}
}

mysql_close($db);
?>

</body>
</html>

Wanneer ik de regel code die de gebruiker doorverwijst, gewoon wis, dan krijg ik de volgende letterlijke output in mijn browser:

1) { echo "Kan u niet inloggen momenteel, neem contact op met Dennis Claes: [email protected]"; } else { $_SESSION['User'] = mysql_result($result, $i, "Naam"); if($_POST['Onthouden'] == true) { setcookie("Gebruiker", mysql_result($result, $i, "Naam"), time()+(3600*24*365)); } } } mysql_close($db); ?>

In mijn .htacces staat reeds php_flag display_errors "1"

Heeft iemand een idee waarom mijn code na anderhalf jaar, zomaar opeens niet meer werkt? En waarom ik een deel van de code als output krijg in mijn browser?
I know, dit is een project dat in 2010 gestart was met één heel simpel doel: na elke pokeravond het winstsaldo van elke speler ingeven en er een ranking van maken. Toen ik er aan begon kende ik nul, nada, noppes van PHP.

De 4 daaropvolgende jaren kwamen er onvoorziene noden bij zoals inloggen, spelers blokkeren, halfjaarlijkse rankings, maandelijkse rankings, grafieken, VS-statistieken, tot zelfs een pronostieksysteem waarbij er quotes gegenereerd werden op basis van de beschikbare data (bijvoorbeeld: de kans dat persoon A de volgende match meer winst maakt dan persoon B). De spelers konden na verloop van tijd echte ticketjes maken, zoals bij BelgaBet, waarbij ze bijvoorbeeld zetten:
- Persoon X scoort hoger dan Persoon Y
- Persoon A gaat winst maken
- Persoon B gaat verlies maken
- Persoon C gaat de 3 avonden na elkaar winst maken
- ...
En telkens met echt realistische quotes. Ik was er best wel trots op. :-)

Maar omdat er geen voorgedefinieerd plan was, noch fatsoenlijke programmatieskills langs mijn kant, is er altijd bijgeprogrammeerd, waardoor het geheel met haken en ogen aan elkaar hangt. De site bestaat nu uit zowat 100 pagina's, scripts, includes, etc ... Ik ben nu bezig met het te strippen van een aantal functionaliteiten en terug up and running te krijgen, maar heb niet de tijd om terug 4 jaren er aan te gaan programmeren. Als het werkt ben ik tevreden. Het is zeker niets publieks ofzo, gewoon enkel voor een paar kameraden.

Reageren