Avatar billede Slettet bruger
15. december 2010 - 21:47 Der er 11 kommentarer og
1 løsning

Indsætter ikke i DB

Problem 2 med dette script, når jeg trykker på Tilføj Link, sker der ikke andet end at siden vises i et nyt vindue, selve siden med formularen skifter ikke, og der gemmes intet i databasen..

Index.php med formular

<?php
  include($DOCUMENT_ROOT.'/php/start.php');
  require($_SERVER["DOCUMENT_ROOT"].'/php/links_boot.php');
  include($_SERVER["DOCUMENT_ROOT"].'/php/links_functions.php');

$thisfile = $PHP_SELF;
// linkstrenge til de tre funktioner.
$linkshowtop = "<a href=\"$thisfile\">Top links</a> &nbsp; ";
$linkshowall = "<a href=\"$thisfile?show=all\">Vis alle</a> &nbsp; ";
$linkadd = "<a href=\"$thisfile?addurl=yes\">Tilføj URL</a>";

if (strtolower($show) == "all") {
  $where = "";
} else {
  $where = " having point >= 0";
}

$count = query("select sum(hits) as cnt from links");
$hitcount = $count[0]->cnt;

$result = query("select id,title,date,rating,hits,url,(hits*rating-(to_days(curdate())-to_days(date))) as point ".
                "from links$where order by title desc, point DESC");

page_start("");

echo $linkshowtop;
echo $linkshowall;
echo $linkadd;

if (!isset($addurl)) {
echo "<table width='800' border=0 cellpadding=2 cellspacing=0>\n";
  for ($i=0;$i<sizeof($result);$i++) {
    if ($result[$i]->point >= 0) {
      $point = $result[$i]->point;
    } else {
      $point = "-";
    }
    echo "<tr><td><p title='".$result[$i]->url."'>".
        "<a href='/links/golink.php?id=".$result[$i]->id."' target='_blank'>".
        stripslashes($result[$i]->title)."</a><a href='".$result[$i]->url."'>".
        "</a></td>".
        "<td><img src=\"/images/links".$result[$i]->rating.".gif\" ".
        "alt='".stars($result[$i]->rating)."' width='33' height='9'></td>".
        "<td align=\"right\">".$result[$i]->hits."</td>";
    echo "<td align=\"right\">$point</td>";

    echo "</tr>\n";
  }

echo "</table>";
} else {
?>

<form action='/links/addlink.php' method='post' target='_blank'>
  <table width='380' border='0' align='center'>
    <tr>
      <td>Websidens navn : <br>
        <input type='text' name='title' value='' size='30' id='t350'></td>
    </tr>
    <tr>
      <td>URL : <br>
        <input type='text' name='url' value='http://' size='30' id='t350'></td>
    </tr>
    <tr>
      <td align='center'><br /><input type='submit' value='Tilføj link' id='submit' name="submit"></td>
    </tr>
  </table>
</form>
<?php }
echo "Total hits : $hitcount\n";
echo mysql_error();

page_end();

include($DOCUMENT_ROOT.'/php/end.php');

?>


Addlink.php

<?php
  require($_SERVER["DOCUMENT_ROOT"].'/php/links_boot.php');

if (isset($url) && isset($title)) {
$sql = ("insert into links(date,title,url,hits,rating,ip) ".
        "values('".date("Y-m-d")."','".addslashes($title).
        "','$url',0,0,'".$REMOTE_ADDR."')");
  squery($sql);
  header("Location: $url");
  exit;
}
?>

Links_boot.php

<?php
$DB_HOST="";
$DB_USER="";
$DB_PASS="";
$DB_DATABASE="";

if ($BOOT_PHP != 1) {

  function query($string) {
    global $DB_CONNECTION;
    global $DB_DATABASE;
    global $DB_USER;
    global $DB_PASS;
    global $DB_HOST;

    if (!$DB_CONNECTION)
      $DB_CONNECTION=mysql_connect($DB_HOST,$DB_USER,$DB_PASS);

    $sqlresult=mysql_db_query($DB_DATABASE,$string,$DB_CONNECTION);
    if (!$sqlresult) {
      return array();
    }
    while ($row=mysql_fetch_object($sqlresult)) {
      $result[]=$row;
    }
    return $result;
   
}
 
  function squery($string) {
    global $DB_CONNECTION;
    global $DB_DATABASE;
    global $DB_USER;
    global $DB_PASS;
    global $DB_HOST;

    if (!$DB_CONNECTION)
      $DB_CONNECTION=mysql_pconnect($DB_HOST,$DB_USER,$DB_PASS);

    $sqlresult=mysql_db_query($DB_DATABASE,$string,$DB_CONNECTION);
  }

  function mappath() {
    /* Credits to Beast for helping me with this one */
    global $HTTP_HOST;
    global $PHP_SELF;
    return "http://" . $HTTP_HOST. dirname($PHP_SELF)."/";
  }

  $BOOT_PHP = 1;
}

?>


og sidst, links_functions.php

<?php
function stars($count) {
if ($count > 0) {
  return "[".str_repeat("+",$count).str_repeat("-",10-$count)."]";
} else {
  return "Afventer...";
}
}

function line($width=380) {
  $temp = "<table cellpadding=0 cellspacing=2 border=0 width=$width height=1>".
          "<tr><td bgcolor=#0000cf height=1 width=$width>".
          "<img src=\"/rate/cleardot.gif\" alt=\"----------------------\" width=1 height=1></td></tr></table>\n";

  return $temp;
}

function page_start() {

  echo "<center><p><b>$title</b></p>\n";
}

function page_end() {
  echo "</center>\n";
}
?>

Koderne er meget gamle, dvs. de fungerede en gang, kan de mon være 'for' gamle?

Kan de opdateres så de fungerer bedre?

Siden i funktion: www.anakin.dk/links
Avatar billede webweaver Praktikant
15. december 2010 - 21:50 #1
Hvad sker der, hvis du bare fjerner target_blank fra denne linie, <form action='/links/addlink.php' method='post' target='_blank'>?
Avatar billede Slettet bruger
16. december 2010 - 15:57 #2
Så skifter siden til den adresse der er tastet ind, men der gemmes stadig ikke noget i DB :(
Avatar billede webweaver Praktikant
16. december 2010 - 17:49 #3
Så langt, så godt :-)
Får du bare en blank side nu så?

Prøv at udskifte

$sql = ("insert into links(date,title,url,hits,rating,ip) ".
        "values('".date("Y-m-d")."','".addslashes($title).
        "','$url',0,0,'".$REMOTE_ADDR."')");

med

$sql = ("insert into links(date,title,url,hits,rating,ip) ".
        "values('".date("Y-m-d")."','".addslashes($title).
        "','$url',0,0,'".$REMOTE_ADDR."')") or die(mysql_error());
Avatar billede Slettet bruger
16. december 2010 - 19:55 #4
Der sker stadig intet, siden vises i et nyt vindue, men intet gemt i DB, ej heller en fejlmeddelelse.
Avatar billede webweaver Praktikant
16. december 2010 - 21:26 #5
Åbner den stadig et nyt vindue efter du har fjernet target_blank?

Hvad hvis du ændrer

<form action='/links/addlink.php' method='post' target='_blank'>

til

<form action="links/addlink.php" method="post">

...

Er PHP fejlmeddelelser slået til på dit webhotel?
Avatar billede Slettet bruger
18. december 2010 - 11:05 #6
Underligt, der bliver stadig ikke indsat noget i DB. Jeg gruer for at det vare er en dum fejl, for koden har jo virket før, altså for en del år siden, og så meget har jeg heller ikke ændret i den.

Jeg ved ikke om fejlmeddelelser er slået til eller fra, undersøger det lige.
Avatar billede webweaver Praktikant
18. december 2010 - 12:40 #7
Prøv lige at skifte følgende

<?php
  require($_SERVER["DOCUMENT_ROOT"].'/php/links_boot.php');

if (isset($url) && isset($title)) {
$sql = ("insert into links(date,title,url,hits,rating,ip) ".
        "values('".date("Y-m-d")."','".addslashes($title).
        "','$url',0,0,'".$REMOTE_ADDR."')");
  squery($sql);
  header("Location: $url");
  exit;
}
?>


ud med

<?php
  require($_SERVER["DOCUMENT_ROOT"].'/php/links_boot.php');

if (isset($url) && isset($title)) {
$sql = ("insert into links(date,title,url,hits,rating,ip) ".
        "values('".date("Y-m-d")."','".addslashes($title).
        "','$url',0,0,'".$REMOTE_ADDR."')");
  squery($sql);
  header("Location: $url");
  exit;
} else {
echo "Der opstod en fejl. Denne if sætning blev ikke opfyldt.";
}
?>


Skriver den så noget nu?

Alle de filer du har her til systemet, ligger de i samme mappe?
Avatar billede Slettet bruger
18. december 2010 - 19:49 #8
Jep, alle filer ligger i samme mappe. Tror du man kunne flette dem sammen i én fil? Og ville det være klogt at begynde på?

Jeg når ikke at se nogen fejl meddelelse, da siden skifter til den indtastede.
Avatar billede webweaver Praktikant
18. december 2010 - 20:22 #9
Hvis filerne ligger det samme sted, hvorfor ser din action så således ud?;

action='/links/addlink.php' ...

Her skriver du at addlink.php ligger i en mappe som hedder links.
Hvis filerne ligger samme sted, skal stien bare være

action='addlink.php'
Avatar billede Slettet bruger
18. december 2010 - 20:34 #10
Fandt en tidligere version af scriptet. Nu synes den del med at indsætte at virke.

Du må gerne angive svar, og som tak for den tid du har brugt, får du point.
Avatar billede Slettet bruger
18. december 2010 - 20:42 #11
Jeg fik rettet den med /links/addlink.php til bare addlink.php :)
Avatar billede webweaver Praktikant
18. december 2010 - 21:36 #12
Godt at du fik det til at virke :-)
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