Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
User Login Script Id Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
User Login Script Id Problem


 
shekky1
04-11-2005, 04:31 
 
moin

ich habe eine Frage:

Ich habe eine einfache User Registrierungseite gemacht,die mit session funktionert.


hier die Datei reg.html



<form name="form1" method="post" action="signupck.php">

<p>User id
<input type="text" name="user">
</p>
<p>passss
<input type="text" name="pass">
</p>
<p>
<input type="submit" name="Submit" value="Abschicken">
</p>
</form>


und die Datei signupck.php




<?
$dbservertype='mysql';
$servername='localhost';
// username and password to log onto db server
$dbusername='user';
$dbpassword='user';
// name of database
$dbname='db';


connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
}

?>

<?


$user_id=$_POST["user"];
$user_password=$_POST["pass"];

$query=mysql_query("insert into member_user(user_id,user_password) VALUES ('$user_id',PASSWORD('$user_password'))");

echo "<font face='Verdana' size='2' color=green>Welcome, You have successfully signed up<br><br><a href=login.php>Click here to login</a><br></font>";

?>




Die Datei login.php





<?
session_start();

$errorMessage = '';
if (isset($_POST['User']) && isset($_POST['Password'])) {

require("library/config.php");

$userId = $_POST['User'];
$password = $_POST['Password'];

require("library/opendb.php");
dbconnect();
$mysql_link = mysql_connect($dbhost, $dbuname, $dbpass);
$sql = "SELECT user_id
FROM member_user
WHERE user_id = '$userId' AND user_password = PASSWORD('$password')";

$result = mysql_query($sql) or die('Query failed. ' . mysql_error());

if (mysql_num_rows($result) == 1) {
$_SESSION['user_is_logged_in'] = true;
header('Location: main.php');
exit;
} else {
$errorMessage = 'Sorry, wrong user and-or password';
} }
?>




Die Datei logout.php



<?php
session_start();

if (isset($_SESSION['user_is_logged_in'])) {
unset($_SESSION['user_is_logged_in']);
}
header('Location: login.php');
?>





Meine Frage ist :


Wenn sich der Benutzer einloggt er wird zu der Seite header('Location: main.php'); weitergeleitet was der Sinn das Login System ist.

Aber wie kann ich aktuellen Daten von dem Benutzer von dem Datenbank rausholen und in der main.php Seite ausgeben.

ZB:

lDu bist eingelogt:

Dein Name ist : bla bla

Kennung: pass ........ usw. (Die Datenbak Einträge)


Ich habe versucht mit : $_POST["user"] und $_GET["user"]; (von reg.html)

Z.B. $user_id=$_POST["user"];


Aber das ging nicht weil ich die Werten von der Postform in der Datei reg.html Sind,die mit signupck.php verknüft ist.

Wie soll ich es machen wenn ich nicht da zugreiffen kann.

Wenn ich reg.html include geht alles durcheinander :( weil die Methode wird doppelt ausgeführt.


Bitte um Hilfe


Danke

 
xManUx
04-11-2005, 08:22 
 
Ich habe mir deinen Code nur flüchtig angesehen.

Zu deiner primären Frage. Der Sinn ist es, bei einem erfolgreichen Login die SESSION_ID in die Datenbank einzuspeisen. Du benötigst ein Datenbankdesign, welches dir erlaubt anhand der SESSION den User zu identifizieren.

PS: Schau mal unter Tutorials das Beispiel von MrHappiness an. Das sollte das Prinzip verdeutlichen.

 
hhcm
04-11-2005, 08:23 
 
:confused:

login.php

if (mysql_num_rows($result) == 1)
{
$_SESSION['user_is_logged_in'] = true;
$_SESSION['userID'] = $userID;

header('Location: main.php');
exit;
}


main.php

session_start();

echo $_SESSION["userID"];

 
wahsaga
04-11-2005, 10:10 
 
Original geschrieben von xManUx
Der Sinn ist es, bei einem erfolgreichen Login die SESSION_ID in die Datenbank einzuspeisen.
Warum wollen eigentlich so viele Leute hier immer die Session-ID in der Datenbank ablegen?
Ich verstehe nicht, was der Käse soll - an so einer Stelle m.E. absolut überflüssig.

 
shekky1
04-11-2005, 14:47 
 
hhcm Danke dür den Vorlschlag aber es geht nicht so.

wenn ich

############
<?
session_start();
echo $_SESSION["userID"];
?>
############

in der main.php seite einfüge kommte folgedne Fehlermeldung raus.

Notice: A session had already been started - ignoring session_start() in c:\WAMP\www\user\.......\main02.php
Notice: Undefined index: userID in c:\WAMP\.........

 
shekky1
04-11-2005, 14:51 
 
Ok wenn nicht über SESSION

Was schlägst du vor damit ich das Problem lösen kann.

grüss

 
hhcm
04-11-2005, 15:35 
 
Vielleicht postest du mal deinen Aktuellen Quellcode (bitte nicht wieder alles)

main.php sagtest du in deinem letzen Post, die Fehlermeldung (welche übrigens keine ist) sagt aus das in datei main02.php bereits eine Session gestartet wurde..

Was weiss ich wie du dir deinen Code zusammenwürfelst.


header('Location: main.php');

Wenn du in der Datei main.php BEVOR irgendetwas anderes kommt ein session_start() einfügst sollte das funktionieren.
EVTL mit require oder include eingebundene Dateien brauchen kein session_start()....

 
shekky1
04-11-2005, 15:50 
 
Die Datai main.php



<?php
require("protect.php");
include('header.php');
?>

<p> <strong>Benutzerdaten</strong></p>



<?
session_start();
echo $_SESSION["userID"];
?>



?>




die protect.php datei




<?
session_start();
if (!isset($_SESSION['user_is_logged_in']) || $_SESSION['user_is_logged_in'] !== true) {
header('Location: login.php');
exit;
} ?>




und in der Datei header.php stehen nun 2 links mehr nicht.

Grüss

 
hhcm
04-11-2005, 16:10 
 
Wie ich schon sagte du kannst dir bei includeten dateien das session_start sparen...

MUSS die datei protect.php wirklich sein?

Die 2 zeilen kannst du auch in deine main packen...


<?php
session_start();
if (!isset($_SESSION['user_is_logged_in']) || $_SESSION['user_is_logged_in'] !== true) { header('Location: login.php');
exit;
}
include('header.php'); // Da wird etwas drinstehen was nicht funktionieren kann
?> <p> <strong>Benutzerdaten</strong></p> <?
echo $_SESSION["userID"];
?>

 
shekky1
04-11-2005, 16:24 
 
ok soweit so gut aber

Das problem ist :

Notice: Undefined index: userID in c:\WAMP\www\user\\temp\main02.php on line 5

Die Werten der SESSION echo $_SESSION["userID"];
können nicht geholt werden.

Wie soll ich SESSION["userID"] definieren damit sie den Wert von der Postform in "reg.html" hat.

 
hhcm
04-11-2005, 16:59 
 
Und schon wieder main02.php

Was erzählst du denn hier immer von main.php... Ich sehe nirgens main02 !!!!!!!!!!!!

 
tontechniker
04-11-2005, 17:21 
 
1.) solltest du oben mal den code umbrechen
2.) vielleicht hilft dir das:
session_start();
$_SESSION["user_id"] = $die_id_aus_der_datenbank

 
shekky1
05-11-2005, 03:21 
 
Die main.php seite enhät nun die Code was du mir gegeben hast





<?php
session_start();
if (!isset($_SESSION['user_is_logged_in']) || $_SESSION['user_is_logged_in'] !== true) { header('Location: login.php');
exit;
}
include('header.php'); // Da wird etwas drinstehen was nicht funktionieren kann
?> <p> <strong>Benutzerdaten</strong></p> <?
echo $_SESSION["userID"];
?>




Jetzt kommt keine Fehlermeldung aber

wenn ich echo $_SESSION["userID"]; kommt komischerweise nichts raus ??

weiss nicht warum

 
shekky1
05-11-2005, 17:47 
 
Danke habe ich schon hinbekommen

- -

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