Avatar billede KSN Mester
17. oktober 2007 - 19:06 Der er 7 kommentarer og
1 løsning

Stylesheet i php

Har et php dok som indenholde kode til login, når man logger ind skal den gå videre til en admin side.
Hvis jeg ikke har stylesheet for oven, sender den mig videre som den skal, men indsætter jeg stylesheet, så sker der det at, når jeg logger ind, så kommer der en sort side fra. Hvis jeg så vælger vis kilde, står der min kode til stylesheet og ´sender mig ikke videre til den korrekte side. Kan man ikke indæt stylesheet i php?
Håber i forstår mit spørgsmål
Avatar billede hmortensen Nybegynder
17. oktober 2007 - 19:07 #1
Prøv at vise din kode.
Du må ikke have output før et header() kald, hvilket det lyder til at du har.
Avatar billede KSN Mester
17. oktober 2007 - 19:10 #2
<style type="text/css">
body {
background-repeat:repeat-x;
}
.style1 {
    font-family: Arial;
    font-weight:bold;
    font-size: 12px;
    color: #50517d;
    text-decoration: none;
}
.style2 {
    font-family: Arial;
    font-size: 14px;
    color: #50517d;
    text-decoration: none;
}
</style>

<body bgcolor="#130D04">

<?php
// Connects to your Database
mysql_connect("dbserver", "brugernvn", "adgangskode") or die(mysql_error());
mysql_select_db("databasenavn") or die(mysql_error());

//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))

//if there is, it logs you in and directes you to the members page
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM admin WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: /opret.php");

}
}
}

//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted

// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
die('Allefelter er ikke udfyldt.');
}
// checks it against the database

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM admin WHERE username = '".$_POST['username']."'")or die(mysql_error());

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database.
<a href=add.php>Click Here to Register</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Forkert brugernavn eller adganskode.');
}
else
{

// if login is ok then we add a cookie
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//then redirect them to the members area
header("Location: opret.php");
}
}
}
else
{

// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Brugernavn:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Adgangskode:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?>
Avatar billede hmortensen Nybegynder
17. oktober 2007 - 19:14 #3
Meget rodet, og uden indryk... Er det samme side, eller er der to?

Normalt har man design på en side, og logik på en anden - så vil problemstillingen ikke opstå.

Men du kan godt få ovenstående til at virke ved brug af if-sætning.


<?php
if (isset($_POST))
{
  //logik
}
else
{
?>
  <html>blablabla
<?php
}
?>
Avatar billede KSN Mester
17. oktober 2007 - 19:19 #4
Er ikke så skarp til det derfor. Men det virker. Men bare ikke med stylesheet
Avatar billede hmortensen Nybegynder
17. oktober 2007 - 19:26 #5
?>
<!-- stylesheet her -->
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
Avatar billede dkfire Nybegynder
17. oktober 2007 - 20:03 #6
Problemet ligger i at du har noget html før en header funktion.
Du må ikke have sendt noget til browseren inden en header funktion. Du bliver nød til at rykke dit css ned under header("Location: /opret.php");
Avatar billede KSN Mester
17. oktober 2007 - 20:35 #7
hmortensen og dkfire, i skrev faktisk det samme og det virkede, men eftersom hmortensen skrev det først, få han pointne. Håber det er ok.

hmortensen, smidt et svar.

Tak begge to
Avatar billede hmortensen Nybegynder
18. oktober 2007 - 09:02 #8
Det var så lidt.
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