Avatar billede tobrukDk Novice
06. december 2011 - 21:16 Der er 23 kommentarer og
1 løsning

Sende igen når man klik F5

Hej
jeg er lige pt i gang med at lave mit lille eget kommentar system :) men det som problem hver gang man klik på f5 så genstart siden men så sende den beske igen :O :( håber i kan hjælp mig på en måde :)



if(isset($_POST["send"])) {
    $error = false;
    $fejlbesked = "";

    $navn = mysql_real_escape_string($_POST["navn"]);
    $besked = mysql_real_escape_string($_POST["besked"]);

    if(!empty($navn)) {
        if(!empty($besked)) {
          $error = false;
        } else {
          $fejlbesked .= "Du mangler at udfylde en besked!<br />";
          $error = true;
        }   
    } else {
        $fejlbesked .= "Du mangler at udfylde dit navn!<br />";
        $error = true;
    }

    if($error == true) {
      echo $fejlbesked;
      $error = true;
    } else {
      $sql = mysql_query("INSERT INTO kommentar VALUES('','$name','$text')");
      if(!$query) {
        $error = true;
      } else {
        echo 'Beskeden er blevet tilføjet!';
      }
    }
}

mysql_close($dbcon);
?>


Henter nede fra databasen

                            $query = "SELECT * FROM kommentar ORDER BY id DESC LIMIT 10";
                            $result = mysql_query($query);
                            while($row = mysql_fetch_array($result)) {
                            $navn = $row['navn'];
                            $besked = $row['besked'];
                           
                            echo "<li>" . $navn . "</li>";
                            echo "<p>";
                            echo $besked;
                            echo "</p>";
                            }
                    ?>


Håber i kan hjælp mig :D
Avatar billede heinzdmx Nybegynder
06. december 2011 - 21:22 #1
En løsning er at poste til en side som kun håndtere post og lade den redirecte til den origale side igen
Avatar billede tobrukDk Novice
06. december 2011 - 21:22 #2
hvad mener du helt?
Avatar billede Slettet bruger
06. december 2011 - 22:01 #3
Som heinz siger, submit dine data til en anden php side og lav en redirect tilbage derfra. F.eks. hvis din side hedder index.php og du submitter dine data fra din form til post.php, så kan du i post.php redirecte tilbage til index.php (efter du har behandlet de submittede data):
header('Location: index.php');
Et smart trick. :)
Avatar billede tobrukDk Novice
06. december 2011 - 22:12 #4
altså jeg sende bruger hen til post.php og så for jeg post.php til at sende bruger tilbage igen? er det rigtigt forstået?
Avatar billede Slettet bruger
06. december 2011 - 22:20 #5
Ja, det lyder rigtigt.
Avatar billede tobrukDk Novice
06. december 2011 - 22:25 #6
Tak for hjælpen vil du/i have noget for det? eller det så lidt at i ikke gider have noget for det?
Avatar billede heinzdmx Nybegynder
06. december 2011 - 22:34 #7
Jeg smider et svar
Avatar billede Slettet bruger
06. december 2011 - 22:49 #8
Jeg gentog bare hvad heinz sagde. Pointene er hans. :)
Avatar billede olebole Juniormester
07. december 2011 - 00:23 #9
<ole>

I pricippet er det ikke nødvendigt at sende til et andet dokument. Man kan sagtens sende til dokumentet selv - lade det udføre databasehandlingerne - og redirecte til sig selv:


<?php
if (!empty($_POST)) {
    // Do some PHP-stuff here
   
    header('Location: '.$_SERVER['PHP_SELF']);
    exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>

<form action="" method="post">
    <input name="somefield" value="testing" type="text">
    <button type="submit">Send</button>
</form>

</body>
</html>


/mvh
</bole>
Avatar billede olebole Juniormester
07. december 2011 - 00:29 #10
- og sender du til et andet dokument, kan du medsende sidens URL i et gemt felt:


<form action="response.php" method="post">
    <input name="return_page" value="<?php print $_SERVER['PHP_SELF'] ?>" type="hidden">
    ... osv ... osv ...
    <button type="submit">Send</button>
</form>


- og så bruge værdien til at sende brugeren tilbage til det rette sted. Man kunne skrive sådan i response.php:


<?php
if (!empty($_POST)) {
    // Do some PHP-stuff here
   
    header('Location: '.(isset($_POST['return_page']) ? $_POST['return_page'] : 'index.php'));
    exit();
}
?>

Avatar billede tobrukDk Novice
07. december 2011 - 06:38 #11
Kan jeg også bare kalde den post.php
Avatar billede olebole Juniormester
07. december 2011 - 17:41 #12
Yups ... du må endda kalde den julepost.php, hvis du vil  *<|:o) - ho-ho-ho!
Avatar billede kjeldsted Novice
07. december 2011 - 20:43 #13
Hvis man fra én side bliver sendt videre til fx. post.php hvor tingene postes og så bliver videresendt tilbage til den oprindelige side, vil man vel altid kunne trykke 'Tilbage' hvor formen sendes igen???
Avatar billede tobrukDk Novice
07. december 2011 - 21:05 #14
når jeg gør det så kommer der sådan blink side hvis man kan sig det sådan :D
Avatar billede tobrukDk Novice
07. december 2011 - 21:11 #15

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Jesper - kommentar system</title>
</head>
<body>
<h3>Jesper - kommentar system</h3>
                        <?php
                            /* MySQL connect */
                            $host = "localhost";
                            $user = "---";
                            $pass = "---";
                            $db = "---";
                             
                            $con = mysql_connect($host, $user, $pass);
                            $dbcon = mysql_select_db($db, $con);
                           
                            if(!$dbcon) {
                                echo 'something wrong with your db!';
                            }
                            /* MySQL connect END */
                           
                            $query = "SELECT * FROM kommentar ORDER BY id DESC LIMIT 10";
                            $result = mysql_query($query);
                            while($row = mysql_fetch_array($result)) {
                            $navn = $row['navn'];
                            $besked = $row['besked'];
                           
                            echo "<div id='box'>";
                            echo "<p>";
                            echo "<li>" . $navn . "</li>";
                            echo $besked;
                            echo "</p>";
                            echo "</div>";
                           
                            }
                    ?>
<?php
/* MySQL connect */
$host = "localhost";
$user = "---";
$pass = "---;
$db = "---";
 
$con = mysql_connect($host, $user, $pass);
$dbcon = mysql_select_db($db, $con);

if(!$dbcon) {
    echo 'something wrong with your db!';
}
/* MySQL connect END */

if(isset($_POST["send"])) {
    $error = false;
    $fejlbesked = "";

    $navn = mysql_real_escape_string($_POST["navn"]);
    $besked = mysql_real_escape_string($_POST["besked"]);

    if(!empty($navn)) {
        if(!empty($besked)) {
          $error = false;
        } else {
          $fejlbesked .= "Du mangler at udfylde en besked!<br />";
          $error = true;
        }   
    } else {
        $fejlbesked .= "Du mangler at udfylde dit navn!<br />";
        $error = true;
    }

    if($error == true) {
      echo $fejlbesked;
      $error = true;
    } else {
      $sql = mysql_query("INSERT INTO kommentar VALUES('','$name','$text')");
      if(!$query) {
        $error = true;
      } else {
        echo '<p>' . 'Beskeden er blevet tilføjet!' . '</p>';
      }
    }
}

mysql_close($dbcon);
?>
<form method="post" action="post.php">
    Navn: <input id="navn" type="text" name="navn" /><br />
    Besked: <textarea name="besked"></textarea><br />
    <input id="send" type="submit" name="send" value="Send besked" />
</form>

</body>
</html>
Avatar billede olebole Juniormester
08. december 2011 - 00:08 #16
@Jesper: Prøv noget i denne stil i stedet for:


<?php
function insertComment() {
    /* MySQL connect */
    $host = "localhost";
    $user = "";
    $pass = "";
    $db = "";
     
    $con = mysql_connect($host, $user, $pass);
    $dbcon = mysql_select_db($db, $con);
   
    if(!$dbcon) {
        echo 'something wrong with your db!';
    }
    /* MySQL connect END */
   
    $error = false;
    $fejlbesked = "";

    $navn = mysql_real_escape_string($_POST["navn"]);
    $besked = mysql_real_escape_string($_POST["besked"]);

    if(!empty($navn)) {
        if(!empty($besked)) {
          $error = false;
        } else {
          $fejlbesked .= "Du mangler at udfylde en besked!<br />";
          $error = true;
        }   
    } else {
        $fejlbesked .= "Du mangler at udfylde dit navn!<br />";
        $error = true;
    }

    if($error == true) {
      echo $fejlbesked;
      $error = true;
    } else {
      $sql = mysql_query("INSERT INTO kommentar VALUES('','$name','$text')");
      if(!$query) {
        $error = true;
      } else {
        echo '<p>' . 'Beskeden er blevet tilføjet!' . '</p>';
      }
    }
   
    mysql_close($dbcon);
}

if (!empty($_POST) && isset($_POST['contxt']) && $_POST['contxt']=='insertComment') {
    insertComment();
    header('Location: '.$_SERVER['PHP_SELF']);
    exit();
}

function getComments() {
    /* MySQL connect */
    $host = "localhost";
    $user = "---";
    $pass = "---";
    $db = "---";
     
    $con = mysql_connect($host, $user, $pass);
    $dbcon = mysql_select_db($db, $con);
   
    if(!$dbcon) {
        echo 'something wrong with your db!';
    }
    /* MySQL connect END */
   
    $query = "SELECT * FROM kommentar ORDER BY id DESC LIMIT 10";
    $result = mysql_query($query);
    = '';
    while($row = mysql_fetch_array($result)) {
        $navn = $row['navn'];
        $besked = $row['besked'];
       
        $strHTML .= "<div id='box'>";
        $strHTML .= "<p>";
        $strHTML .= "<li>" . $navn . "</li>";
        $strHTML .= $besked;
        $strHTML .= "</p>";
        $strHTML .= "</div>";
    }
    return $strHTML;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Jesper - kommentar system</title>
</head>
<body>
<h3>Jesper - kommentar system</h3>

<?php echo getComments() ?>

<form method="post" action="post.php">
    <input type="hidden" name="contxt" value="insertComment">
    Navn: <input id="navn" type="text" name="navn" /><br />
    Besked: <textarea name="besked"></textarea><br />
    <input id="send" type="submit" name="send" value="Send besked" />
</form>

</body>
</html>

Avatar billede tobrukDk Novice
08. december 2011 - 06:01 #17
Okay tak kigger på det når jeg kommer i skole . ;) og tak ole for du har tid til at hjælp din gsmmel elev !  ;) håber det gå godt med dig !! ;) jeg har det fint nok er bare træt af billede ting ting ugen det er lige til at få grå hår på boller !!! Åååhhh man
Avatar billede olebole Juniormester
08. december 2011 - 16:51 #18
Hehe ... ja, der er meget at lære, men du er jo en frisk, ung mand - og jeg ved, du knokler på med det  *o)
Avatar billede tobrukDk Novice
08. december 2011 - 16:58 #19
Frisk ???, Jeg synes det virkelig er noget lort lige nu kan jeg ikke se hvorfor man skal tage billeder af noget? , :O men fuck det, jeg skal bare score 12 tale så er jeg fucking glad nok :D
Avatar billede olebole Juniormester
08. december 2011 - 17:08 #20
*D
Avatar billede tobrukDk Novice
08. december 2011 - 17:26 #21
det virker desværre ikke. Den vise bare sådan her;
http://www.jesperbok.dk/skoleimg/ole.png
Avatar billede olebole Juniormester
08. december 2011 - 17:39 #22
Ja, men jeg kan ikke se, hvad det er for en fejl, du laver
Avatar billede tobrukDk Novice
08. december 2011 - 17:51 #23
http://jesperbok.dk/system/ Det er til siden
Avatar billede tobrukDk Novice
09. december 2011 - 15:20 #24
Ole. Jeg dropper det pga så vil jeg helst bare vente til at jeg få lærer noget mere :D
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

IT-JOB