Robert B.: Warnung! Beware! Uwaga!

Beitrag lesen

Moin,

Ich hab mal den entscheidenden Code hier dargestellt:

… der nicht nur mit ~~~, sondern ~~~php sogar farbig wird …

$a_auth = file("tn-auth", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
  • Was passiert, wenn die Datei aus irgendeinem Grund nicht gelesen werden kann?
  • Liegt die Datei im gleichen Verzeichnis wie dein Skript und ist beides von außen zugreifbar? Kann ich also in der Adresszeile des Browsers einfach den Namen deines Skripts durch tn-auth ersetzen und bekomme dann die Datei angezeigt?
if (trim($a_auth[0]) == "tn-auth")# Dateiprüfung

Was soll das genau prüfen?

{
	foreach ($a_auth as $s_auth)
	{
		# $x[0] = Anmeldename, $x[1] = Passwort
		$x = explode("↔", $s_auth, 2);
		if (count($x) < 2) continue;
					
		$b_name = trim($aa_post["bname"]) == trim($x[0]);
		$b_pass = trim($aa_post["pass"]) == trim($x[1]);
					
		# Nutzername/Passwort prüfen, Nutzer/Zeit speichern
		if ($b_name && $b_pass)

An dieser Stelle stimmen also „bname“ und „pass“ mit den Werten aus der Datei überein. Warum musst du jetzt noch einmal durch alle Nutzer iterieren?

		{
			foreach ($a_user as $s_user)
			{
				$patt = '/name_nutzer_b64↔(.+)(?:\s.+)*\szugang_b64↔'.$x[0].'/m';

Ist sichergestellt, dass in $x[0] nichts steht, dass hier deinen regulären Ausdruck stören kann?

An die error.log auf dem Server komme ich vermutlich nicht 'ran, ich frage aber mal nach.

Aber das error_reporting und Prüfen von Rückgabewerten kannst du in deinem Script tun.

Viele Grüße
Robert