Avatar billede pitufo Nybegynder
03. juli 2003 - 11:12 Der er 12 kommentarer og
1 løsning

hvorfor sendes informationerne ikke videre på en "die"?

<?
  if ($submit) {
    if(!$overskrift)
        $errorArray[0] = "Ingen overskrift er indtastet!";
    if (!$lokalenr)
        $errorArray[1] = "Intet lokalenummer er indtastet!";
    if (!$starttid)
        $errorArray[2] = "Intet starttidspunkt er indtastet!";
    if (!$sluttid)
        $errorArray[3] = "Intet starttidspunkt er indtastet!";
    if (!$ansvarlig)
        $errorArray[4] = "Ingen ansvarlig er indtastet!";
    if(count($errorArray) < 1)
        die("<script>document.location.href='add_arrangement_write.php'</script>");
}
?>
-------add_arrangement_write.php--------
<html>
<head>
</head>
<body>
<form>

<?php
$link = mysql_connect("**", "***", "****");

mysql_select_db("**$link) or die("Could not select database");

$insert1 = "INSERT INTO arrangement (arrangement_id, overskrift, arrangdag, arrangdato, arrangmaaned, arrangaar, start_tid, slut_tid, beskrivelse, ansvarlig, sdu_arrangementskalender, arrang_dato_vis)
            VALUES (NULL,'$overskrift', '$dag','$dato','$maaned','$aar','$starttid','$sluttid','$beskrivelse','$ansvarlig', '$kalender', concat('$aar','-','$maaned','-','$dato'))";

mysql_query($insert1);
$newid = mysql_insert_id();

$insert2 = "INSERT INTO lokation (lokation_id, campuslokation, lokalenavn, lokalenummer)
            VALUES ('$newid','$campus','$lokalenavn','$lokalenr')";

$insert3 = "INSERT INTO visning (visning_id, vis_starttid, vis_sluttid)
            VALUES ('$newid', '$vis_starttid', '$vis_sluttid')";




mysql_query($insert2);
mysql_query($insert3);


echo "Opdatering OK";
?>
</form>
----------------

Hej

Det første script er forkortet lidt resten af scripet indeholder kun en masse formularer da jeg mener det er her problemet er, men du kan jo sige til hvis jeg ikke har ret så kan jeg evt poste resten af scriptet

Herover er 2 scripts de ene sender(eller burde sende) informationer videre så de kan blive sat ind i en mysql DB men der bliver ikke indsat information i databasen, der bliver dog oprettet en post i db men den indeholder ingen informationer.

Problemet er kommet efter jeg har tilføjet valideringen. Jeg har på fornemmelsen at det har noget at gøre med "die"-sætningen men jeg kan ikke greje hvorfor :-)

tak for hjælpen

Pitufo
Avatar billede erikjacobsen Ekspert
03. juli 2003 - 11:15 #1
Din
  document.location.href='add_arrangement_write.php
sender ikke variablerne videre til næste script
Avatar billede jakoba Nybegynder
03. juli 2003 - 11:20 #2
fordi 'die' betyder det der står i ordbogen. såsnart php udfører den funktion dør scriptet såsnart fejlmeddelelsen er udskrevet.

du kan evt undvære die funktionen:

$res = mysql_querey( "bla bla" );    // nb: ikke nogen or die(...)
if ( $res === false ) {
    echo mysql_error();            // skriv fejlmeddelelsen uden at dø
}

men pas på, længere nede prøver du nok at bruge de data du tror du hentede. Det går galt når $res ikke er et rigtigt resultatsæt, men blot værdien false.

mvh JakobA
Avatar billede erikjacobsen Ekspert
03. juli 2003 - 11:22 #3
Jo, jakoba. Scriptet dør, men javascripten udføres (i de fleste browsere).
Utraditionel konstruktion, ganske vist.
Avatar billede jakoba Nybegynder
03. juli 2003 - 11:31 #4
Du har ret. Læste ikke ordentligt.
Avatar billede pitufo Nybegynder
07. juli 2003 - 09:49 #5
Tak for kommentarerne

erikjacobsen-->>
Men hvorfor bliver variablerne så ikke sendt videre og hvordan løser jeg det problem
Avatar billede erikjacobsen Ekspert
07. juli 2003 - 09:54 #6
Fordi variabler fra en form (fx) kun umiddelbart er tilgængelige på
den efterfølgende side. Hvad med at ordne det hele i samme script?
Avatar billede pitufo Nybegynder
07. juli 2003 - 13:00 #7
<?php
  if ($submit) {
    if(!$overskrift)
        $errorArray[0] = "Ingen overskrift er indtastet!";
    if (!$lokalenr)
        $errorArray[1] = "Intet lokalenummer er indtastet!";
    if (!$starttid)
        $errorArray[2] = "Intet starttidspunkt er indtastet!";
    if (!$sluttid)
        $errorArray[3] = "Intet starttidspunkt er indtastet!";
    if (!$ansvarlig)
        $errorArray[4] = "Ingen ansvarlig er indtastet!";
    if(count($errorArray) < 1)
        exit("<script>document.location.href='add_arrangement_write.php?$overskrift'</script>");

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

jeg har prøvet at lave en lille ændring nemlig at indsætte variablerne i selve adressefeltet (se sidste linie i ovenstående script)
Dette viser at variablerne bliver overført da der i næste script komme til at stå:
"http://www.sdu.dk/infotavler/udvikling/add_arrangement_write.php?overskrifttest"

i adressefeltet i browseren, men der bliver stadig ikke indsat noget i DB
Avatar billede erikjacobsen Ekspert
07. juli 2003 - 13:11 #8
Så skal du jo igang med
  ...?overskrift=$overskrift...
Avatar billede pitufo Nybegynder
07. juli 2003 - 13:14 #9
hmmm yep der var det vist mig der var spaden, det jo klart og mange tak for lyset, erikjacobsen ;-)
Avatar billede thesolution Nybegynder
09. juli 2003 - 17:38 #10
Problemet er at du ikke overføre værdierne til næste side. Det kan gøres på to måder.
1) ved at indsætte dem i url'en. Altså
  http://www.sdu.dk/infotavler/udvikling/add_arrangement_write.php?overskrifttest=1

Altså ...?overskrifttest=$submit

Og så skal du selvfølgelig huske at trække dem ud af url'en igen.

eller
2) i et formular felt. Derved overføres de skjult.

mvh. Tine
Avatar billede pitufo Nybegynder
10. juli 2003 - 12:07 #11
Hej alle

Hmm jeg fik løst problemet. Jeg løste det med at sætte variabler ind i urlen i stedet. Jeg forstår stadigvæk ikke hvorfor det ikke virker på den anden måde men det er også lige meget, via urlen er ok.

erikjacobsen smid lige et svar for point :-)

takker
Avatar billede erikjacobsen Ekspert
10. juli 2003 - 21:26 #12
Nej, skidt med point - jeg har ikke været god nok til at forklare dig hvorfor det ikke virker på "den anden måde"...
Avatar billede pitufo Nybegynder
17. juli 2003 - 09:02 #13
svar
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