Avatar billede konder Nybegynder
04. februar 2006 - 11:09 Der er 54 kommentarer og
1 løsning

Script sender ikke korrekt videre.

Stor nød at knække. Jeg har tilpasset et "debatforumsscript" og det forunderlige er at det virker lokalt. Og det virker også næsten 100%på domæneserveren. Alle indput kommer i de rette databasetabeller. MEN der bliver ikke redirectet korrekt fra "svar.php" blot til en tom side "svar.php" istedet for de 2 der burde vælges imellem. Svaret går dog godtnok ind i db. Nogen der kan se hvad er galt, er ved at blive blind.
sendernhele siden med
<?php
//connect to server and select database; we'll need it soon
include("../dataA/conn.php");

//check to see if we're showing the form or adding the post
if ($_POST[op] != "addpost") {
  // showing the form; check for required item in query string
  if (!$_GET[meningid]) {
        header("Location: emneliste.php");
        exit;
  }

  //still have to verify topic and post
 
  $verify = "select ft.emneid, ft.navn from mening as fp left join emne as ft on fp.emneid = ft.emneid where fp.meningid = $_GET[meningid]";
  $verify_res = mysql_query($verify, $conn) or die(mysql_error());
  if (mysql_num_rows($verify_res) < 1) {
      //this post or topic does not exist
      header("Location: emneliste.php");
      exit;
  } else {
      //get the topic id and title
      $emneid = mysql_result($verify_res,0,'emneid');
      $navn = stripslashes(mysql_result($verify_res, 0,'navn'));

      print "
      <html>
      <head>
         
      <title>Svar på $navn</title>
      </head>
      <body background='../foto/mande.jpg'>
<form method=post action=\"$_SERVER[PHP_SELF]\">
      <p><strong>Dit navn eller email-adresse </strong><br>
      <input type=\"text\" name=\"ejer\" size=40 maxlength=150>

      <P><strong>Din mening</strong><br>
      <textarea name=\"tekst\" rows=8 cols=40 wrap=virtual></textarea>

      <input type=\"hidden\" name=\"op\" value=\"addpost\">
      <input type=\"hidden\" name=\"emneid\" value=\"$emneid\">

      <P><input type=\"submit\" name=\"submit\" value=\"tilføj\"></p>

      </form></TD>
    <TD>&nbsp;</TD>
</TR>
</TABLE>
      </body>
      </html>";

  }
} else if ($_POST[op] == "addpost") {
//check for required items from form
  if ((!$_POST[emneid]) || (!$_POST[tekst]) || (!$_POST[ejer])) {
      header("Location: emneliste.php");
      exit;
  }
  //add the post

  $add_post = "insert into mening values ('', '$_POST[emneid]', '$_POST[tekst]', now(), '$_POST[ejer]')";
  mysql_query($add_post,$conn) or die(mysql_error());
//redirect user to topic
  header("Location: visemne.php?emneid=$emneid");
  exit;
}
?>
Avatar billede Slettet bruger
04. februar 2006 - 11:13 #1
Hvad med at lave noget debug ala echo "scriptet er nu kommet hertil";
Det går det hele nemmere :-)
Avatar billede jakobdo Ekspert
04. februar 2006 - 11:19 #2
Enig med Cybermann...
Prøv f.eks. at udkommenter // header()...
Og skriv istedet: echo "Gå til side..."; (det som stod i headeren og lad EXIT(); være.
Så kan du måske også spore dig ind på problemet den vej.
Avatar billede konder Nybegynder
04. februar 2006 - 11:24 #3
øh.. skal jeg skrive
echo <A HREF="visemne.php?emneid=$emneid">gaa</A>;
skal lige spore mig ind på hvad i mener
Avatar billede konder Nybegynder
04. februar 2006 - 11:29 #4
da jeg udkommenterede <!-- header("Location: visemne.php?emneid=$emneid"); --> og skrev noget echo forsvandt siden helt- helt blank, uden kilde o.s.v.
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:30 #5
Jeg tror at de mener at du i steden for:

header("Location: visemne.php?emneid=$emneid");

retter det til:

//header("Location: visemne.php?emneid=$emneid");
echo "Gå til side visemne.php?".$emneid;


osv for resten af dine headers...
Avatar billede konder Nybegynder
04. februar 2006 - 11:30 #6
de andre- header("Location: eks.php"); på siderne virker ok
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:31 #7
Det er fordi <!-- er HTML. Dette kan du ikke bruge i PHP delen af din kode. Her kan du benytte // i steden for som angivet ovenfor.
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:32 #8
Hey. $emneid er da et MYSQL result?

Skal du ikke ændre:
header("Location: visemne.php?emneid=$emneid");

til
header("Location: visemne.php?emneid=$_POST[emneid]");

?
Avatar billede konder Nybegynder
04. februar 2006 - 11:37 #9
det er åbenbart yderst vitalt. Siden dukker slet ikke frem, før fik jeg dog formular frem
Avatar billede Slettet bruger
04. februar 2006 - 11:39 #10
Nu har du vel slettet din html kommentering <!-- ?
Dette burde dog give en warning, hvis ikke.
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:40 #11
Glem det med:
header("Location: visemne.php?emneid=$_POST[emneid]");

Jeg var lidt for hurtig der. Det er vist ikke der problemet ligger, da du jo også siger at det kører på din server, og $emneid bør indholde det korrekte id. Jeg overså det bare lige :(

Sker der hellere ikke noget når du bruger // i steden for <!-- ?
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:44 #12
Jeg har noget kode som laver noget lignende din, men jeg har lavet den lidt anderledes, så hvis du kan mulighed, så prøv og se om dette gør en forskel?

header('Location: visemne.php?emneid='.$emneid.'');
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:45 #13
For lige at præsisere.

header('Location: visemne.php?emneid='.$emneid.'');

De 2 sidste '' er ikke et enkelt " men 2 gange ' tegn.
Avatar billede konder Nybegynder
04. februar 2006 - 11:45 #14
kyffer>>har også forsøgt //
mystisk
Avatar billede konder Nybegynder
04. februar 2006 - 11:49 #15
ingen forskel-blank side
men altså går det godtnok fint ind i db
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:53 #16
Har du skrevet en echo sætning efter //header.. og før exit;?
Avatar billede kyffer Nybegynder
04. februar 2006 - 11:55 #17
Altså:

//header("Location: visemne.php?emneid=$emneid");
echo "Gå til side visemne.php?".$emneid;
exit;
Avatar billede konder Nybegynder
04. februar 2006 - 11:57 #18
ja -resultat= først formular, så total blank svar.php-side men svaret korrekt i databasen
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:02 #19
Hvad med:
//header("Location: visemne.php?emneid=$emneid");
echo "Her er vi";
exit;

Jeg synes bare det er underligt at du slet ikke får noget fra echo sætningen. Det lyder som om du får en PHP fejl, men kan ikke lige se hvor den skulle ske... Har du tilgang til en error.log?
Avatar billede konder Nybegynder
04. februar 2006 - 12:02 #20
næ.nu fik jeg. Gå til side visemne.php?
hvad nu?
Avatar billede Slettet bruger
04. februar 2006 - 12:09 #21
Som kyffer sagde i et tidligere indlæg er det pga $emneid ikke er sat ved $emneid men $_POST["emneid"]

Når du nu submitter din formular, så skriver den noget i databasen, og hvad gør den så? Bliver du sendt videre til visemne.php? eller bliver den bare stående på samme side som den du submitter fra?
Avatar billede konder Nybegynder
04. februar 2006 - 12:09 #22
hopper over hvor gærdet er lavest og laver et link til siden visemne.? tror jeg
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:09 #23
Var det
echo "Gå til side visemne.php?".$emneid;

Hvis du ikke får noget efter spørgsmålstegnet, så får den ikke udskrevet emneid, og det vil sige at den måske prøver at redirekte til:

visemne.php?

Hvis du selv skriver : (dinhjemmeside)/visemne.php?
burde du også få en tom side?


Hvad hvis du skriver:
echo "Gå til side visemne.php?".$:POST[emneid];

Giver det mere end:
Gå til side visemne.php?

?
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:10 #24
UPS:

Skal være:
echo "Gå til side visemne.php?".$_POST[emneid];
Avatar billede konder Nybegynder
04. februar 2006 - 12:10 #25
cypermann>>> bliver på samme side
Avatar billede konder Nybegynder
04. februar 2006 - 12:15 #26
Kyffer>>Jeg får: Gå til side visemne.php?4  (men jeg mener det var id19 jeg var kommet til og ikke 4)
Avatar billede konder Nybegynder
04. februar 2006 - 12:16 #27
korrekt med 4-tallet :)
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:18 #28
Dit første id er jo meningid som sikkert er 19, men så er dit emneid måske 4?

Har du prøvet at ændre din header til:

header("Location: visemne.php?emneid=$_POST[emneid]");

eller:

header('Location: visemne.php?emneid='.$_POST[emneid].'');

Stadig med 2 x ' og ikke en enkelt "
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:20 #29
som cybermann er inde på, så virker det på din egen server, fordi:

register_globals = On

Dette betyder at $_POST[emneid] kan kaldes som $emneid.

Den din webserver ude i byen har:

register_globals = Off

og så kan du kun få fat i emneid med $_POST[emneid]
Avatar billede konder Nybegynder
04. februar 2006 - 12:26 #30
blank side, suk
Avatar billede konder Nybegynder
04. februar 2006 - 12:28 #31
iøvrigt også hvis jeg ikke udfylder formular
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:30 #32
Hvad hvis du kalder din visemne.php direkte?

Med f.eks.
visemne.php?emneid=4
?
Avatar billede konder Nybegynder
04. februar 2006 - 12:38 #33
blir på samme side blot blank
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:39 #34
Ok. Så bliver siden måske aligevel henvist til visemne.php, men der er måske en fejl på denne side?

Når du benytter "emneid" på denne side, husker du så at kalde den som:

$_GET[emneid] og ikke som $emneid?
Avatar billede konder Nybegynder
04. februar 2006 - 12:45 #35
<?php
//check for required info from the query string
if (!$_GET[emneid]) {
  header("Location: emneliste.php");
  exit;
}

//connect to server and select database
include("../data/conn.php");
//verify the topic exists
$verify_topic = "select navn from emne where emneid = $_GET[emneid]";
$verify_topic_res = mysql_query($verify_topic, $conn) or die(mysql_error());

if (mysql_num_rows($verify_topic_res) < 1) {
    //this topic does not exist
    $display_block = "<P><em>Du har valgt et ugyldigt emne<a href=\"emneliste.php\">Prøv igen</a>.</em></p>";
} else {
    //get the topic title
  $navn = stripslashes(mysql_result($verify_topic_res,0, 'navn'));

  //gather the posts
  $get_posts = "select meningid, tekst, date_format(meningtid, '%b %e %Y kl. %T') as fmt_post_create_time, ejer from mening where emneid = $_GET[emneid] order by meningtid asc";
  $get_posts_res = mysql_query($get_posts,$conn) or die(mysql_error());

  //create the display string
  $display_block = "
  <H3><P>Dette er indlæg om emnet: <H2><strong>$navn</strong></H2> </p></H3>

  <table width=100% cellpadding=3 cellspacing=1 border=2>
  <tr bgcolor=cccccc>
  <th>Kaldenavn el. email og tidspunkt for indlægget.</th>
  <th>Mening</th>
  </tr>";

  while ($posts_info = mysql_fetch_array($get_posts_res)) {
      $meningid = $posts_info['meningid'];
      $tekst = nl2br(stripslashes($posts_info['tekst']));
      $meningtid = $posts_info['fmt_post_create_time'];
      $ejer = stripslashes($posts_info['ejer']);

      //add to display
      $display_block .= "
      <tr>
      <td width=25% valign=top>$ejer<br>$meningtid</td>
      <td width=75% valign=top>$tekst<br><br>
      <a href=\"svar.php?meningid=$meningid\"><strong>Svar på indlæg</strong></a></td>
      </tr>";
  }

  //close up the table
  $display_block .= "</table>";
}
?>
Avatar billede konder Nybegynder
04. februar 2006 - 12:54 #36
har lavet dette link på svar.php og den ser ud til at sende med ?4 men bliver med det samme sendt til emneliste.php fra visemne.php
echo "<A HREF=visemne.php?$_POST[emneid]>";
echo "Gå til side </A>";
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:55 #37
Det skal vel være:

echo "<A HREF=visemne.php?emneid=$_POST[emneid]>";
echo "Gå til side </A>";

?
Avatar billede kyffer Nybegynder
04. februar 2006 - 12:58 #38
Og hvis det skal være helt rigtigt?

echo "<A HREF=\"visemne.php?emneid=$_POST[emneid]\">";
echo "Gå til side </A>";
Avatar billede konder Nybegynder
04. februar 2006 - 13:01 #39
ja nu virker linket 110%
jeg bør holde nu
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:03 #40
Hvor meget virker så? Er der stadig fejl?
Avatar billede konder Nybegynder
04. februar 2006 - 13:05 #41
som jeg ser det virker det. du kan jo prøve www.sofiebadet.dk/forum/emneliste.php -det bliver slettet før "åbningen"
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:11 #42
Ok. Ja. Det virker da.

Du vil ikke ændre på svar.php

"<A HREF="visemne.php?emneid=6">Gå til side </A>"

Til at være:
header("Location: visemne.php?emneid=$_GET[emneid]");

eller kunne du ikke lige få dette til at spille?
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:14 #43
Ups det skal jo være:

header("Location: visemne.php?emneid=$_POST[emneid]");
Avatar billede konder Nybegynder
04. februar 2006 - 13:16 #44
nej så blir siden blank igen, så det går ikke med det.
Avatar billede konder Nybegynder
04. februar 2006 - 13:17 #45
du bør lægge et stort svar og så lader jeg som om det er med vilje
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:18 #46
Det var dog underligt...
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:20 #47
Jeg er bare ked af at vi ikke rigtigt har løst problemet :(
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:23 #48
Hvad med:

echo "<html>";
echo "<head>";
echo "<meta http-equiv=\"REFRESH\" content=\"0; URL=visemne.php?emneid=$_POST[emneid]\">';
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:24 #49
Ups:

echo "<html>";
echo "<head>";
echo "<meta http-equiv=\"REFRESH\" content=\"0; URL=visemne.php?emneid=$_POST[emneid]\">";
Avatar billede konder Nybegynder
04. februar 2006 - 13:25 #50
ja men det virker jo heller ikke med:
if ((!$_POST[emneid]) || (!$_POST[tekst]) || (!$_POST[ejer])) {
      header("Location: emneliste.php");
      exit;
når der ikke er noget skrevet i formularen, så jeg bider skammen i mig og lader den "lette" løsning råde.
Avatar billede konder Nybegynder
04. februar 2006 - 13:26 #51
og takker iøvrigt for tålmodigheden
Avatar billede konder Nybegynder
04. februar 2006 - 13:29 #52
det virker med:
echo "<html>";
echo "<head>";
echo "<meta http-equiv=\"REFRESH\" content=\"0; URL=visemne.php?emneid=$_POST[emneid]\">"; :)))))
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:31 #53
Ok. Jamen det var så lidt. Du må jo sige til hvis vi ellers kan gøre noget.
Avatar billede kyffer Nybegynder
04. februar 2006 - 13:31 #54
:) Skønt :)
Avatar billede konder Nybegynder
04. februar 2006 - 13:34 #55
Ja phu ha da
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