Avatar billede Slettet bruger
20. oktober 2010 - 13:25 Der er 6 kommentarer og
1 løsning

Blank side og ingen entry i DB

Action.php ser således ud:
<?php
session_start();

if(!$_SESSION['login'] == 0) {
    mail("kogebog@anakin.dk", "Ny opskrift", "Opskrift afventer godkendelse.");
    header("Location: /opskrifter/index.php");
    exit();
}

$loginid = $_SESSION["ID"];

$db = mysql_connect("","","");
mysql_select_db("", $db);

if ($opret == "Godkend"){

    mysql_query("INSERT INTO kogebog_opskrifter (overskrift, kategori_id, personer, tid, pris, ingredienser, tilberedning, serveringsforslag, tilbehor, tips, pynt, fryseegnet, historie, aarstid, nationalitet, kj, kcal, check1, check2, userid) VALUES ('$overskrift', '$kategori', '$personer', '$tid', '$pris', '$ingredienser', '$tilberedning', '$serveringsforslag', '$tilbehor', '$tips', '$pynt', '$fryseegnet', '$historie', '$aarstid', '$nationalitet', '$kj', '$kcal', '$check1', '$check2', '$loginid')");
    $query = mysql_query("SELECT * FROM kogebog_opskrifter ORDER BY opskriftid DESC LIMIT 1");
    while($rs = mysql_fetch_array($query))
    {
        $_SESSION["opskriftidd"] = $rs["opskriftid"];
    }
    header("Location: upload.php");
    exit();

}
?>

Indtast.php ser nogenlunde således ud:
<?php
/* session_start();
if(!$_SESSION['login'] == 1) {
header("Location: /logind.php");
exit;
}*/
  $page_title         = "Opskrifter";
  $stylesheet        = "style";
  $bg                = "index";
  $table            = "900";
  $menu                = "opskrifter";
  include($DOCUMENT_ROOT.'/php/start.php');
?>

<form method="POST" action="action.php" onSubmit="return checkform(this)">
    <table align="center" cellspacing="5" border="0">
      <tr>
        <td colspan="2" class="25_ind">Udfyld så mange felter som muligt</td>
      </tr>
      <tr>
        <td valign="top">
          Opskrift:<br /><input type="text" name="overskrift" id="overskrift"><br />
          Kategori:<br />..--OSV OSV--..
      <tr>
        <td colspan="2" align="center">
          <input type="submit" name="opret" value="Godkend" id="submit">
          <input type="reset" name="slet" value="Nulstil" id="reset">
        </td>
      </tr>
    </table>
</form>

<?php include($_SERVER["DOCUMENT_ROOT"].'/php/end.php'); ?>

Når jeg trykker på "Godkend" får jeg en blank side, og intet gemmes i DB'en...
Hvad dælen er der gået galt??
Avatar billede Stickano Nybegynder
20. oktober 2010 - 14:07 #1
Mangler du ikke at kalde din $db i din mysqli_query?
Prøv at sætte et 'or die(mysqli_error($db));' efter din mysqli_query.
Avatar billede Slettet bruger
20. oktober 2010 - 14:38 #2
Nu har jeg sat den ind her:

if ($opret == "Godkend"){

    mysql_query("INSERT INTO kogebog_opskrifter (overskrift, kategori_id, personer, tid, pris, ingredienser, tilberedning, serveringsforslag, tilbehor, tips, pynt, fryseegnet, historie, aarstid, nationalitet, kj, kcal, check1, check2, userid) VALUES ('$overskrift', '$kategori', '$personer', '$tid', '$pris', '$ingredienser', '$tilberedning', '$serveringsforslag', '$tilbehor', '$tips', '$pynt', '$fryseegnet', '$historie', '$aarstid', '$nationalitet', '$kj', '$kcal', '$check1', '$check2', '$loginid')");
    $query = mysql_query("SELECT * FROM kogebog_opskrifter ORDER BY opskriftid DESC LIMIT 1") or die(mysqli_error($db));


Men der sker ingenting... Jeg fik vist lavet noget så hele formularen nu går igennem uden problemer og som den skal, lige med den undtagelse at, der stadig ikke gemmes noget i DB'en.

Kan du vise mig helt præcist hvordan og hvor jeg skal sætte "or_die" ind henne.
Avatar billede Stickano Nybegynder
20. oktober 2010 - 14:44 #3
Jeg tror det er fordi din query ikke kalder din $db først.
Prøv at kald $db som her under. Samt hvor du kan placere din 'or die'-

mysql_query($db,"INSERT INTO kogebog_opskrifter (overskrift, kategori_id, personer, tid, pris, ingredienser, tilberedning, serveringsforslag, tilbehor, tips, pynt, fryseegnet, historie, aarstid, nationalitet, kj, kcal, check1, check2, userid) VALUES ('$overskrift', '$kategori', '$personer', '$tid', '$pris', '$ingredienser', '$tilberedning', '$serveringsforslag', '$tilbehor', '$tips', '$pynt', '$fryseegnet', '$historie', '$aarstid', '$nationalitet', '$kj', '$kcal', '$check1', '$check2', '$loginid')")or die(mysqli_error($db));
Avatar billede michael_stim Ekspert
20. oktober 2010 - 14:49 #4
Du skal sætte den til at vise fejlmeddelelser så længe du udvikler.
Avatar billede Stickano Nybegynder
20. oktober 2010 - 14:50 #5
Hov, så også lige at det er en mysql_query du har. Selvom det sikkert nok kan virke med mysql, så har jeg lært kun at bruge mysqli. Ved ikke om det gør en forskel men du kan da prøve det.
mysqli_query i stedet for mysql_query.
Avatar billede Slettet bruger
20. oktober 2010 - 18:35 #6
Det er også ofte en god hjælp at lave selve SQL-sætningen i en streng, og så bruge den i kaldet. For så kan du vise den hvis det går galt:

$SQL = "INSERT INTO kogebog_opskrifter (overskrift, kategori_id, personer, tid, pris, ingredienser, tilberedning, serveringsforslag, tilbehor, tips, pynt, fryseegnet, historie, aarstid, nationalitet, kj, kcal, check1, check2, userid) VALUES ('$overskrift', '$kategori', '$personer', '$tid', '$pris', '$ingredienser', '$tilberedning', '$serveringsforslag', '$tilbehor', '$tips', '$pynt', '$fryseegnet', '$historie', '$aarstid', '$nationalitet', '$kj', '$kcal', '$check1', '$check2', '$loginid'";

mysql_query($db,$SQL) or
  die("Fejl ved indsættelse: " . mysql_error() . "<hr>$SQL<hr>");

Ku' det tænkes at der er en ' i en af dine variabler ?
Avatar billede Slettet bruger
24. oktober 2010 - 15:49 #7
Tak for alle jeres forslag, de er gemt til evt. senere brug. Det hele har vist sig at være serveren der var FUBAR. Det er rettet nu og det synes at køre stabilt igen.
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