Reload-Sperre MYSQL

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Lukas03

Mitglied
Hallo,

wie kann ich am besten diese Reload-Sperre umbauen damit die Daten in mein MySQL übertragen werden
Die Nutzer sollen einen Parameterlink z.b. (localhost/besucher.php?=ID=10) zu Durchführung nutzen.


Sobald man draufklick soll geprüft werden, ob die Session noch nicht abgelaufen ist, wenn doch, wird hitsin erhöht.

Tutorial Link:
https://www.php-einfach.de/experte/php-codebeispiele/besucherzaehler-mit-reload-sperre/
Hier mal mein versuch, jedoch wird kein Update durchgeführt, auch keinerlei Fehlermeldung ausgegeben.

PHP:
<?php
session_set_cookie_params(3600);
session_start();

error_reporting(E_ALL);

include('Connections/config.php');
if(isset($_GET['ID'])) {
   $ID = $_GET['ID'];
 
$sql = "SELECT url FROM ts_sites WHERE ID = $ID";
foreach ($pdo->query($sql) as $row) {
$counterstand = $row['url'];

if(!isset($_SESSION['counter_ip']))
   {
$statement = $pdo->prepare("UPDATE ts_sites SET hitsin=hitsin+'1' WHERE ID= ?");
$statement->execute(array($ID));
  
} else {
   die("Kein Update");
}
 
   $_SESSION['counter_ip'] = true;
   }
 
echo $counterstand;
}
?>
 

Lukas03

Mitglied
Versuch mal den Link zu ändern
Code:
besucher.php?=ID=10
in das
Code:
besucher.php?ID=10
Sorry, war ein Schreibfehler von mir, nutze deine Variante

Hab noch einen Fehler entdeckt, diesen hab ich jetzt behoben. Update wird aber trotzdem nicht durchgeführt.

PHP:
<?php
session_set_cookie_params(5);
session_start();

error_reporting(E_ALL);

include('Connections/config.php');
if(isset($_GET['ID'])) {
   $ID = $_GET['ID'];
 
$sql = "SELECT url, hitsin FROM ts_sites WHERE ID = $ID";
foreach ($pdo->query($sql) as $row) {
$counterstand = $row['hitsin'];


if(!isset($_SESSION['counter_ip']))
   {
$statement = $pdo->prepare("UPDATE ts_sites SET hitsin=hitsin+'1' WHERE ID= ?");
$statement->execute(array($ID));
  
} else {
   die("Kein Update");
}
 
   $_SESSION['counter_ip'] = true;
   }

}
?>
 
Zuletzt bearbeitet:

basti1012

Erfahrenes Mitglied
Wenn ich die Url benutze
besucher.php?ID=10
Mit den Code
Code:
<?php
session_set_cookie_params(5);
session_start();
error_reporting(E_ALL);      
$pdo = new PDO('mysql:host=localhost;dbname=basti1012', 'basti1012', '****');

if(isset($_GET['ID'])) {
   $ID = $_GET['ID'];
   $sql = "SELECT `url`, `hitsin` FROM `ts_sites` WHERE `ID` = '$ID'";
   foreach ($pdo->query($sql) as $row) {
       $counterstand = $row['hitsin'];
       if(!isset($_SESSION['counter_ip'])){
       $statement = $pdo->prepare("UPDATE `ts_sites` SET `hitsin`=`hitsin`+'1' WHERE ID= ?");
           $statement->execute(array($ID));
           echo "update ergolgreich";
       }else{
           die("Kein Update");
       }
       $_SESSION['counter_ip'] = true;
   }
}
?>[/PHP]

Funktioniert alles wie es soll
Erstelle doch mal ein paar var_dump() Ausgaben ob irgendwo was falsches ankommt
 
Zuletzt bearbeitet:

Lukas03

Mitglied
Wenn ich die Url benutze
besucher.php?ID=10
Mit den Code
Code:
<?php
session_set_cookie_params(5);
session_start();
error_reporting(E_ALL);       
$pdo = new PDO('mysql:host=localhost;dbname=basti1012', 'basti1012', '****'); 

if(isset($_GET['ID'])) {
   $ID = $_GET['ID'];
   $sql = "SELECT `url`, `hitsin` FROM `ts_sites` WHERE `ID` = '$ID'";
   foreach ($pdo->query($sql) as $row) {
       $counterstand = $row['hitsin'];
       if(!isset($_SESSION['counter_ip'])){
           $statement = $pdo->prepare("UPDATE ts_sites SET hitsin=hitsin+'1' WHERE ID= ?");
           $statement->execute(array($ID));
           echo "update ergolgreich";
       }else{
           die("Kein Update");
       }
       $_SESSION['counter_ip'] = true;
   }
}
?>

Funktioniert alles wie es soll
Erstelle doch mal ein parr var_dump() Ausgaben ob irgendwo was falsches ankommt
Danke es funktioniert :)
 

basti1012

Erfahrenes Mitglied
Kann es sein das irgendwas mit dein include nicht funktioniert hat ?
Der Code ist ja jetzt nicht viel anders als deiner , außer ein paar Backsticks ?
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge