jeg er i gang med at lave et login system i PHP men får problemer med min header(location) funktion. jeg får meddelsen "Cannot modify header information - headers already sent..... tilbage i hovedet. min kode ser ud som følger.
$searchUser = "SELECT username, password FROM users WHERE username='".$brugernavn."' AND password='".$pass."'";
$resultat = mysql_query($searchUser) or die("der skete en fejl: ".mysql_error() );
// Ingen bruger fundet if(mysql_num_rows($resultat) == 0){ if($action == "login"){ header("Location: index.php?message=nobody"); // tilbage til forsiden.. } else{ $indsaet = "INSERT INTO users( `username` , `password` ) VALUES ('".$brugernavn."', '".$pass."')"; //opret brugeren mysql_query($indsaet) or die("der skete en fejl: ".mysql_error()); header("Location: index.php?message=created"); // tilbage til forsiden.. } }
if(mysql_num_rows($resultat) == 1 ){
if($action=="login") { // han er fundet $_SESSION["status"] = "ok"; header("Location: velkommen.php"); // ind til det hemlige.. } else if($action =="opret"){ // en bruger eksisterer i forvejen header("Location: index.php?message=userExists"); // tilbage til forsiden.. } }
?>
håber der er nogen der kan hjælpe mig på at finde en løsning.
<html> <head> ..... <body> <?php require / include ('din_kode.php'); ?>
Hvis ja, det må man nemlig ikke. Der må ikke være sendt data til browseren, inden du kalder: header(); Og det kan sagtens bare være et mellemrum eller lign. som ellers driller.
Synes godt om
Slettet bruger
30. september 2008 - 09:48#2
Så vidt jeg har forstået, må der heller ikke kunne forekomme situationer, hvor header-informationen bliver sendt to gange - hvilket måske er en mulighed i din kode... Men jeg er langt fra sikker.
Jeg har følgende kode over scriptet. Har tidligere brugt scriptet til et andet site hvor det fungerede uden de store problemer. Men vil da forsøge at smide en exit(); på efter de enkelte header og se om det har nogen effekt :)
<?php session_start();
$brugernavn = "brugernavn"; $adgangskode = "password"; $databasenavn ="user"; $forbindelse = mysql_connect("localhost", "$brugernavn", "$adgangskode"); mysql_select_db("$databasenavn", $forbindelse) or die("der skete en fejl. ingen forbindelse");
Som pidgeot siger er problemet at du har html inden din header().
Synes godt om
Ny brugerNybegynder
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.