04. februar 2006 - 11:09Der 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>
} } 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; } ?>
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.
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 <!-- ?
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?
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?
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?
<?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>";
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>";
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.
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.