Gå til innhold

Rederict-script teller dobbelt


Anbefalte innlegg

Hei!

 

Har drevet og knotet med et script som teller klikk inn i en database. Problemet er egentlig todelt.

1. Etter mye prøving og feiling får jeg både rederictet og telt. Problemet er at den teller et klikk som to.

2. Mye av koden nedenfor kan skjæres bort og likevel funke. Men det var denne koden jeg endelig fikk til å funke.

 

testing.php

<?php
session_start();

include('mysql-config.php');

$ref_page=$HTTP_SERVER_VARS['PHP_SELF'];

session_register('id');

$res = mysql_query("SELECT * FROM linker WHERE kategori=01 ORDER BY sortering ASC");

while($row = mysql_fetch_assoc($res)){

echo "<tr><td><a href=test/redir.php?page=".$row['link']."&id=".$row['id']."><font class=m1>".$row['navn']."</a> ".$row['id']."<br><br></td></tr>";
}
?>
<br><br>
<a href="test/redir.php?page=<?=$HTTP_SERVER_VARS['PHP_SELF']?>">"Neste side"</a>

 

redir.php:

<?php
session_start();
$id=$HTTP_SESSION_VARS['id'];
$next_page=$HTTP_GET_VARS['page'];

$id=$_GET['id'];

//logger på database
$connection = @mysql_connect(localhost, bruker, passord) or die("Umulig å
få kontakt med database");

//Velger database
mysql_select_db(mindatabase);

$q="UPDATE linker SET hits=hits+1 WHERE id=$id";
$result = mysql_query($q, $connection) or die
("Could not execute query : $q." . mysql_error());

if (@mysql_query($q)) {
@mysql_close();
   header("location: {$HTTP_GET_VARS['page']}");
   exit;
} else {
echo "An error occured when recording the information.<br>SQL=$sql<br>MySQL reported: ".mysql_error();
   @mysql_close();

   exit;
}
?>

 

Så hvordan skal jeg både få den til å funke og ti lå bare telle 1?

Mitt stalltips er at denne linja er sentral i problemet:

<a href=test/redir.php?page=".$row['link']."&id=".$row['id'].">

 

Men jeg vil altså ikke at linken skal vises. Kun id, også at redir henter link fra databasen og sender videre...

 

Takker som alltid for hjelpen her!

Lenke til kommentar
Videoannonse
Annonse

Du kjører spørringen to ganger, og da må det nødvendig vis lagres to ganger:

 

$q="UPDATE linker SET hits=hits+1 WHERE id=$id";

$result = mysql_query($q, $connection) or die

("Could not execute query : $q." . mysql_error());

 

if (@mysql_query($q)) {

 

 

Det er ikke mysql_query($q) du skal sjekke der, prøv heller $result:

 

$q="UPDATE linker SET hits=hits+1 WHERE id=$id";

$result = mysql_query($q, $connection) or die

("Could not execute query : $q." . mysql_error());

 

if ($result) {

 

Videre så sjekker man ikke spørringen på den måten, ta en kikk på www..php.net/mysql_affected_rows

 

Lykke til :thumbup:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...