php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Wie bekomme ich den Anmeldenamen zur Brgrüßung auf die erste Seite


 
Alain_S_
07-08-2009, 08:51 
 
Hallo
Ich habe auf meiner kleinen HP ein Mitgliederbereich.
Ich arbeite mit Dreamweaver 8 und habe bereist die Datenbank erstellt mit den BenutzerDaten. Die Anmeldung und alles klappt auch wunderbar. Jetzt hätteich gerne, dass bei jedem Benutzer, der sich auf meiner Page anmeldet mit seinem Benutzernamen brgrüßt wird. ich weiß aber nicht, wie ich das genau machen kann ich vermute mal, dass ich dafür ein verstecktes Feld brauche, ist aber nur eine Vermutung.
Kann mir da vielleicht jemand weiterhelfen?
Gruß
http://www.homepage-forum.de/images/statusicon/user_offline.gif

 
combie
07-08-2009, 10:47 
 
Zum "zeigen" sind versteckte Felde nicht gedacht...
:D Die heiißen ja nicht umsonst "versteckte Felder" :D

Dazu ist ehr schon sowas geeignet:
echo $user->getName();
(falls du denn auch eine User Klasse einsetzt)

 
mkb_webprint
07-08-2009, 11:15 
 
Ich schmeiße mal wieder meinen Lieblingsbegriff in den Ring.

Nimm ne Session her und leg den Username da ab (wenn du die User Daten erfolgreich geprüft hast), den kannst du dann auf deinen Seiten auslesen und entsprechend mit echo anzeigen.


<?php
session_start(); // Gaaaanz wichtig, muss am Anfang der Datei stehen!!!

// Deine Prüfung ob Passwort und so stimmt
//.....
//.....

session_register('benutzername');
$_SESSION['benutzername'] = $deine_benutzernamen_variable;

// Weiterleitung auf die geschützte Seite oder was auch immer
// du nach dem erfolgreichen Login machst

?>


Wenn du den Benutzername jetzt auf einer Seite auslesen willst machst du das so:


<?php
session_start();

echo 'Hallo ' . $_SESSION['benutzername'] . ', schön das du da bist.';

?>


Lies dir einfach mal das durch was du zu Sessions in PHP findest ;-)

 
Alain_S_
07-08-2009, 12:12 
 
Ich schmeiße mal wieder meinen Lieblingsbegriff in den Ring.

Nimm ne Session her und leg den Username da ab (wenn du die User Daten erfolgreich geprüft hast), den kannst du dann auf deinen Seiten auslesen und entsprechend mit echo anzeigen.


Leider habe ich keine erfahrung mit dem Code-
und es klappt irgendwie nie so richtig wenn ich etwas im code einfüge weiß auch nicht warum :-/

ich habe jetzt ein Musterdokument erstellt, und versuche das hier jetzt zu posten. vielleicht mir ja jemand sagen, wo das hin soll :-/

<?php require_once('Connections/Mitglieder_Anmeldung.php'); ?>
<?php
mysql_select_db($database_Mitglieder_Anmeldung, $Mitglieder_Anmeldung);
$query_mitglieder_anmeldung = "SELECT * FROM mitglieder_anmeldung ORDER BY Vorname ASC";
$mitglieder_anmeldung = mysql_query($query_mitglieder_anmeldung, $Mitglieder_Anmeldung) or die(mysql_error());
$row_mitglieder_anmeldung = mysql_fetch_assoc($mitglieder_anmeldung);
$totalRows_mitglieder_anmeldung = mysql_num_rows($mitglieder_anmeldung);
?><?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['textfield'])) {
$loginUsername=$_POST['textfield'];
$password=$_POST['textfield2'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "666.php";
$MM_redirectLoginFailed = "777.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_Mitglieder_Anmeldung, $Mitglieder_Anmeldung);

$LoginRS__query=sprintf("SELECT Benutzername, Passwort FROM mitglieder_anmeldung WHERE Benutzername='%s' AND Passwort='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $Mitglieder_Anmeldung) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";

//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
<label for="textfield">Benutzername</label>
<input type="text" name="textfield" id="textfield" />
<label for="label"></label>
<br />
<label for="label">Passwort</label>
<input type="text" name="textfield2" id="label" />
<label for="Submit"></label>
<br />
<input type="submit" name="Submit" value="anmelden" id="Submit" />
</form>
</body>
</html>
<?php
mysql_free_result($mitglieder_anmeldung);
?>


kann man mit dieser Variante auch in Aktualisierungsformular für die Datenbank den Benutzernamen so einfügen, dass man nur seinen Benutzernamen in der Datenbank einfügen kann?

 
combie
07-08-2009, 12:48 
 
session_register(); ist total veraltet! Schnell wieder vergessen....
addslashes() ist die falsche Funktion. Man verwendet mysql_real_escape_string()
Deine Location Header entsprechen nicht der HTTP Spezifikation.

$_SERVER['PHP_SELF'] ermöglicht oft XSS Attacken

 
Alain_S_
07-08-2009, 13:11 
 
session_register(); ist total veraltet! Schnell wieder vergessen....
addslashes() ist die falsche Funktion. Man verwendet mysql_real_escape_string()
Deine Location Header entsprechen nicht der HTTP Spezifikation.

$_SERVER['PHP_SELF'] ermöglicht oft XSS Attacken

Ja das glaube ich dir gerne, ich habe ja keine Ahnung, aber ich benötige eine einfache Möglichkeit da ich noch Anfänger bin. Wenn die Seite mal läuft, kann ich in Ruhe mich mit der Sache auseinandersetzen und dann auch noch Änderungen vornehmen.
Aber bis dahin versuche ich es mit session_register()
wenn mir jemand sagen könnte, wo ich das in meinem Code (habe ihn in einem oberen Beitrag gepostet) einfügen muss.
Alain

 
combie
07-08-2009, 13:18 
 
Klar, kannst du versuchen mit deiner Teetasse einen Nagel in die Wand zu kloppen...:cool:

Aber lass es dir gesagt sein:
Die gleichzeitige Verwendung von session_register() und $_SESSION in ein und demselben Script ist einfach nur *** !!

 
Alain_S_
07-08-2009, 13:28 
 
Klar, kannst du versuchen mit deiner Teetasse einen Nagel in die Wand zu kloppen...:cool:

Aber lass es dir gesagt sein:
Die gleichzeitige Verwendung von session_register() und $_SESSION in ein und demselben Script ist einfach nur *** !!

Was machst du mir dann für einen Vorschlag, ich habe oben mein Code gepostet, wen du mir sagen kannst, wo ich deine Möglichkeit einfügen muss und wie ich das nachher auf den nächsten Seiten wieder intrgrieren kann mache ich es natürlich auch anders. Bin da ja nicht krampfhaft auf etwas fixiert. Es muss am Ende nur klappen ;-)
Alain

 
combie
07-08-2009, 13:36 
 
mkb_webprint hats dir doch schon vorgeführt!!
Du brauchst da nur das session_register(); wegzulassen und deine Index Bezeichner einzusetzen.

 
Alain_S_
07-08-2009, 14:54 
 
mkb_webprint hats dir doch schon vorgeführt!!
Du brauchst da nur das session_register(); wegzulassen und deine Index Bezeichner einzusetzen.

Seltsam, ich habe es jetzt schon in so vielen Zeilen versucht einzufügen, habe die richtige Zeile scheinbar noch nicht gefunden. Es sagt mit immer einen Felher, in der Zeile wo ich die Teile eingefügt habe.... habe der ersten Teil wie beschrieben ganz oben eingefügt, das ist scheinbar falsch.
Wie finde ich denn dir richtige Zeile?
Alain

 
combie
07-08-2009, 15:13 
 
Du könntest die Fehlermeldung aufmerksam lesen. Da sagt dir PHP was ihm nicht passt.
Falls du du dich damit total überfordert fühlst, könntest du die Fehlermeldung und den fehlerhaften Code auch posten, damit man mal sieht, welchen Bock du da schießt.

Wie finde ich denn dir richtige Zeile?

Jetzt hätteich gerne, dass bei jedem Benutzer, der sich auf meiner Page anmeldet mit seinem Benutzernamen brgrüßt wird.
Dort wird es doch wohl einen "Ort" geben....
Aus dem "Ort" in der Darstellung sollte sich der "Ort" im Code ableiten lassen. Woher sollten wir deine Seiten kennen?

 
Alain_S_
07-08-2009, 16:37 
 
Ok die Fehlermeldung ist nun behoben, funktionieren tut es trotzdem noch nicht
Ich habe den ersten Befehl hier eingefügt:
mysql_select_db($database_Mitglieder_Anmeldung, $Mitglieder_Anmeldung);
$query_mitglieder_anmeldung = "SELECT * FROM mitglieder_anmeldung ORDER BY Vorname ASC";
$mitglieder_anmeldung = mysql_query($query_mitglieder_anmeldung, $Mitglieder_Anmeldung) or die(mysql_error());
$row_mitglieder_anmeldung = mysql_fetch_assoc($mitglieder_anmeldung);
$totalRows_mitglieder_anmeldung = mysql_num_rows($mitglieder_anmeldung);
?>
<?php
session_start(); // Gaaaanz wichtig, muss am Anfang der Datei stehen!!!..................................
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

und den zweiten hier:
$LoginRS = mysql_query($LoginRS__query, $Mitglieder_Anmeldung) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";

session_register('benutzername');
$_SESSION['benutzername'] = $deine_benutzernamen_variable;

// Weiterleitung auf die geschützte Seite oder was auch immer
// du nach dem erfolgreichen Login machst

//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];

Ich weiß aber nicht was der Index Bezeichner ist wo finde ich das? Meinst du den Namen der Anmeldeseite?

Alain

 
combie
07-08-2009, 16:47 
 
Mache dich über arrays und ihren Index kundig.
Denke logisch!
Lerne PHP
Und ignoriere nicht alle Ansagen, welche dich erreichen.


Beispiel:
Gaaaanz wichtig, muss am Anfang der Datei stehen!!!
Was ist daran nicht zu verstehen?
------------
session_start();
if (!isset($_SESSION)) {
session_start();
}
Was soll das sein?
Doppelt hält besser?
-------------------
Du brauchst da nur das session_register(); wegzulassen und ........
Was hast du daran nicht verstanden?

Nein!
So macht mir das keinen Spass dir zu helfen.

 
Alain_S_
07-08-2009, 17:36 
 
Mache dich über arrays und ihren Index kundig.
Denke logisch!
Lerne PHP
Und ignoriere nicht alle Ansagen, welche dich erreichen.


Sorry, ich kann für eine benötigte Funktion schlecht PHP lernen, dafür braucht man Monate und sehr viel Zeit. Der Rest meine HP wäre ja schon fertig.
es geht nur um diese Funktion.

Deshalb habe ich den Code hier gepostet und gehofft, dass man mir hier sagen kann, was ich in welche Zeile einfügen muss.
Alain

 
mkb_webprint
07-08-2009, 19:18 
 
Sorry, ich kann für eine benötigte Funktion schlecht PHP lernen, dafür braucht man Monate und sehr viel Zeit. Der Rest meine HP wäre ja schon fertig.
es geht nur um diese Funktion.

Deshalb habe ich den Code hier gepostet und gehofft, dass man mir hier sagen kann, was ich in welche Zeile einfügen muss.
Alain

Ich kann combie zustimmen, langsam macht es keinen Spaß mehr...
Gib mir dein Script, 20€ und ich bastel es dir so wie es sein muss.

Ansonsten ist dir glaub ich nicht mehr zu helfen, sorry...

 
Alain_S_
07-08-2009, 20:52 
 
Ich kann combie zustimmen, langsam macht es keinen Spaß mehr...



Ja kann ich ein bisschen verstehen, Profis und Anfänger sind halt einfach nicht auch der gleichen Wellenlänge ;-)
Aber Jetzt habe selbst ich das hinbekommen.
Bedanke und entschuldige mich in diesem Sinne.
Alain

-archiv-

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:38 Uhr.