hjælp til nybegynder- PHP & MySQL

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
jensa
Begynder
Indlæg:5
Tilmeldt:11. feb 2015, 23:08
hjælp til nybegynder- PHP & MySQL

Indlæg af jensa » 12. feb 2015, 15:30

Edited af Cristian - Moderator
  1. Fjernet login oplysninger fra post til one.com DB.
  2. Kommet kode i code tags.
  3. Fjernet farver fra post.
  4. Lavet headlines bold.
Hej NP.dk

Jeg er netop begyndt , efter langt tilløb, at lave min egen hjemmeside, og after lidt "bøvl" kom det til at virke, så html var trods alt ikke så svært, meeen på min side skal jeg have en lukket side der kræver login.
Så i gang med php, her er NemProgrammering en stor hjælp.
Rode med php og endelig lykkedes det at få strikket noget sammen, en database har jeg hos one.com og sat den op med deres oplysninger:
Host: xxxxxxxx.dk.mysql
Database:xxxxxxxx_dk
Brugernavn (User): xxxxxxxx_dk
Adgangskode (Password): yyuuxx
Tabel: mmmmmm
denne kan jeg connecte til, men herfra går der "ged" i den, er der nogen her i dette forum der kan se, hvad problemet er?? Please
min login PHP-fil er som følger:
Fejlbeskeder fra server står under denne kode.

Kode: Vælg alt

<!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=UTF-8" />
<title>chech.php</title>
</head>

<body>



session_start();

$host = "xxxxxxl";
$username = "xxxxxx";
$password = "xxxxxx";
$db_name = "xxxxxx";
$tbl_name = "person";

if ($_POST['myusername']  && $_POST['mypassword']) {
	// conect til mysql
	mysql_connect("$host", "$username", "$password") or die ("kan ikke oprette forbindelse til database");
	mysql_select_db("$db_name") or die ("kan ikke finde den ønskede tabel");
	
	$myusername = $_POST['myusername'];
	$mypassword = $_POST['mypassword'];
	
	$sql="SELECT * FROM $tbl_name WHERE username = '$myusername' AND password ='$mypassword'";
	$result=mysql_query(sql);
	
	$count = mysql_num_rows($result);	
	 if ($count == 1) {
		 session_register("myusername");
		 session_register("mypassword");
		 header ("location: login_succes.php");			 
}
else{	
	echo "Du har indtaste et forkert brugernavn eller password"; 	
	header ('refresh: 3; login.php');	
}
}
else {
	
	echo "du skal indtaste et brugernavn og et password";	
	header ('refresh: 3; login.php');	
}
?>
</body>
</html>
fejlmeddelser når jeg “ankommer” til login siden:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/5/6/7/xxxxxxxx.dk/httpd.www/login.php:16) in /customers/5/6/7/xxxxxxxxxxx.dk/httpd.www/login.php on line 17 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/5/6/7/xxxxxxxxx.dk/httpd.www/login.php:16) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/login.php on line 17

fejlmeddelser når jeg prøver at logge ind uden at indtaste i felterne (username og password) :

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php:12) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 14 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php:12) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 14 du skal indtaste et brugernavn og et password Warning: Cannot modify header information - headers already sent by (output started at /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php:12) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 51

fejlmeddelser når jeg prøver at logge ind med indtastning (username og password) :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php:12) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 14 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php:12) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 14 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 33 Du har indtaste et forkert brugernavn eller password Warning: Cannot modify header information - headers already sent by (output started at /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php:12) in /customers/5/6/7/xxxxxxxxxx.dk/httpd.www/chech.php on line 44

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jepperask » 14. feb 2015, 00:36

Det er lidt svært at finde sammenhængen mellem fejlbeskederne og den kode du har indsat - er det hele din login.php?

Prøv nogle af de her ting igennem:

1. Fjern al den html du har til stå i starten, hvis det alligevel ikke gør noget (start evt. med at fjerne chech.php fra <head> (ved ikke om det gør noget, eller om det er en reél fil?)).
2. Du mangler at 'starte' dit php, ved at indsætte <?php lige inden session_start();.
3. Udkommentér ALT og start fra en ende af.. Se om din kode viser sig blank uden at den gør noget, tag derefter dit PHP fra en ende af og find hvor fejlen virkelig sker.

Fejlkoden siger at PHP prøver at sende headers ud, på et tidspunkt hvor det allerede er sket - og det kan PHP ikke.

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af ThomasI » 14. feb 2015, 14:49

God mod-arbejde Cristian!

@jensa - del aldrig dine koder osv på åbne fora, da det kan blive brugt til at hacke dine hjemmeside.

Det virker til at det er din session der ødelægger det hele. Hvad sker der hvis du fjerner session_start();? Nogle gannge kan det være smart at fjerne forskellige kodestykker for på den måde at finde frem til hvor problemet ligger.

Så fjern session_start();. Fungerer siden nu? Hvis ja, undersøg, hvordan session_start(); bør sættes korrekt op. Hvis det ikke virker, hvilken fejl får du så?

jensa
Begynder
Indlæg:5
Tilmeldt:11. feb 2015, 23:08

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jensa » 14. feb 2015, 14:59

Hej Jeppe.

Tak for svar.
På min hjemmeside har jeg lavet et link til en loginside (login.php), det er en fil , hvor jeg har mine login-felter og “OK”-knap og dette link virker, jeg kommer til loginside.
Nu har jeg en “check.php” fil, det er den du ser i mit første indlæg. Denne fil skal checke det indtastede, og derefter stille videre til, enten login_sucess.php (her er vi så inde på den lukkede del af min hjemmeside..ok?) eller stille tilbage til login.php - og det skal der ved intet indtastet eller forkert indtastet. som jeg har opfattet det skulle det ved hjælp af :  header ('refresh: 3; login.php'); , men det sker ikke.
1: ved intet indtastet - svar = "du skal indtaste et brugernavn og et password"
2: Ved forkert indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
3: Ved korrekt indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
Som jeg ser det, tyder det på at check.php godt kan se database, for når jeg går ind og retter password i DB giver den følgende svar = "kan ikke oprette forbindelse til database"
Når jeg på samme måde retter i tabel-navn for jeg følgende svar = “Du har indtaste et forkert brugernavn eller password” ??????
I ingen af ovenstående eksempler refresher den ikke tilbage til login.php. ??
Håber dette giver mening for garvet programmør!

mvh jensa

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jepperask » 14. feb 2015, 15:32

jensa skrev:Hej Jeppe.

Tak for svar.
På min hjemmeside har jeg lavet et link til en loginside (login.php), det er en fil , hvor jeg har mine login-felter og “OK”-knap og dette link virker, jeg kommer til loginside.
Nu har jeg en “check.php” fil, det er den du ser i mit første indlæg. Denne fil skal checke det indtastede, og derefter stille videre til, enten login_sucess.php (her er vi så inde på den lukkede del af min hjemmeside..ok?) eller stille tilbage til login.php - og det skal der ved intet indtastet eller forkert indtastet. som jeg har opfattet det skulle det ved hjælp af :  header ('refresh: 3; login.php'); , men det sker ikke.
1: ved intet indtastet - svar = "du skal indtaste et brugernavn og et password"
2: Ved forkert indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
3: Ved korrekt indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
Som jeg ser det, tyder det på at check.php godt kan se database, for når jeg går ind og retter password i DB giver den følgende svar = "kan ikke oprette forbindelse til database"
Når jeg på samme måde retter i tabel-navn for jeg følgende svar = “Du har indtaste et forkert brugernavn eller password” ??????
I ingen af ovenstående eksempler refresher den ikke tilbage til login.php. ??
Håber dette giver mening for garvet programmør!

mvh jensa
Ah okay, jeg forstår. Hvad står der i login.php ved linje 16-17?

jensa
Begynder
Indlæg:5
Tilmeldt:11. feb 2015, 23:08

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jensa » 14. feb 2015, 16:54

Husk venligst at komme din kode i code tags i din post.
Det gør du ved at markere din kode og tryk på code knappen under subject
Vh cristian

jepperask skrev:
jensa skrev:Hej Jeppe.

Tak for svar.
På min hjemmeside har jeg lavet et link til en loginside (login.php), det er en fil , hvor jeg har mine login-felter og “OK”-knap og dette link virker, jeg kommer til loginside.
Nu har jeg en “check.php” fil, det er den du ser i mit første indlæg. Denne fil skal checke det indtastede, og derefter stille videre til, enten login_sucess.php (her er vi så inde på den lukkede del af min hjemmeside..ok?) eller stille tilbage til login.php - og det skal der ved intet indtastet eller forkert indtastet. som jeg har opfattet det skulle det ved hjælp af :  header ('refresh: 3; login.php'); , men det sker ikke.
1: ved intet indtastet - svar = "du skal indtaste et brugernavn og et password"
2: Ved forkert indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
3: Ved korrekt indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
Som jeg ser det, tyder det på at check.php godt kan se database, for når jeg går ind og retter password i DB giver den følgende svar = "kan ikke oprette forbindelse til database"
Når jeg på samme måde retter i tabel-navn for jeg følgende svar = “Du har indtaste et forkert brugernavn eller password” ??????
I ingen af ovenstående eksempler refresher den ikke tilbage til login.php. ??
Håber dette giver mening for garvet programmør!

mvh jensa
Ah okay, jeg forstår. Hvad står der i login.php ved linje 16-17?
her får du hele ny_login.php-filen:

Kode: Vælg alt

<!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=UTF-8" />
<title>Untitled Document</title>
</head>

<body>



<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>Familie Login </strong></td>
</tr>
<tr>
<td width="78">brugernavn</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>kodeord</td>
<td>:</td>
<td><input name="mypassword" type="password" 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>

</body>
</html>

jensa
Begynder
Indlæg:5
Tilmeldt:11. feb 2015, 23:08

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jensa » 14. feb 2015, 16:57

jepperask skrev:
jensa skrev:Hej Jeppe.

Tak for svar.
På min hjemmeside har jeg lavet et link til en loginside (login.php), det er en fil , hvor jeg har mine login-felter og “OK”-knap og dette link virker, jeg kommer til loginside.
Nu har jeg en “check.php” fil, det er den du ser i mit første indlæg. Denne fil skal checke det indtastede, og derefter stille videre til, enten login_sucess.php (her er vi så inde på den lukkede del af min hjemmeside..ok?) eller stille tilbage til login.php - og det skal der ved intet indtastet eller forkert indtastet. som jeg har opfattet det skulle det ved hjælp af :  header ('refresh: 3; login.php'); , men det sker ikke.
1: ved intet indtastet - svar = "du skal indtaste et brugernavn og et password"
2: Ved forkert indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
3: Ved korrekt indtastet - svar = "Du har indtaste et forkert brugernavn eller password"
Som jeg ser det, tyder det på at check.php godt kan se database, for når jeg går ind og retter password i DB giver den følgende svar = "kan ikke oprette forbindelse til database"
Når jeg på samme måde retter i tabel-navn for jeg følgende svar = “Du har indtaste et forkert brugernavn eller password” ??????
I ingen af ovenstående eksempler refresher den ikke tilbage til login.php. ??
Håber dette giver mening for garvet programmør!

mvh jensa
Ah okay, jeg forstår. Hvad står der i login.php ved linje 16-17?

denne linie har nr: 12 <table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jepperask » 14. feb 2015, 17:26

ny_login.php? - er det en anden fil end login.php?

Jeg kigger egentlig udelukkende på fejlkoden.. Den første nævner login.php:16 (filen login.php, linje 16).

Den næste nævner chech.php linje 12 (din session_start();).

Hvad sker der hvis du ændrer:

Kode: Vælg alt

echo "Du har indtaste et forkert brugernavn eller password"; 
header ('refresh: 3; login.php'); 
.. til:

Kode: Vælg alt

header('Refresh: 3; url=login.php');
echo "Du har indtaste et forkert brugernavn eller password"; 
Har du prøvet at udkommentere det hele, og starte fra en ende af og se hvornår fejlen opstår?

jensa
Begynder
Indlæg:5
Tilmeldt:11. feb 2015, 23:08

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jensa » 14. feb 2015, 18:29

jepperask skrev:ny_login.php? - er det en anden fil end login.php?

Jeg kigger egentlig udelukkende på fejlkoden.. Den første nævner login.php:16 (filen login.php, linje 16).

Den næste nævner chech.php linje 12 (din session_start();).

Hvad sker der hvis du ændrer:

Kode: Vælg alt

echo "Du har indtaste et forkert brugernavn eller password"; 
header ('refresh: 3; login.php'); 
.. til:

Kode: Vælg alt

header('Refresh: 3; url=login.php');
echo "Du har indtaste et forkert brugernavn eller password"; 
Har du prøvet at udkommentere det hele, og starte fra en ende af og se hvornår fejlen opstår?
hej Jesper

ja, det kan man godt sige. Den oprindelige login.php fil var blevet så "laset" at jeg mistede overblikket, så dette er i princippet den samme blot med nyt navn, den erstatter den tiligere login.php.
Undskyld.. men hvad mener du med at -udkommentere..?? Ja, jeg er nybegynder ud i webbyg.
Når og hvis jeg får dette "web-prototype" op at køre (det er lidt vigtigt!) har jeg endnu mere tid til at studerer emnerne php/html endnu mere.

jens

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: hjælp til nybegynder- PHP & MySQL

Indlæg af jepperask » 14. feb 2015, 18:46

jensa skrev:
jepperask skrev:ny_login.php? - er det en anden fil end login.php?

Jeg kigger egentlig udelukkende på fejlkoden.. Den første nævner login.php:16 (filen login.php, linje 16).

Den næste nævner chech.php linje 12 (din session_start();).

Hvad sker der hvis du ændrer:

Kode: Vælg alt

echo "Du har indtaste et forkert brugernavn eller password"; 
header ('refresh: 3; login.php'); 
.. til:

Kode: Vælg alt

header('Refresh: 3; url=login.php');
echo "Du har indtaste et forkert brugernavn eller password"; 
Har du prøvet at udkommentere det hele, og starte fra en ende af og se hvornår fejlen opstår?
hej Jesper

ja, det kan man godt sige. Den oprindelige login.php fil var blevet så "laset" at jeg mistede overblikket, så dette er i princippet den samme blot med nyt navn, den erstatter den tiligere login.php.
Undskyld.. men hvad mener du med at -udkommentere..?? Ja, jeg er nybegynder ud i webbyg.
Når og hvis jeg får dette "web-prototype" op at køre (det er lidt vigtigt!) har jeg endnu mere tid til at studerer emnerne php/html endnu mere.

jens
Du sætter det hele som kommentar, ved at indsætte (i PHP-delen) /* i starten og */ i slutningen. Det vil gøre det hele til kommentar, og vil derfor ikke blive kørt. Så kan du starte med at flytte /* ned til efter dit session_start(); og så se om det kører.. Bliv ved indtil fejlen opstår og du ved hvor det går galt. Har sendt en PM også.

Besvar