Beste allemaal,
Ik heb een probleem met een niet werkende link naar een download counter op de Netfirms server.
Deze link werkt wel uitstekend op mijn eigen PC in localhost.
De link wordt opgebouwd uit een query in mysql waarbij gebruik gemaakt wordt van een $id voor row.
Dit is de standaard query:
<?php
$id = $_GET['id'];
// Make a MySQL Connection
include 'mysql.connect.php';
mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die(mysql_error());
mysql_select_db($mysqldb) or die(mysql_error());
// Retrieve all the data from the "interview" table
$result = mysql_query("SELECT * FROM interview where a_nummer=$id")
or die(mysql_error());
// store the record of the "interview" table into $row
$row = mysql_fetch_array( $result );
mysql_close();
?>
Hierna wordt de link opgebouwd
<a HREF="interviews/<?PHP echo $row['a_namecode']; ?><?PHP echo $row['a_radiofileindex']; ?>/<?PHP echo $row['a_namecode']; ?>_low.wax" target="_top" onclick="parent.location='updater/stats/audiocounter.php?url=<?PHP echo $row['a_nummer']; ?>a_countwmv'"><b>Dial up</b></a>
Voorbeeld voor $id=24, de $id van Dr. Alton Arp waarvan wij een audio interview hebben.
<a HREF="interviews/arp/arp_low.wax" target="_top" onclick="parent.location='updater/stats/audiocounter.php?url=24a_countwmv'"><b>Dial up</b></a>
Hiermee worden twee dingen gedaan.
Ten eerste wordt een WAX file aangeroepen waarmee een audio bestand wordt geopend in een stand alone WMP. Het gekke is dat dit prima werkt op de PC in local host EN op de Netfirms server zonder dat er een type="audio/x-ms-wax" wordt meegestuurd.
Ten tweede wordt er middels het onclick argument een download counter (audiocounter.php) geactiveerd.
De counter ziet er zo uit
<?php
// get the URL from the variable
$urlupdate = $_GET['url'];
// Splits $urlupdate op met ereg_replace in $a_column en $a_nummer
$a_column = ereg_replace("[^A-Za-z\._-]", "", $urlupdate);
$a_nummer = ereg_replace("[^0-9]", "", $urlupdate);
include '../../mysql.connect.php';
mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die(mysql_error());
mysql_select_db($mysqldb) or die(mysql_error());
$update = "UPDATE interview SET " . $a_column . " = " . $a_column . "+1 WHERE a_nummer = " . $a_nummer;
$result = mysql_query($update);
mysql_close();
//return to previous screen
echo '<script type=""text/javascript"">history.go(-1);</script>';
?>
Een voorbeeld voor de concatenated $update hieronder voor $urlupdate = 24a_countwmv.
<?php
$urlupdate = "24a_countwmv";
echo $urlupdate;
echo "<br>";
$a_column = ereg_replace("[^A-Za-z\._-]", "", $urlupdate);
$a_nummer = ereg_replace("[^0-9]", "", $urlupdate);
echo $a_column;
echo "<br>";
echo $a_nummer;
echo "<br>";
$update = "UPDATE interview SET " . $a_column . " = " . $a_column . "+1 WHERE a_nummer = " . $a_nummer;
echo $update;
?>
Geeft keurig netjes op localhost en op de Netfirms server:
24a_countwmv
a_countwmv
24
UPDATE interview SET a_countwmv = a_countwmv+1 WHERE a_nummer = 24
En daarna ook op beide servers een perfecte database update volgens de query.
Met andere woorden, alle onderdelen werken.
Behalve met de link dus.
Nu heb ik gemerkt dat als ik de target="_top" vervang door target="_blank" dat alles het wel goed doet met de link.
Vervang deze:
<a HREF="interviews/<?PHP echo $row['a_namecode']; ?><?PHP echo $row['a_radiofileindex']; ?>/<?PHP echo $row['a_namecode']; ?>_low.wax" target="_top" onclick="parent.location='updater/stats/audiocounter.php?url=<?PHP echo $row['a_nummer']; ?>a_countwmv'"><b>Dial up</b></a>
Met deze:
<a HREF="interviews/<?PHP echo $row['a_namecode']; ?><?PHP echo $row['a_radiofileindex']; ?>/<?PHP echo $row['a_namecode']; ?>_low.wax" target="_blank" onclick="parent.location='updater/stats/audiocounter.php?url=<?PHP echo $row['a_nummer']; ?>a_countwmv'"><b>Dial up</b></a>
Maar nu wordt er een extra page, zonder zichtbare info, geopend die open blijft.
Dat is dus geen gezicht.
Ik snap er helemaal niks meer van, server setting?, syntax fout?
Kan iemand mij een duw in de goede richting geven?
Alvast hartstikke bedankt !!
Kees van Dongen
210 views