Avatar billede chris0905 Nybegynder
21. juni 2011 - 10:45 Der er 14 kommentarer og
2 løsninger

Bruger ikke header efter funktion

Hej Eksperter!

Jeg har et lille problem med denne kode:



if(isset($_POST['submit'])){
    $id = mysql_prep($_POST['id']);
    $style = mysql_prep($_POST['style']);
    $link_updatequery = "UPDATE style SET style = '{$style}' WHERE id = '{$id}' ";
    if(mysql_query($link_updatequery)){
        header("Location: index.php");
    }else{
        echo "query fejl";
        echo "<p>".mysql_error()."</p>";
    }
}



Den gennemfører og opdatere databasen, men den bruger ikke den definerede header når den er færdig...

Er der nogen der kan se hvad jeg har gjort galt, eller har I brug for mere af koden???


Mvh

Christoffer
Avatar billede majbom Novice
21. juni 2011 - 10:53 #1
du får bare en blank skærm eller?

det kunne tyde på at fejlmeddelelser er slået fra...
prøv at smid:

error_reporting(E_ALL);


i toppen af din fil...
Avatar billede olsensweb.dk Ekspert
21. juni 2011 - 10:55 #2
har du skrevet noget til skærmen før din isset ??
du har vel ikke gemt i UTF-8 med BOM

http://dk2.php.net/manual/en/function.header.php
læs Description
Avatar billede jakobdo Ekspert
21. juni 2011 - 11:59 #3
Prøv at smid en exit(); efter din header()...
Avatar billede chris0905 Nybegynder
21. juni 2011 - 13:48 #4
jeg får bare den samme skærm smidt tilbage... altså den opdaterer bare efter at have fuldført funktionen...
Avatar billede majbom Novice
21. juni 2011 - 13:52 #5
skal det forståes sådan at den samme side er der hvor du har koden i #0?

har du noget kode overhovedet FØR

if(isset($_POST['submit'])){


?
Avatar billede chris0905 Nybegynder
21. juni 2011 - 15:51 #6
Ja... den kode jeg har givet jer, er den sidste del af hele koden... self med et "?>" efter...
Avatar billede majbom Novice
21. juni 2011 - 18:00 #7
du må ikke have noget kode der outputter til skærmen før en header - så fejler det
Avatar billede chris0905 Nybegynder
21. juni 2011 - 19:26 #8
Okay min kode er:

<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}

error_reporting(E_ALL);
?>
<head>
<title>Rediger CSS</title>
<link rel="stylesheet" type="text/css" href="myStyle.php" />
</head>

<?php
include('connect.php');
include('info.php');
include('head.php');

function mysql_prep( $value ) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" );
if( $new_enough_php ) { // PHP v4.3.0 or higher
if( $magic_quotes_active ) { $value = stripslashes( $value ); }
$value = mysql_real_escape_string( $value );
} else {
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
}
return $value;
}

print "<div id='logo'><img src='snoopy-logo.png'></div> <h2>Rediger CSS - $sitename </h2> <hr>";

include('menu.php');

$siderquery1 = mysql_query("SELECT * FROM style ORDER BY id ASC");
while($sidedata1 = mysql_fetch_assoc($siderquery1))
{
}
print "<br>";

    if (isset($_GET['id'])) {
        $page = $_GET['id'];
   
        $query = "SELECT * FROM style WHERE id = '$page' LIMIT 1";
        $result = mysql_query($query);
        $data = mysql_fetch_array($result);

?>

<h3>Rediger style</h3>
<p style="color:red">OBS! &AElig;NDRE KUN HVIS DU VED HVAD DU G&Oslash;R!<br>COMPUTERWARE APS D&AElig;KKER IKKE FOR &AElig;NDRINGER, <br>DER IKKE ER FORETAGET AF VORES EGEN SUPPORT!</p>
<form method="POST" action="">
        <table> 
            <tr>
                <td>name:</td>
                <td colspan="2"><input type='text' name='name' value="<?php echo $data['name']; ?>" /></td>
            </tr> 
            <tr>
                <td>style:</td>
                <td colspan="2"><textarea name="style" rows="30" cols="75"><?php echo $data['style']; ?></textarea></td>
            </tr>
            <tr>
                <td></td>
                <td><input type='submit' name='submit' value="Opdater" /></td> 
            </tr>
            <input type='hidden' name='id1' value="<?php echo $data['id1']; ?>" />
        </table> 
    <input type='hidden' name='id' value="<?php echo $data['id']; ?>" />
</form>
<?php     
    }

if(isset($_POST['submit'])){
    $id = mysql_prep($_POST['id']);
    $style = mysql_prep($_POST['style']);
    $link_updatequery = "UPDATE style SET style = '{$style}' WHERE id = '{$id}' ";
    if(mysql_query($link_updatequery)){
        header('Location: index.php');              // MIT PROBLEM LIGGER HER!!!
        exit();
    }else{
        echo "query fejl";
        echo "<p>".mysql_error()."</p>";
    }
}

?>


Burde den ikke sende en videre når den har opdateret databasen???
Avatar billede majbom Novice
22. juni 2011 - 08:41 #9
nej det burde den ikke - du må ikke have noget output før en header...

du skal flytte:

if(isset($_POST['submit'])){
    $id = mysql_prep($_POST['id']);
    $style = mysql_prep($_POST['style']);
    $link_updatequery = "UPDATE style SET style = '{$style}' WHERE id = '{$id}' ";
    if(mysql_query($link_updatequery)){
        header('Location: index.php');              // MIT PROBLEM LIGGER HER!!!
        exit();
    }else{
        echo "query fejl";
        echo "<p>".mysql_error()."</p>";
    }
}


op før det her:

?>
<head>


så må du gemme evt. fejlmeddelelser i en variabel du kan echo'e senere på siden...
Avatar billede chris0905 Nybegynder
22. juni 2011 - 19:02 #10
Tak det hjalp!
Tusind tak for jeres tid! men da det var splazz's svar der hjalp, så er det sine point!
smid svar!
Avatar billede majbom Novice
22. juni 2011 - 20:24 #11
jeg vil gerne dele med ronols, da han faktisk var først på pletten med samme forslag...
Avatar billede chris0905 Nybegynder
22. juni 2011 - 20:29 #12
undskyld den havde jeg overset.. men selvfølgelig skal han også have point...
Avatar billede chris0905 Nybegynder
08. juli 2011 - 20:40 #13
vil ronols have point??? så er det nu...
Avatar billede olsensweb.dk Ekspert
08. juli 2011 - 20:50 #14
svar
Avatar billede chris0905 Nybegynder
09. juli 2011 - 18:41 #15
takker og lukker!
Avatar billede majbom Novice
09. juli 2011 - 20:52 #16
selv tak - og tak for point :)
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