Avatar billede hyanen Nybegynder
25. marts 2005 - 12:45 Der er 23 kommentarer og
1 løsning

Php Login

Jeg har fulgt en tutorial og fået lavet det her login script

Congif.php
################
<?php

$action = "loginact.php"; /* The filename that the results will go to. To test script one use loginact.php, for script two use loginmysql.php */



// MySQL Data

$dbuser = "web52230";

$dbpass = "Ikke offentligt :)";

$dbhost = "db.ringler.dk";

$db = "web52230";



// For script one

$admin_user = "admin";

$admin_pass = "admin";



function connect(){

$cnx = mysql_connect($dbhost, $dbuser, $dbpass );

mysql_select_db($db);

}

?>
#########
login.php
#########
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>login</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>



<body>

<form name="form1" method="post" action="<?php include("config.php"); echo $action; ?>">

  <table width="100%" border="0" cellspacing="3" cellpadding="0">

    <tr>

      <td colspan="2">Fill out the form below:</td>

    </tr>

    <tr>

      <td width="9%" height="23">Username:</td>

      <td width="91%"><input name="user" type="text" id="user" size="30"></td>

    </tr>

    <tr>

      <td>Password:</td>

      <td><input name="password" type="password" id="password">
      <input type="submit" name="Submit" value="Login"></td>

    </tr>

  </table>

</form>

</body>

</html>
############
loginact.php
############
<?php

include('config.php');

$post_user = $_POST['user']; // The username which the user posted

$post_pass = $_POST['password']; // The password which the user posted



$cookie = $_COOKIE['admin']; // This is the cookie which we will use



if(isset($cookie)){ // Checks if the cookie is already set

echo "You are already logged in!"; // tells them they are already logged in if the cookie is set

}

else {

if($post_user==$admin_user && $post_pass==$admin_pass){ // if the posted username and password match the ones we have already set

setcookie("adminstrator","md5($post_user)",time()+3600*48);

echo "You are now logged in!";

}

else {

echo "Your login failed.";

}

}

?>
########
loginmysql.php
########
<?php

include('config.php');

$post_user = $_POST['user'];

$post_pass = $_POST['password'];



connect();



$q = mysql_query("SELECT * FROM login WHERE user='$post_user' AND pass='$post_pass'");

$n = mysql_num_rows($q);

if($n==0){

echo "No user was found with them details. Please make sure the information you entered was correct.";

}

if($n==1){

setcookie("admin","md5($post_user)",time()+3600*48);

echo "You are now logged in as $post_user";

}

?>
########

i min mysql database er der 2 brugere
Føste:
Id:1 User:2pac Pass:michael
Anden:
Id:2 User:pop Pass:123

Hjæælp :)
Avatar billede jaw Nybegynder
25. marts 2005 - 12:51 #1
Og hvad er der så galt?
Avatar billede detox Nybegynder
25. marts 2005 - 12:52 #2
Ser ud til du skal rette:

$action = "loginact.php"; /* The filename that the results will go to. To test script one use loginact.php, for script two use loginmysql.php */

til:

$action = "loginmysql.php"; /* The filename that the results will go to. To test script one use loginact.php, for script two use loginmysql.php */
Avatar billede hyanen Nybegynder
25. marts 2005 - 12:53 #3
når jeg skriver Admin//Admin når jeg skal logge ind skriver den

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web52230/Logind med Mysql og Cookie/config.php:2) in /usr/home/web/web52230/Logind med Mysql og Cookie/loginact.php on line 25
You are now logged in!

og når jeg skriver 2pac//michael skriver den failed to log in
og i pop//123 det samme
Avatar billede jaw Nybegynder
25. marts 2005 - 12:57 #4
Du prøver at sætte din cookie efter du har haft et output til skærmen. Kig evt. efter om du har nogen <mellemrum> eller lign. før dit start <?-tag i config.php og loginact.php
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:00 #5
skriver den når man ændrer til loginmysql

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/home/web/web52230/Logind med Mysql og Cookie/config.php on line 30

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/home/web/web52230/Logind med Mysql og Cookie/config.php on line 32

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /usr/home/web/web52230/Logind med Mysql og Cookie/config.php on line 32

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/home/web/web52230/Logind med Mysql og Cookie/loginmysql.php on line 15

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /usr/home/web/web52230/Logind med Mysql og Cookie/loginmysql.php on line 15

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/web/web52230/Logind med Mysql og Cookie/loginmysql.php on line 17
Avatar billede detox Nybegynder
25. marts 2005 - 13:03 #6
Prøv at rette:

$dbuser = "web52230";

$dbpass = "Ikke offentligt :)";

$dbhost = "db.ringler.dk";

$db = "web52230";



// For script one

$admin_user = "admin";

$admin_pass = "admin";



function connect(){

$cnx = mysql_connect($dbhost, $dbuser, $dbpass );

mysql_select_db($db);

}

til:

// For script one
$admin_user = "admin";
$admin_pass = "admin";

function connect(){
$dbuser = "web52230";
$dbpass = "Ikke offentligt :)";
$dbhost = "db.ringler.dk";
$db = "web52230";

$cnx = mysql_connect($dbhost, $dbuser, $dbpass );
mysql_select_db($db);
}
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:03 #7
der er ikke nogen mellemrum før <? tag'ne
Avatar billede jaw Nybegynder
25. marts 2005 - 13:03 #8
Ligner forkerte login-info til din database...
Avatar billede detox Nybegynder
25. marts 2005 - 13:08 #9
Du kan med andre ord, ikke bruge dine variabler sat uden for funktionen connect() inde i funktionen.
En anden mulighed er:

// For script one
$admin_user = "admin";
$admin_pass = "admin";

// For script two
define('DBUSER', "web52230");
define('DBPASS', "Ikke offentligt");
define('DBHOST', "db.ringler.dk");
define('DB', "web52230");

function connect(){
  $cnx = mysql_connect(DBHOST, DBUSER, DBPASS);
  mysql_select_db(DB);
}
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:11 #10
hmmm
Avatar billede detox Nybegynder
25. marts 2005 - 13:12 #11
hmmm?
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:16 #12
kan slet ikke følge med.. :O)

prøv lige at skrive hvordan du vil have config.php skal se ud..
Avatar billede detox Nybegynder
25. marts 2005 - 13:18 #13
Fx:

// For script one
$admin_user = "admin";
$admin_pass = "admin";

function connect(){
$dbuser = "web52230";
$dbpass = "Ikke offentligt :)";
$dbhost = "db.ringler.dk";
$db = "web52230";

$cnx = mysql_connect($dbhost, $dbuser, $dbpass ) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
}
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:21 #14
prøver lige :)
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:23 #15
skal action være loginact eller loginmysql ..?
Avatar billede detox Nybegynder
25. marts 2005 - 13:23 #16
loginmysql
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:28 #17
skriver den ved admin//admin
No user was found with them details. Please make sure the information you entered was correct.

####
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web52230/Logind med Mysql og Cookie/config.php:20) in /usr/home/web/web52230/Logind med Mysql og Cookie/loginmysql.php on line 27
You are now logged in as 2pac

skriver den ved 2pac//michael

###

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web52230/Logind med Mysql og Cookie/config.php:20) in /usr/home/web/web52230/Logind med Mysql og Cookie/loginmysql.php on line 27
You are now logged in as pop

skriver den ved pop//123

men skal lige klippes tilbage om 20 min ca
Avatar billede detox Nybegynder
25. marts 2005 - 13:33 #18
Tjek at du ikke har noget output inden <?php i nogen af filerne. Fx mellemrum eller tomme linjer. <?php skal være det absolut første i filerne.
Avatar billede hyanen Nybegynder
25. marts 2005 - 13:57 #19
jeg fandt fejlen til sidt i config efter ?> var der et mellemrum :)

giver du et svar så du kan få dine point..?
Avatar billede hyanen Nybegynder
25. marts 2005 - 14:08 #20
kan du forklare mig hvad den her linje gør..?
(i loginmysql)Gør den så hvis loin og pass er rigtig så kan man sætte den til at gøre et eller andet eller..?
if($n==1){
Avatar billede jaw Nybegynder
25. marts 2005 - 14:11 #21
$n svarer til antallet af rækker i databasen der blev fundet. Derfor, hvis der er 1 bruger der passer på de kriterier du har i din forespørgsel vil den gå videre.
Avatar billede jaw Nybegynder
25. marts 2005 - 14:12 #22
Her bliver den sat: $n = mysql_num_rows($q);
Avatar billede hyanen Nybegynder
25. marts 2005 - 14:14 #23
ok.. :)
Avatar billede detox Nybegynder
25. marts 2005 - 14:53 #24
ok, velbekommen da.
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