Avatar billede iceicepepsi Nybegynder
19. marts 2012 - 18:27 Der er 11 kommentarer og
1 løsning

login

hvordan laver jeg noget lignede så når man logger ind
står der for eksempel godaften godmorgen godeftermiddag  kim Hansen efter hvad tid det er på dagen mit login ser sådan ud


(index.php )

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>


(checklogin.php)

<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

(login_success.php )

// Check if session is not registered , redirect back to main page.
// Put this code in first line of web page.
<?
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
?>

<html>
<body>
Login Successful
</body>
</html>

(Logout.php)

// Put this code in first line of web page.
<?
session_start();
session_destroy();
?>

i min mysql database har jeg følgende felter username password name vis nogen kan lave en code der kunne bruges ville de være til stor hjælp da jeg ikke kan se mig ud af det
Avatar billede inteeeL Nybegynder
19. marts 2012 - 20:19 #1
Først og fremmest må det siges, at session_register har været deprecated siden PHP 5.3.0 og direkte fjernet i PHP 5.4.0. Derudover kan det varmt anbefales at kaste dig ud i mysqli og prepared statements (http://www.eksperten.dk/guide/1480) i stedet for den forældede mysql API. Det vil øge sikkerheden markant.

Tilbage til spørgsmålet. Du kan godt få udskrevet en velkomstbesked alt efter tiden på dagen. Jeg har lavet en funktion (utestet), som burde kunne klare det for dig. Så må du selv implementere det i dit system.

<?php

function DisplayWelcomeMsg($username) {
    $time = date("H"); //Stort H = timer i 24-timers-format
    if($time <= 9) {
        return "Godmorgen $username";
    }
    elseif(($time > 9) && ($time <= 13)) {
        return "God formiddag $username";
    }
    elseif(($time > 13) && ($time <= 17)) {
        return "God eftermiddag $username";
    }
    else {
        return "Godaften $username";
    }
}   
   
?>

Spørg endelig hvis du har spørgsmål.
Avatar billede inteeeL Nybegynder
19. marts 2012 - 20:21 #2
<?php

function DisplayWelcomeMsg($username) {
    $time = date("H"); //Stort H = timer i 24-timers-format
    if($time <= 09) {
        return "Godmorgen $username";
    }
    elseif(($time > 09) && ($time <= 13)) {
        return "God formiddag $username";
    }
    elseif(($time > 13) && ($time <= 17)) {
        return "God eftermiddag $username";
    }
    else {
        return "Godaften $username";
    }
}   
   
?>


Jeg glemte lige et 0 før 9.
Avatar billede iceicepepsi Nybegynder
19. marts 2012 - 22:28 #3
det virker ikke får bare en blank side
Avatar billede inteeeL Nybegynder
19. marts 2012 - 23:07 #4
Som jeg nævnte før, skal du implementere det i dit system; altså skal du kalde funktionen på den respektive side, hvor (endvidere) værdien for $username skal være tilsvarende for brugernavnet - mit gæt vil være $_SESSION['username'].

Du kan teste funktionen ved at kalde den på følgende måde:
<?php

function DisplayWelcomeMsg($username) {
    $time = date("H"); //Stort H = timer i 24-timers-format
    if($time <= 09) {
        return "Godmorgen $username";
    }
    elseif(($time > 09) && ($time <= 13)) {
        return "God formiddag $username";
    }
    elseif(($time > 13) && ($time <= 17)) {
        return "God eftermiddag $username";
    }
    else {
        return "Godaften $username";
    }
}

echo DisplayWelcomeMsg("Grethe");
   
?>


Du skal dog nok have fat i $_SESSION['myusername'], når du skal hente navnet:
echo DisplayWelcomeMsg($_SESSION['myusername']);
Avatar billede iceicepepsi Nybegynder
20. marts 2012 - 19:18 #5
har teste det det virker fint har bare lige et problem med dene code echo DisplayWelcomeMsg($_SESSION['myusername']); den viser ikke noget navn men vil gerne have den til at hente det fra mysql jeg har 3 felter username password name i min mysql database
Avatar billede inteeeL Nybegynder
20. marts 2012 - 20:16 #6
Jeg vil igen anbefale dig IKKE at bruge session_register, da det er en depricated funktion at bruge. Se i stedet følgende rettelser:

checklogin.php
<?php

$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT username FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
    // Register $myusername and redirect to file "login_success.php"
    list( $username) = mysql_fetch_row( $result); //Henter brugernavnet fra databasen
    $_SESSION['myusername'] = $username; //Sætter en session for det pågældende brugernavn
    header("location:login_success.php");
}
else {
    echo "Wrong Username or Password";
}

?>
login_success.php
// Check if $_SESSION['myusername'] is set.
// Put this code in first line of web page.
<?php
session_start();
if(!isset($_SESSION['myusername']
    header("location:index.php");
}

function DisplayWelcomeMsg($username) {
    $time = date("H"); //Stort H = timer i 24-timers-format
    if($time <= 09) {
        return "Godmorgen $username";
    }
    elseif(($time > 09) && ($time <= 13)) {
        return "God formiddag $username";
    }
    elseif(($time > 13) && ($time <= 17)) {
        return "God eftermiddag $username";
    }
    else {
        return "Godaften $username";
    }
}

?>

<html>
<body>
<p>Login Successful</p>
<?php echo '<p>'.DisplayWelcomeMsg($_SESSION['myusername']).'</p>'; ?>
</body>
</html>


Det burde virke, umiddelbart. Jeg vil dog igen anbefale dig at benytte end mere sikker kodeopbygning - eksempelvis med mysqli og prepared statements.
Avatar billede inteeeL Nybegynder
20. marts 2012 - 20:19 #7
Uha, der var lige nogle småfejl i begge koder - du får dem lig her i stedet.

checklogin.php
<?php

$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT username FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
    // Register $myusername and redirect to file "login_success.php"
    $_SESSION['myusername'] = $myusername; //Sætter en session for det pågældende brugernavn
    header("location:login_success.php");
}
else {
    echo "Wrong Username or Password";
}

?>


login_success.php
// Check if $_SESSION['myusername'] is set.
// Put this code in first line of web page.
<?php
session_start();
if(!isset($_SESSION['myusername'])) {
    header("location:index.php");
}

function DisplayWelcomeMsg($username) {
    $time = date("H"); //Stort H = timer i 24-timers-format
    if($time <= 09) {
        return "Godmorgen $username";
    }
    elseif(($time > 09) && ($time <= 13)) {
        return "God formiddag $username";
    }
    elseif(($time > 13) && ($time <= 17)) {
        return "God eftermiddag $username";
    }
    else {
        return "Godaften $username";
    }
}

?>

<html>
<body>
<p>Login Successful</p>
<?php echo '<p>'.DisplayWelcomeMsg($_SESSION['myusername']).'</p>'; ?>
</body>
</html>
Avatar billede iceicepepsi Nybegynder
20. marts 2012 - 21:37 #8
efter at rette koderne kan jeg ikke rigtig logge ind er det muligt at du kan kode et nyt login med <?php

function DisplayWelcomeMsg($username) {
    $time = date("H"); //Stort H = timer i 24-timers-format
    if($time <= 09) {
        return "Godmorgen $username";
    }
    elseif(($time > 09) && ($time <= 13)) {
        return "God formiddag $username";
    }
    elseif(($time > 13) && ($time <= 17)) {
        return "God eftermiddag $username";
    }
    else {
        return "Godaften $username";
    }
}

echo DisplayWelcomeMsg("Grethe");
   
?> den i og sende det som en rar eller zip fil
Avatar billede inteeeL Nybegynder
20. marts 2012 - 22:06 #9
Det har jeg desværre ikke tid og overskud til. Prøv dig frem og stil spørgsmål, hvis du støder i problemer. Hvorfor kan du ikke logge ind?

Funktionen var ment som en implementeringsmulighed - dette må du rode lidt med. :-)
Avatar billede Milla-Tigerdyr Praktikant
21. marts 2012 - 16:06 #10
Hvor stor erfaring med PHP har du? For jeg kan da se med et øjeglimt at du ikke selv har bygget den kode, den har du fået fra phpeasystep. :)

Men det lyder ikke umiddelbart som om du har SÅ meget erfaring, eller tager jeg fejl?
Avatar billede iceicepepsi Nybegynder
21. maj 2012 - 00:15 #11
wingisites.com
Avatar billede inteeeL Nybegynder
22. maj 2012 - 08:07 #12
Jeg gav dig løsningen til dit spørgsmål, og alligevel afviser du mit svar. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester