Avatar billede nielschristiansen Nybegynder
21. november 2006 - 23:09 Der er 29 kommentarer og
2 løsninger

Hej Eksperter hjælp til header("location")

Hej med jer

Jeg sidder med et login script på B-ONE det virker på alle mine andre hjemmesider hos B-ONE men ikke det nye de påstår det er mig hvilket jeg har lidt svært ved at tro da jeg ikke har ændret på siderne men bare kopieret dem :) nå til sagens kerne

jeg vil egentlig bare vidre stille fra en side til en anden med header("location:enside.htm"); og det virker altså ikke på den server er der en anden måde at gøre det på ??
Avatar billede hmortensen Nybegynder
21. november 2006 - 23:12 #1
Får du en fejl når du prøver?
Har du noget udskrift før du laver header() kaldet?
Avatar billede nielschristiansen Nybegynder
21. november 2006 - 23:21 #2
ingen fejl bare en blank side det er til et login hvor jeg checker om brugeren er logget ind hvis han ikke er logget ind sender jeg ham tilbage til login siden men får bare en blank side det samme hvis jeg vil logge ind hvis der ikke står noget i boksen sender jeg brugeren tilbage til login siden feks login siden hedder form.htm php script hedder login.php hvis jeg taster noget forkert skriver den forkert brugernavn det virker men skriver jeg det rigtige stopper den på login.php og sender  mig ikke videre til admin.php
Avatar billede coderdk Praktikant
21. november 2006 - 23:33 #3
Lad os se noget kode - Og husk at du under ingen omstændigheder må skrive noget ud, ikke engang et mellemrum, før header/location, og for at være sikker, så smid en exit; lige efter header-linjen.
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 08:15 #4
<?
SESSION_START();
echo" <html>";
echo"<head>";
echo"<style type='text/css'>";
echo"<!--";
echo"body{background-color:transparent;color:white;font:verdana 8px;}";
echo"-->";
echo"</style>";
echo "<body>";
    if((!$_POST[bruger])||(!$_POST[pass])){
echo "Forkert brugernavn eller password prøv igen";
exit;
SESSION_DESTROY();}
include("forbind.php");
$pass = md5($_POST[pass]);
$for = mysql_query("select bruger, pass from login where bruger = '$_POST[bruger]' and pass = '$pass'");
if (mysql_num_rows($for) == 1) {
$_SESSION["bruger"] = $_POST[bruger];
header("location:admin.php");
exit;
echo "Hej"." ",$_SESSION["bruger"]."Velkommen til Login siden <br /> her vil du finde informationer om rettelser på siden";}
else{
echo "Forkert brugernavn eller password prøv igen";
SESSION_DESTROY();}
echo "</body>";
echo"</html>";

?>
Avatar billede showsource Seniormester
22. november 2006 - 08:40 #5
Som coderdk skriver, skal du IKKE laver header EFTER du har lavet output til browseren.
Og din header ligger jo midt i dokumentet.
Avatar billede coderdk Praktikant
22. november 2006 - 08:40 #6
Så vidt jeg kan se skriver du en hel del ud, før du bruger header/location. Det må du som sagt ikke ;) Du kan evt starte med ob_start() så kan det være at det virker alligevel.
Avatar billede showsource Seniormester
22. november 2006 - 08:45 #7
Jahh, ob_start vil nok kunne gøre det, mn....

Lettere omskrevet:

<?php
session_start();

    if(isset($_POST[bruger], $_POST[pass])){

    include("forbind.php");
    $pass = md5($_POST[pass]);
    $for = mysql_query("select bruger, pass from login where bruger = '$_POST[bruger]' and pass = '$pass'");

        if (mysql_num_rows($for) == 1) {
        $_SESSION["bruger"] = $_POST[bruger];
        }

    mysql_free_result($for);
    }



echo" <html>";
echo"<head>";
echo"<style type='text/css'>";
echo"<!--";
echo"body{background-color:transparent;color:white;font:verdana 8px;}";
echo"-->";
echo"</style>";
echo "<body>";

if(isset($_SESSION["bruger"])) {

    echo "Hej"." ",$_SESSION["bruger"]."Velkommen til Login siden <br /> her vil du finde informationer om rettelser på siden";

}else{

    echo "Forkert brugernavn eller password prøv igen";

}


echo "</body>";
echo"</html>";

?>
Avatar billede showsource Seniormester
22. november 2006 - 08:47 #8
Hov denne linie er vist heller ikke god!
echo "Hej"." ",$_SESSION["bruger"]."Velkommen til Login siden <br /> her vil du finde informationer om rettelser på siden";


Skal nok være

echo "Hej". $_SESSION["bruger"] ." Velkommen til Login siden <br /> her vil du finde informationer om rettelser på siden";
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 08:48 #9
OB_start siger mig igenting

og i scriptet ovenover kan eg ikke se nogen videre sendelse til admin.php
Avatar billede showsource Seniormester
22. november 2006 - 08:50 #10
Næhh, du vil jo også udskrive "Hej m.m."
Header kan du smide ind efter du registrerer session bruger
Avatar billede showsource Seniormester
22. november 2006 - 08:51 #11
if (mysql_num_rows($for) == 1) {
        $_SESSION["bruger"] = $_POST[bruger];
        header("Location:admin.php");
        exit;
        }
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 08:54 #12
ok så det du har gjort er egentlig bare at rykke selve html head-delen længere ned
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 08:56 #13
jeg har nu samme problem på det nye webhotel med et slettte link ser således ud

?
include("forbind.php");
$fore = mysql_query("DELETE FROM side where id =".$_GET["id"].";");
header("location:admin.php");
echo "siden er slettet";
?>

der vidre stiller browseren heller ikke
Avatar billede showsource Seniormester
22. november 2006 - 09:04 #14
Der er jo ingen grund til at lave en echo, når du sender videre.
Og så er der fejl i din query

Her bruger jeg intval() så er du sikker på mysql opfatter det som tal og ikke en streng

<?php
include("forbind.php");
$fore = mysql_query("DELETE FROM side where id =". intval($_GET["id"]) ."");
header("location:admin.php");
exit;
?>
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 09:08 #15
ja det er måske rigtig nok men det forklarer da ikke hvorfor den ikke videre stiller
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 09:09 #16
er der en anden metode man kan bruge i stedet for header("location:side")
Avatar billede sw_red_6 Nybegynder
22. november 2006 - 09:10 #17
du kunne evt. smide noget javascript ind hvis det endelig skulle være
Avatar billede showsource Seniormester
22. november 2006 - 09:13 #18
Grunden til den ikke viderstiller, er fejlen i din query

$fore = mysql_query("DELETE FROM side where id =".$_GET["id"].";");
skal være
$fore = mysql_query("DELETE FROM side where id ='".$_GET["id"]."'");
eller
$fore = mysql_query("DELETE FROM side where id =".intval($_GET["id"])."");
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 09:20 #19
ingen af dem virker
får følgene fejl
Warning: Cannot modify header information - headers already sent by (output started at /customers/finnmhansen.dk/finnmhansen.dk/httpd.www/test/forbind.php:8) in /customers/finnmhansen.dk/finnmhansen.dk/httpd.www/test/slet.php on line 4
Avatar billede showsource Seniormester
22. november 2006 - 09:23 #20
Der må overhovedet være nogetr "luft" før din header, heller ikke før du starter php tag'et
<?php
og ikke
<?php
Avatar billede showsource Seniormester
22. november 2006 - 09:24 #21
Nåh, den sidste viste ikke mellemrum
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 09:25 #22
nej så langt er jeg med og der ikke luft men jeg har startet med <? og ikke <?php
Avatar billede showsource Seniormester
22. november 2006 - 09:30 #23
Skulle ikke gøre nogen forskel.
Hvad med din forbind.php ? Noget luft i den?
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 09:33 #24
det var squ min forbind.php der var lidt luft nu virker det tak for hjælpen :) hvem skal have point det må næsten være showsource
Avatar billede showsource Seniormester
22. november 2006 - 09:38 #25
Mjahh, men coderdk skrev jo det som var det egentlige problem i starten !
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 09:56 #26
ja med hensyn til at sende html header før headerlocation men du fandt problemet vil du have point eller skal jeg vente lidt med at gi dem :)
Avatar billede showsource Seniormester
22. november 2006 - 10:00 #27
Jeg vil nu helst dele :O)
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 10:01 #28
ok så skal jeg bare have et svar fra coderdk
Avatar billede coderdk Praktikant
22. november 2006 - 10:02 #29
du må godt give showsource hovedparten :)
Avatar billede nielschristiansen Nybegynder
22. november 2006 - 10:02 #30
her er de :)
Avatar billede showsource Seniormester
22. november 2006 - 10:06 #31
takker!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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