Avatar billede udvikler Nybegynder
06. november 2005 - 13:37 Der er 41 kommentarer og
1 løsning

Hvad betyder dette ?

Ja, hvad betyder denne fejl meddelelse:
www.adeee.frac.dk ?

Og nu spørger i sikkert jer selv hvorfor dette er i php forummet, jo det er fordi fejlen fremkommer når man har skrevet et svar til et indlæg i mit forum og derefter prøver at opdatere, og hvis man klikker forsøg igen så gør den som der står: den poster beskeden igen, og det er jo skidt, men hvis man klikker annuler står der siden er forældet, hvad betyder fejl medelelsen som kommer frem ?
Avatar billede jaw Nybegynder
06. november 2005 - 13:40 #1
Det er fordi at du sender form-indholdet til den samme side som det bliver indtastet på. Når brugeren så opdaterer, så vil de blive sendt igen, da det stadig er samme side. Derfor spørger IE om den skal sende igen.

Du kan nemmest og bedst løse dette ved at have 2 sider. En til indtastning af dataene og én der behandler dem, indsætter dem i databasen og sender brugeren tilbage til forum'et. Så er du ude over både den dialogboks og at brugeren kan indsætte samme indlæg flere gange.
Avatar billede Slettet bruger
06. november 2005 - 13:40 #2
Det er fordi siden er et resultat af et POST og dermed vil browseren ikke opdatere uden viderer.
Avatar billede udvikler Nybegynder
06. november 2005 - 13:43 #3
Det vidste jeg faktisk godt, men kan man ikke ordne det på en anden måde ?
har prøvet at indsætte <?php echo $_SERVER["PHP_SELF"]; ?> under action="" det virkede ikke helt, da ikke hele min side kom med
eller skal jeg bare holde mig til det du siger ?
Avatar billede jaw Nybegynder
06. november 2005 - 13:45 #4
Med POST og samme side, så tror jeg du får svært ved at komme udover den "fejl". Det med at han indsætter flere gange kan selvfølgelig ordnes med f.eks. at sætte en variabel første gang han indsætter, og så tjekke på om den er sat. Hvis den så er sat, så har han allerede indsat.

Men jeg mener stadig, at mit andet forslag er betydeligt pænere, mere prof og generelt bedre :)
Avatar billede udvikler Nybegynder
06. november 2005 - 13:50 #5
Nu har jeg gjort som du sagde og det virker næsten, men hvordan kan jeg sende brugeren til lige netop det indlæg han så på før ?
Avatar billede jaw Nybegynder
06. november 2005 - 13:52 #6
Der har du f.eks. et hidden felt i din form, som indeholder det id, og så bruger du det til at sende ham retur.
Avatar billede udvikler Nybegynder
06. november 2005 - 13:53 #7
Kan du hjælpe mig med at lave det ?
- forstår nemlig ikke meget af det med hidden felter da jeg aldrig har arbejdet med dem før ?

Du skal selvfølgelig nok få flere point for det !
Avatar billede jaw Nybegynder
06. november 2005 - 14:01 #8
Det er såmænd så simpelt som et tekstfelt, der bare ikke vises.

<input type='hidden' name='id' value='".$_GET['id']."'>

Og så bruger du det som $_POST['id'].
Avatar billede udvikler Nybegynder
06. november 2005 - 14:06 #9
Har indsat dette i laes.php (den fil hvor man ser indlægget og kan svare på det):

<input type='hidden' name='id' value='".$_GET['id']."'>

----------------------------------------------------

og så har jeg indsat dette i post.php (den fil hvor kommentarene bliver indsat i mysql databasen):

header("$_POST['id']");

----------------------------------------------------

Men desværre for jeg denne fejl på post.php

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web/www/frac/users/fora/post.php on line 18
Avatar billede jaw Nybegynder
06. november 2005 - 14:10 #10
Der er både en syntaxfejl og en utilstrækkelig filangivelse:

header("filnavn.php?id=".$_POST['id']);

Men hvordan angiver du det? Som filnavn.php?id=xx for at vise et forum, eller hvad?
Avatar billede udvikler Nybegynder
06. november 2005 - 14:14 #11
hvad mener du med det sidste du sagde ?

Har rettet det, nu for jeg bare fejlen:
Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/fora/post.php:2) in /web/www/frac/users/fora/post.php on line 18

og linie 18 er:

header("laes.php?id=".$_POST['id']);
Avatar billede jaw Nybegynder
06. november 2005 - 14:17 #12
Det er en helt ren fil, der kun bruges til at behandle data, ikke? Og du må lige tjekke, at du ikke har nogen som helst form for html output til browseren, såsom mellemrum, linieskift, <html>-tags etc. etc.
Avatar billede udvikler Nybegynder
06. november 2005 - 14:20 #13
Har kun brugt &nbsp; ?

resten af filen ser således ud:

<!-- upload af indlæg -->
<?php
include "mysql.php";
if(isset($_POST['submit'])) {
if($_POST['besked'] == "") {
echo "&nbsp;";
}
$besked = nl2br(htmlentities(addslashes($_POST['besked'])));
$parent = $_GET['id'];

mysql_query("INSERT INTO kommentar (besked, parent) VALUES ('$besked', '$parent')");
// mysql_query("INSERT INTO kommentar VALUES (''$besked','$parent'')") or die(mysql_error());
}

Else {
print "";
}
header("laes.php?id=".$_POST['id']);
?>
<!-- upload slut -->
Avatar billede jaw Nybegynder
06. november 2005 - 14:21 #14
Duer ikke, det er forbudt :) Og hvorfor vil du dog også det?
Avatar billede udvikler Nybegynder
06. november 2005 - 14:24 #15
Har slettet linien: echo "&nbsp;";

Men for samme fejl, nu er det selvfølgelig linie 17 fordi jeg har slettet en linie:

Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/fora/post.php:2) in /web/www/frac/users/fora/post.php on line 17
Avatar billede jaw Nybegynder
06. november 2005 - 14:26 #16
Så er det vel denne:
Else {
print "";
}
?

Jeg har bare lidt svært ved at se hvad pokker den if-else skal gøre godt for.
Avatar billede jaw Nybegynder
06. november 2005 - 14:27 #17
Nej, ok. Der er 2 if'er, så det er nok fint nok, men else'n kan jeg ikke se hvad gør.
Avatar billede udvikler Nybegynder
06. november 2005 - 14:30 #18
Har nu også slettet det:
Else {
print "";
}


men igen er fejlen altså den samme, men vi fik da gjort filen mindre og mere overkskuelig :)

Warning: Cannot modify header information - headers already sent by (output started at /web/www/frac/users/fora/post.php:2) in /web/www/frac/users/fora/post.php on line 13
Avatar billede plx Nybegynder
06. november 2005 - 14:36 #19
output kan vel skyldes den html-kommentar du har før <?php
Avatar billede udvikler Nybegynder
06. november 2005 - 14:39 #20
Nu kommer der ingen fejl, men den poster for det første ikke kommentaren og for det andet bliver man ikke sendt videre til nogen som helst side ? :)
Avatar billede jaw Nybegynder
06. november 2005 - 14:47 #21
Hvordan ser det ud nu?
Avatar billede udvikler Nybegynder
06. november 2005 - 14:50 #22
Læs min post lige oven over din :)

den poster for det første ikke kommentaren og for det andet bliver man ikke sendt videre til nogen som helst side
Avatar billede jaw Nybegynder
06. november 2005 - 14:52 #23
Ja, ja, det kan jeg jo læse, men hvordan ser koden ud?
Avatar billede udvikler Nybegynder
06. november 2005 - 14:54 #24
<?php
include "mysql.php";
if(isset($_POST['submit'])) {
if($_POST['besked'] == "") {
}
$besked = nl2br(htmlentities(addslashes($_POST['besked'])));
$parent = $_GET['id'];

mysql_query("INSERT INTO kommentar (besked, parent) VALUES ('$besked', '$parent')");
// mysql_query("INSERT INTO kommentar VALUES (''$besked','$parent'')") or die(mysql_error());
}
header("laes.php?id=".$_POST['id']);
?>
Avatar billede jaw Nybegynder
06. november 2005 - 14:56 #25
$parent findes jo nok ikke, det skal være $_POST['id'].
Avatar billede udvikler Nybegynder
06. november 2005 - 15:02 #26
Er ændret, men samme 2 fejl

- den hverken udskriver kommentaren, eller vidersender brugeren til spørgsmålet. Det eneste den gør er at gemme kommentaren i databasen :)
Avatar billede jaw Nybegynder
06. november 2005 - 15:20 #27
Samme 2 fejl? Hvilke 2 fejl?
Avatar billede udvikler Nybegynder
06. november 2005 - 15:24 #28
Den hverken udskriver kommentaren på siden med spørgsmålet, eller vidersender brugeren til spørgsmålet. Det eneste den gør rigtigt er at gemme kommentaren i databasen.
Avatar billede jaw Nybegynder
06. november 2005 - 15:28 #29
Det er fordi det skal være:
header("Location: laes.php?id=".$_POST['id']);
Avatar billede udvikler Nybegynder
06. november 2005 - 15:41 #30
Fejlene fortsætter desværre :)


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/www/frac/users/fora/laes.php on line 46


You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '".$_GET[' at line 1


------------------------------------
det er denne del (line 43,44 og 45):

if(isset($_GET['id'])) {
$query = mysql_query("select * from forum WHERE id = $_GET[id]");
while ($r=mysql_fetch_array($query)){
Avatar billede jaw Nybegynder
06. november 2005 - 15:45 #31
Sætter den id'et rigtigt i adresselinien? Ser ikke sådan ud.
Avatar billede udvikler Nybegynder
06. november 2005 - 15:49 #32
Jo det gør den skam, hvis jeg holder musen over et link og der står fx id'et er 39 så hvis jeg klikker på linket står der også at id'et er 39 oppe i adresselinien.

Forstår bare ikke hvad den der fejl betyder som kommer frem
Avatar billede udvikler Nybegynder
06. november 2005 - 15:57 #33
ups, mener du om id'et i adresselinien ser ud som det skal på den nye fil som du før sagde jeg skulle lave, nej der står:

www.sidenavn.frac.dk/laes.php?id=".$_GET[
Avatar billede jaw Nybegynder
06. november 2005 - 16:01 #34
Jep, så er det der det går galt.

Lige før din header-linie, så prøv at skrive:
echo "Location: laes.php?id=".$_POST['id']; exit;

Og så se om det bliver rigtigt. Hvis det ikke gør, så har du en fejl du skal finde og rette.
Avatar billede udvikler Nybegynder
06. november 2005 - 16:05 #35
Nu kommer der ingen fejl frem på skærmen, men den udskriver bare:

Location: laes.php?id=".$_GET[

og oppe i adresselinien står der bare

www.sidenavn.frac.dk/post.php
Avatar billede jaw Nybegynder
06. november 2005 - 16:08 #36
Det var også planen at der skulle.

Men så må du paste den <input type='hidden'.....> du lavede før, for så er der rod i den.
Avatar billede udvikler Nybegynder
06. november 2005 - 16:13 #37
Godt at høre at der er noget som virker :)

Værsgod:

<b>Kommentér tråd:</b><br>
<form action="post.php" method="POST">
<input type='hidden' name='id' value='".$_GET['id']."'>
<textarea name="besked" rows="10" cols="60"></textarea>
<br>
<input type="submit" name="submit" value="submit">
</form>


PS. Vil bare sige at jeg er meget taknemmelig for at du gider at bruge så meget tid på det, gid jeg kunne give dig karma, men har jeg allerede gjort før ;)
Du for dine point lige så snart det hele virker, men selvfølgelig ikke kun 5.
Avatar billede jaw Nybegynder
06. november 2005 - 16:30 #38
Tror at det virker snart :)

For at finden med det skjulte felt og id'et skal virke, skal det selvfølgelig være en php-del der henter $_GET['id'], således f.eks.:

<input type="hidden" name="id" value="<?=$_GET['id'];?>">
Avatar billede udvikler Nybegynder
06. november 2005 - 16:34 #39
Jaw, du min helt =D

Læg et svar og sig samtidigt hvor mange point du selv synes er rimligt at give dig ?
Avatar billede jaw Nybegynder
06. november 2005 - 16:37 #40
Tjah, jeg har jo svaret på det til 5, så pointantallet er såmænd ikke så betydeligt :)
Avatar billede udvikler Nybegynder
06. november 2005 - 16:39 #41
Nu fik du så 30, håber det er iorden ;)

Tak for hjælpen endnu engang!
Avatar billede jaw Nybegynder
06. november 2005 - 17:23 #42
Det er skam helt fint, tak :)
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