Avatar billede zybe Nybegynder
18. marts 2009 - 11:36 Der er 6 kommentarer og
1 løsning

PHP - skift side efter formular

Hej Eksperter!

Jeg er igang med et lille php projekt. Jeg er bestemt igen php haj, men har prøvet mig lidt frem.

Jeg har en side med en formular, hvor jeg f.eks. opretter en kunde. Den formular poster til en side der hedder "kunder_handle.php". På "kunder_handle.php" hånterer jeg de forskellige funktioner. Se indhold herunder.

Efter jeg har gemt min formular opretter den fint nok kunden, men "header (location..." funktionen fejler med denne besked:

Warning: Cannot modify header information - headers already sent by (output started at /home/www/jlmedia.dk/regnskab/connection.php:4) in /home/www/jlmedia.dk/regnskab/kunder_handle.php on line 30


Håber på der er nogen der kan hjælpe?!

-----------Kunder_handle.php --------------
<?php
include("connection.php");


if ($_POST['id']=='' && $_GET['function'] =='')

//if ($_POST['id']=='')
{
/* tilfoej customer */
$sql="INSERT INTO kunder (firma, adresse, postnr, bynavn, telefon, email, ftpaddress, brugernavn, password, note) VALUES ('$_POST[firma]','$_POST[adresse]','$_POST[postnr]','$_POST[bynavn]','$_POST[telefon]','$_POST[email]','$_POST[ftpaddress]','$_POST[brugernavn]','$_POST[password]','$_POST[note]')";
$strMode = "added";
}

else if ($_GET['function']=='customer_delete')
{
/* slet en nyhed fra siden */
$sql="DELETE FROM kunder WHERE id = '$_GET[id]'";
$strMode="deleted";
}

else
{
/* rediger en bruger */
$sql="UPDATE kunder SET firma='".$_POST['firma']."', adresse='".$_POST['adresse']."', postnr='".$_POST['postnr']."', bynavn='".$_POST['bynavn']."', telefon='".$_POST['telefon']."', email='".$_POST['email']."', ftpaddress='".$_POST['ftpaddress']."', brugernavn='".$_POST['brugernavn']."', password='".$_POST['password']."', note='".$_POST['note']."' WHERE id=".$_REQUEST['id'];

$strMode="updated";
}
mysql_query($sql);
mysql_close();
header("Location: index.php?action=kunder&mode=" . $strMode);
?>
-------------------------------------------------
Avatar billede kristianiversen Nybegynder
18. marts 2009 - 11:39 #1
Hvad sker der i filen connection.php på linje 4?
Avatar billede anitavizdk Nybegynder
18. marts 2009 - 11:42 #2
For at du kan sætte en header i php må du ikke have sendt noget som helst til brugerens browser inden du sætter headeren.

Dit problem ser ud til at være at du sender noget til browseren her: home/www/jlmedia.dk/regnskab/connection.php på linje 4.

Det kan væare alt muligt, men tit er det et mellemrum inden dine start php tags, eller en database connection der fejler.

Du kan også vælge at bruge output buffering, men det er lidt mere kompliceret.
Avatar billede zybe Nybegynder
18. marts 2009 - 11:45 #3
min connection.php ser således ud:

<?php
mysql_connect("xxxxx", "xxxx", "xxx") or die(mysql_error());
mysql_select_db("xxxxx") or die(mysql_error());
?>

Så linje 4 er "?>"
Avatar billede kristianiversen Nybegynder
18. marts 2009 - 11:49 #4
Okay. Gør som anitavizdk siger; tjek om der er mellemrum eller et linjeskift efter "?>". ">" skal være det sidste tegn i filen.
Avatar billede zybe Nybegynder
18. marts 2009 - 11:59 #5
Filer slutter med "....kunder&mode=" . $strMode);?>" og der er ingenting efter ">"
Avatar billede danishhoward Nybegynder
18. marts 2009 - 12:50 #6
Hvor har du placeret din php blok? Hvis du bruger header information, så skal det altid være først i et dokument.


<?php
-> her
<?
<html>


<body>
</body>

</html>
Avatar billede zybe Nybegynder
02. november 2010 - 21:21 #7
Fik det aldrig til at virke, så lukker
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
Kurser inden for grundlæggende programmering

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