Avatar billede detail Nybegynder
01. juli 2005 - 15:39 Der er 1 kommentar og
2 løsninger

popup i stedet for "top"

Hej jeg sidder og tilpasser en gæstebog til min hjemmeside. Selve PHP filerne har jeg fundet på nettet, men der er nogle tilpasninger jeg ikke rigtig har styr på.
Når der er en fejl i den formular "gæsten" udfylder, så kommer der en fejlmeddelse. Denne fejlmeddelse kunne jeg godt tænke mig åbnede i et lille browservindue i stedet for i den eksisterende browser. Det skal gerne være et lille popup jeg selv kan definere størrelsen på. Jeg har en lille fornemmelse af at det er denne linie der skal kodes om, men til hvad ?
echo top("Fejl") . "Gæstebogen brokkede sig lidt over dit input:" . $fejlmelding . $generel_tekst . bund();
    exit;

Her er hele scriptet:

<?php

require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php");



if(is_array($HTTP_POST_VARS)) {
  $navn = $HTTP_POST_VARS['navn'];
  $epost = $HTTP_POST_VARS['epost'];
  $besked = $HTTP_POST_VARS['besked'];
} elseif (is_array($_POST)) {
  $navn = $_POST['navn'];
  $epost = $_POST['epost'];
  $besked = $_POST['epost'];
}




function gbog_fejl($fejl) {

    $generel_tekst = "<p>V&aelig;r venlig at g&aring; tilbage og ret til.</p>";

    $fejlmelding = "<ul>";

    for($i=0;$i<count($fejl);$i++) {
        $fejlmelding .= "<li>". $fejl[$i];
    }

    $fejlmelding .= "</ul>";

    echo top("Fejl") . "G&aelig;stebogen brokkede sig lidt over dit input:" . $fejlmelding . $generel_tekst . bund();
    exit;

}



function skriv_i_gbog($navn, $epost, $besked) {
   
    $ip = getenv('REMOTE_ADDR');

    $sql = "insert into gaestebog(navn,epost,besked,ip,tid)
        values('$navn','$epost','$besked','$ip',now())";

    aabn_forbindelse_og_vaelgdb();
    sql_spoerg($sql);
    luk_forbindelse();

}



if(!ereg("[A-z0-9]+", $navn)) {

    $fejl[] = "Du har ikke skrevet dit navn";

}

if(!ereg("[A-z0-9]+", $besked)) {

    $fejl[] = "Du har ikke skrevet nogen besked";

}

if(count($fejl) > 0) {
    gbog_fejl($fejl);
}



skriv_i_gbog(addslashes($navn),addslashes($epost),addslashes($besked));



header("Location: gbog.php");



if($epost_p == "t") {

  $ip = getenv('REMOTE_ADDR');
  $epostens_indhold = "$navn har skrevet denne besked fra IP-adressen $REMOTE_ADDR:\n-----------------------------------------------------\n\n$besked";

  mail($admin_epost, "Der er skrevet i din gBog!", $epostens_indhold);

}

?>
Avatar billede mr-kill Nybegynder
01. juli 2005 - 17:03 #1
hmmm det er java script du skal ha fat i...
Avatar billede mrgumble Nybegynder
03. juli 2005 - 23:36 #2
Som sagt, så skal du have fat i JavaScript, da php foregår på serveren og en popup-vindue er på klientsiden. DERFOR!
Det jeg vil foreslå du skal gøre er, at du smider din fejlbesked over i en $_SESSION (kræver at du starter session med session_start()), så du kan benytte dig af den i gbog.php, hvor resten af arbejdet ligger. Dog skal du have tilføjet endnu en fil til din beholdning, da fejlbeskeden ikke blot er en almindelig fejl besked:
fejlbesked.php:
<? session_start(); ?>
<html>
<head>...</head>
<body>
<h1>Fejl!</h1>
<p>G&aelig;stebogen brokkede sig lidt over dit input:
<?= $_SESSION['fejlmelding']; ?><br />
<?= $_SESSION['generel_tekst']; ?></p>
<? bund(); ?>
<!-- End of file -->

I gbog.php skal du, som sagt, have tilføjet lidt JavaScript. F.eks.:
<body <?
if ($_SESSION['vis_fejl] == true)
  echo 'onLoad="window.open(\'http://ditdomæne/fejlbesked.php\');"; ?>>
Avatar billede mrgumble Nybegynder
03. juli 2005 - 23:38 #3
Hov, glemte at tilføje, at du skal erstatte den anden sidste linie af din funktion gbog_fejl til:
$_SESSION['fejlmelding'] = $fejlmedling;
$_SESSION['generel_tekst'] = $generel_test;
$_SESSION['vis_fejl'] == true;
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