Paulchen: Inhalt von zwei strings vergleichen

Hi,

wie kann ich den Inhalt von zwei string vergleichen?
Die if-Abfrage soll nur dann richtig sein, wenn beide sting zu 100% identisch sind.

Hier mein code:

[code lang=php][
<?php
session_start();
?>

<?         $login = ($_SESSION['User']);
    $admin = ($_SESSION['Admin']);
                $blub = file("User/user.text");

	if($login == "")  
	{  
		  
	$login = $admin;  
  
	}  
	  
	$benutzer = substr("$blub[1]" , 32);  
	$benutzer2 = $benutzer;  
	  
	if($benutzer2 == $login)  
	{  
	  
	echo"$benutzer2";  
	echo"Schleife";  
	}  
	  
	else {  
	echo"So geht es leider nicht -.-";	  
	}  
	  
	?>  

/code]

Wo liegt mein Fehler?

Viele Grüße

Paulchen

  1. wie kann ich den Inhalt von zwei string vergleichen?
    Die if-Abfrage soll nur dann richtig sein, wenn beide sting zu 100% identisch sind.

    ich empfehle dir das http://de.selfhtml.org/javascript/sprache/operatoren.htm@title=HIER durchzulesen mit augenmerk auf ===

    1. wie kann ich den Inhalt von zwei string vergleichen?
      Die if-Abfrage soll nur dann richtig sein, wenn beide sting zu 100% identisch sind.

      ich empfehle dir das http://de.selfhtml.org/javascript/sprache/operatoren.htm@title=HIER durchzulesen mit augenmerk auf ===

      Werde ich gleich machen. Wusste nicht, das es auch 3 = gibt. Kannte bis jetzt nur 2.

    2. wie kann ich den Inhalt von zwei string vergleichen?
      Die if-Abfrage soll nur dann richtig sein, wenn beide sting zu 100% identisch sind.

      ich empfehle dir das http://de.selfhtml.org/javascript/sprache/operatoren.htm@title=HIER durchzulesen mit augenmerk auf ===

      Wieso verlinkst du auf einen JavaScript-Artikel wenns um PHP geht?

      Wenn man zwei Strings vergleichen will, ist übrigens strcmp() eine Alternative zu === - in diesem Fall ist der Identical-Operator aber die besser Wahl, denn im Falle eines Unterschieds ist dieser nicht relevant.

  2. Hi,

    wie kann ich den Inhalt von zwei string vergleichen?
    Die if-Abfrage soll nur dann richtig sein, wenn beide sting zu 100% identisch sind.

    Ich rate mal: am Ende von deinem String $benutzer2 ist noch der Zeilenumbruch. Den siehst du in der HTML-Ansicht von deiner Ausgabe nicht. Benutze var_dump() für Debugging-Ausgaben, weil da sinnvolle Begrenzer in der Ausgabe enthalten sind, mit denen du die Strings wirklich richtig ansehen kannst. Dann siehst du, dass die Länge von $login und $benutzer2 wahrscheinlich unterschiedlich ist.

    Ansonsten kürze bitte dein Beispiel soweit, dass wir es ausführen können (Session- und Datei-Abhängigkeit raus, in dem du die erwarteten Daten mal hardkodierst).

    Bis die Tage,
    Matti

    1. Ich danke dir.

      Ein kleines dummes leerzeichen, welches in der .txt Datei zwar nicht drin war, hat sich hinter den string geheftet :)

      1. Ein kleines dummes leerzeichen, welches in der .txt Datei zwar nicht drin war, hat sich hinter den string geheftet :)

        schau dir mal die funktion trim() an die sollte dir helfen solche sachen  zu vermeiden ;)

  3. Nebest deinem Problem:

    • Du legst die Passwörter doch nicht im Klartext ab?

    • Wenn du schon ein File zum Hinterlegen der Nutzerdaten verwendest, nimm doch CSV oder XML - die substr-Geschichte zum Ermitteln des Benutzers ist etwas unpraktisch, wenn der Name mal länger als 32 Zeichen sein sollte.

    • Lass das Umkopieren sein - es verwirrt und macht den Code unleserlich:

    $login = ($_SESSION['User']);  
    $admin = ($_SESSION['Admin']);  
    $login = $admin;
    

    ...

    Hier ist es ggf. schlauer die Benutzerberechtigungen abzulegen

    $_SESSION['user_level']; // 0 = user; 1 = admin (oder sonst wie)