Avatar billede cschmalz Nybegynder
16. juni 2012 - 15:13 Der er 6 kommentarer og
1 løsning

Problem med header location

Hej eksperter!

Jeg har fået lavet et PHP logind-system, som jeg får fejl ved på function-siden validate.php:

Warning: Cannot modify header information - headers already sent by (output started at (...)/dbconnect.php:1) in (...)/validate.php on line 4

Jeg har læst en masse om denne fejl og faldt blandt andet over http://stackoverflow.com/questions/4529379/is-it-good-practise-to-use-meta-refresh-tags-for-redirects-instead-of-header-f , hvor de i den sidste kommentar skriver at man ikke bør bruge ob_start / ob_flush til at løse dette problem.

Min validate.php:

<?php
session_start();
function redirect($url){
    header("Location: ".$url);
    exit();
}

include('dbconnect.php');

$username = mysql_real_escape_string($_POST['usr']);
$password = mysql_real_escape_string(md5($_POST['pwd']));

$query = mysql_query("SELECT * FROM distortion_user WHERE username = '$username' AND password = '$password'") or die (mysql_error());
$num_users = mysql_num_rows($query);

if($num_users == '1'){
    $_SESSION['usr'] = $username;
    $_SESSION['timeout'] = time();
    redirect("admindb.php");
}elseif(empty($username) || empty($password)){
    redirect("index.php?error=empty");
}else{
    redirect("index.php?error=true");
}
?>

Og min dbconnect.php:
<?php
$sql_con = mysql_connect("localhost","###","###");
mysql_select_db("###",$sql_con);
?>

- Jeg har fjernet "white-space" før og efter <?php og ?> på begge sider.

Det skal desuden siges at jeg godt kan få validate til at virke hvis jeg i stedet for at include dbconnect bare indsætter indholdet, virker siden. Men det må da kunne løses anderledes?

Håber I kan hjælpe!
På forhånd tak
Avatar billede cschmalz Nybegynder
16. juni 2012 - 15:44 #1
Hm.
Hvis jeg sletter dbconnect.php og uploader en ny tom fil og kopierer dbconnect inholdet derind virker den..
Avatar billede olebole Juniormester
16. juni 2012 - 15:51 #2
<ole>

To muligheder:

1) Du kan have overset et eller flere blanktegn i dbconnect.php

2) dbconnect.php har i første omgang været gemt med BOM - i anden omgang uden

/mvh
</bole>
Avatar billede olebole Juniormester
16. juni 2012 - 15:58 #3
PS: Husk at acceptere dit svar. Ellers optræder tråden ikke som lukket  =)
Avatar billede cschmalz Nybegynder
16. juni 2012 - 16:14 #4
Hej olebole,

Det skal jeg nok gøre! :)
Men tak for dit svar, jeg tror du havde fuldstændig ret og at det galdt mulighed 2)

Jeg havde samme header already sent problem på nogle andre function sider (edit_profile etc.), men fandt frem til at det skyldtes at jeg i min check.php (checker om brugeren er logget ind) i bunden havde et JavaScript kørende der fortalte brugeren at han om 1 min ville blive logget ud.

Den funktion ville jeg egentlig stadig have på mine præsentations-sider, men det må så gøres via endnu en include under include("check.php").

Men hvis du poster et svar må du også få del i pointene, og mange tak igen :)
Avatar billede olebole Juniormester
16. juni 2012 - 16:38 #5
Hehe ... begge dele er veletablerede klassikere ... evergreens fristes man næsten til at sige  *o)

Ellers tak, jeg samler ikke point. Du accepterer bare, så tråden lukkes  =)
Avatar billede cschmalz Nybegynder
16. juni 2012 - 16:42 #6
Jeg siger så mange tak og god weekend!
Avatar billede olebole Juniormester
16. juni 2012 - 16:48 #7
Selvtak - og i lige måde  =)
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