17. april 2002 - 22:19
Der er
20 kommentarer og 1 løsning
GRR cookies
Hey! Nu er jeg fan*** træt af at læse andres svar osv.. :) Mit eget skidt virker bare ikke. Jeg får heletiden en header fejl. Mit login-script er således: <?php if($ok){ mysql_connect('Localhost','root',''); mysql_select_db("db"); $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' "); $row = mysql_fetch_array($result); $Alder = $row[alder]; $Alias = $row[alias]; $Rang = $row[rang]; if($Passw == "$row[kode]") { setcookie("Alias", "$Alias", time() + 99999); setcookie("Alder", "$Alder", time() + 99999); setcookie("Rang", "$Rang", time() + 99999); echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>"; exit; } else { echo "Du har ikke adgang!"; } } ?> <FORM action="<?$PHP_SELF;?>" method="Post"> Brugernavn: <BR> <INPUT TYPE="TEXT" NAME="Bruger"> <BR> Adgangskode: <BR> <INPUT TYPE="TEXT" NAME="Passw"> <BR> <INPUT TYPE="Submit" NAME="ok" Value="Login"> </FORM> Samtidigt med at i retter dette, hvordan gør man så brugeren ikke bare kan trykke "Login" uden at indtaste noget også få grønt lys? :(
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
17. april 2002 - 22:25
#1
$result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' "); prøv at lave denne om til $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on'") or die (mysql_error());
17. april 2002 - 22:26
#2
eller $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' AND status='on'") or die (mysql_error());
17. april 2002 - 22:28
#3
istedet for echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>"; ville jeg måske benytte denne header("Location: index.php");
17. april 2002 - 22:30
#4
fæsser bigo.. det er jo ikke dér som problemet er.. der bliver udskrevet noget FØR phpscriptet bliver udført!
17. april 2002 - 22:46
#5
hmm ja.. men jeg kan ikke se noget.. måske er det kun en del af noget større (hmmmm)
17. april 2002 - 22:53
#6
Warning: Cannot add header information - headers already sent by (output started at C:\hp\login.php:15) in C:\hp\login.php on line 37 Warning: Cannot add header information - headers already sent by (output started at C:\hp\login.php:15) in C:\hp\login.php on line 38 Warning: Cannot add header information - headers already sent by (output started at C:\hp\login.php:15) in C:\hp\login.php on line 39 De 3 linjer er lige ved setcookie
17. april 2002 - 22:55
#7
problemet er at der bliver udskrevet noget af scriptet før dine cookies bliver sat. Det er i linie 15 at fejlen opstår. Smid lige hele dit script herind.
17. april 2002 - 22:57
#8
du kan ikke sætte en cookie hvis scriptet allerede har udskrevet noget. Det kan sagtens være en tom linie i toppen af dit script ell.
17. april 2002 - 23:03
#9
Her er et lille javascript som fixer dit problem med at folk bare kan trykke login uden at skrive noget: <FORM name="form" action="<?$PHP_SELF;?>" method="Post"> Brugernavn: <BR> <INPUT TYPE="TEXT" NAME="Bruger"> <BR> Adgangskode: <BR> <INPUT TYPE="TEXT" NAME="Passw"> <BR> <INPUT TYPE="Submit" NAME="ok" Value="Login" onclick="return tjek_indhold()"> </FORM> <script language="JavaScript"> <!-- function tjek_indhold() { if(form.elements.Bruger.value == "") { alert("Du skal skrive angive Bruger"); return false } if(form.elements.Passw.value == "") { alert("Du skal skrive Adgangskode"); return false } } //--> </script>
17. april 2002 - 23:06
#10
<html> <head> <title>yes yes</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body leftmargin="0"> <table width="764" border="0" cellspacing="0" cellpadding="0" bgcolor="#993300" align="center"> <tr> <td><img src="images/logo.gif"></td> </tr> <tr> <td> <table width="764" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="2" bgcolor="#000000"> <!--border--> </td> <td width="167" valign="top"><?php include("inc/menu.inc"); ?></td> <td width="5"> <!--tom--> </td> <td width="479" valign="top"> <div align="center"><img src="images/space.gif" width="10" height="15"><br> <img src="images/banner.gif" width="468" height="60"><br><br><br></div> <?php if($ok){ mysql_connect('Localhost','root',''); mysql_select_db("db"); $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on'")or die (mysql_error()); $row = mysql_fetch_array($result); $Alder = $row[alder]; $Alias = $row[alias]; $Rang = $row[rang]; if($Passw == "$row[kode]") { setcookie("Alias", "$Alias", time() + 99999); setcookie("Alder", "$Alder", time() + 99999); setcookie("Rang", "$Rang", time() + 99999); echo "<META HTTP-EQUIV='Refresh' CONTENT='10;URL=index.php'>"; exit; } else { echo "Du har ikke adgang!"; } } ?> <FORM action="<?$PHP_SELF;?>" method="Post"> Brugernavn: <BR> <INPUT TYPE="TEXT" NAME="Bruger"> <BR> Adgangskode: <BR> <INPUT TYPE="TEXT" NAME="Passw"> <BR> <INPUT TYPE="Submit" NAME="ok" Value="Login"> </FORM> </td> <td width="5"> <!--tom--> </td> <td width="120" valign="top"> <?php include("inc/hojre.php"); ?> </td> <td width="2" bgcolor="#000000"> <!--border--> </td> </tr> </table> </td> </tr> <tr> <td><img src="images/bund.gif"></td> </tr> </table> </body> </html> Tror godt man nemt kan lave en tjekker ovenover i selve PHP scriptet (ser pænest ud)
17. april 2002 - 23:07
#11
<?php if($ok){ mysql_connect('Localhost','root',''); mysql_select_db("db"); $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on'")or die (mysql_error()); $row = mysql_fetch_array($result); $Alder = $row[alder]; $Alias = $row[alias]; $Rang = $row[rang]; if($Passw == "$row[kode]") { setcookie("Alias", "$Alias", time() + 99999); setcookie("Alder", "$Alder", time() + 99999); setcookie("Rang", "$Rang", time() + 99999); echo "<META HTTP-EQUIV='Refresh' CONTENT='10;URL=index.php'>"; exit; } else { echo "Du har ikke adgang!"; } } ?> <html> <head> <title>yes yes</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body leftmargin="0"> <table width="764" border="0" cellspacing="0" cellpadding="0" bgcolor="#993300" align="center"> <tr> <td><img src="images/logo.gif"></td> </tr> <tr> <td> <table width="764" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="2" bgcolor="#000000"> <!--border--> </td> <td width="167" valign="top"><?php include("inc/menu.inc"); ?></td> <td width="5"> <!--tom--> </td> <td width="479" valign="top"> <div align="center"><img src="images/space.gif" width="10" height="15"><br> <img src="images/banner.gif" width="468" height="60"><br><br><br></div> <FORM action="<?$PHP_SELF;?>" method="Post"> Brugernavn: <BR> <INPUT TYPE="TEXT" NAME="Bruger"> <BR> Adgangskode: <BR> <INPUT TYPE="TEXT" NAME="Passw"> <BR> <INPUT TYPE="Submit" NAME="ok" Value="Login"> </FORM> </td> <td width="5"> <!--tom--> </td> <td width="120" valign="top"> <?php include("inc/hojre.php"); ?> </td> <td width="2" bgcolor="#000000"> <!--border--> </td> </tr> </table> </td> </tr> <tr> <td><img src="images/bund.gif"></td> </tr> </table> </body> </html> Det skulle virke
17. april 2002 - 23:11
#12
hvad har du rettet?
17. april 2002 - 23:12
#13
nåååh...har set :)
17. april 2002 - 23:12
#14
tester lige...
17. april 2002 - 23:12
#15
jeg har bare rykket dit PHP kode op til toppen af scriptet, da du vil få header error når du forsøger at sætte en cookie efter at du allerede har skrevet noget html - hvis du forstår.
17. april 2002 - 23:15
#16
du kan vel ikek fixe det der med tomme felter med if? Og hvordan er det lige man nemmest får cookies-værdier udskrevet igen? Bare med: Blabla dette er tekst og du er logget ind med: $Bruger ???
17. april 2002 - 23:16
#17
du er selvfølgelig sikret 50 poínt :)
17. april 2002 - 23:20
#18
<?php if($ok){ if($Bruger == "") { print "Du skal angive Bruger<br>"; $loginfail = true; } if($Passw == "") { print "Du skal angive Adgangskode<br>"; $loginfail = true; } if(!$loginfail) { mysql_connect('Localhost','root',''); mysql_select_db("db"); $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' "); $row = mysql_fetch_array($result); $Alder = $row[alder]; $Alias = $row[alias]; $Rang = $row[rang]; if($Passw == "$row[kode]") { setcookie("Alias", "$Alias", time() + 99999); setcookie("Alder", "$Alder", time() + 99999); setcookie("Rang", "$Rang", time() + 99999); echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>"; exit; } else { echo "Du har ikke adgang!"; } } } ?> Prøv med det her og ja det er bare med Print $Bruger
17. april 2002 - 23:21
#19
øhh jeg mener selvfølgelig <? print $Alias;?> for at printe Bruger ;)
17. april 2002 - 23:24
#20
Man skal ikke først connecte til cookie først? Altså ligesom i session skriver man jo: session_start() HVER gang de skal hentes frem osv..
Vi tilbyder markedets bedste kurser inden for webudvikling