PHP PDO - IP Adresse in MySQL Datenbank - :11 ?

DualityMind

Lieutenant
Registriert
Dez. 2015
Beiträge
768
Hallo Cblers

Bin gerade im Endspurt und muss bis Morgen die ganze Webseite in PDO Umgeschrieben haben.

Das meiste Funktioniert schon, aber leider speichert es mir immer die IP-Adresse in MySQL Datenbank als ":11" ! Liegt es am Xampp da ich es noch Lokal verändere oder habe ich einen Schreibfehler gemacht ?

Hier der Code dazu: ($an ist dabei die ID des Artikels, nicht beachten)!

Code:
$ip=$_SERVER['REMOTE_ADDR'];
$time = time();

$ad1002 = $pdo->prepare( "SELECT * FROM pt_downloadsperre WHERE ip_nummer = $ip and ip_adid = $an");
$ad1002->execute([':ip_adid' => $an]);
$ipliste = $ad1002->fetch(\PDO::FETCH_ASSOC);

if ($ipliste['ip_adid'] != $an and $ipliste['ip_nummer'] != $ip )
{

try {
$dbh = new PDO("mysql:host=$hostname;dbname=gratisga_datenbank",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "INSERT INTO pt_downloadsperre (ip_adid,ip_sectionid,ip_nummer,ip_neudate,ip_altdate)
VALUES ('".$an."','".$sectio."','".$ip."','".$time."','".$time_sperre."')";

if ($dbh->query($sql)) {

}
else{
echo "<script type= 'text/javascript'>alert('LEIDER GAB ES EINEN FEHLER BEIM EINTRAGEN!');</script>";
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}

Ausser der $IP wird der Rest der Daten abspeichert in MySQL ! Es sollte als Download Sperre dienen, damit es nicht immer weiter zählt wenn man F5 drückt oder Neu ladet ?

Irgendwo ist wieder der Wurm am Nagen :-)! Auch in der "If Schleife" scheint es ein Problem zu geben, da er dennoch immer weiterzählt :-( ! Hoffe jemand hat Plan :-)!

LG
 
Speichert er wirklich ":11" oder doch "::1"?

"::1" wäre die IPv6 Loopback Adresse für Localhost, also praktisch das IPv6 Äquivalent für IPv4 "127.0.0.1".
Je nachdem wie Dein System konfiguriert ist, kann "::1" die korrekte IP-Adresse sein.
 
Hallo Andreas

Entschuldige habe einen Schreibfehler gemacht. Es heisst wirklich "::1". Danke für den Hinweis :-)!

Hmmm...werde es mal als Testordner hochladen und schauen ob es auf dem Webhosting richtig anzeigt.

Ausser jemand hat eine Idee was es sein könnte ?

Hoffe es gibt ne Lösung dazu ! Bin weiterhin an anderen Problemen am Lösen :-) !

LG und gute Nacht :-)
 
Schade, dass du es immer noch nicht geschafft hast, ordentliches PDO zu schreiben. Deine Abfragen sind somit weiterhin für SQL-Injections anfällig.
Die Abfrage in Zeile 8 ist übrigens immer FALSE.

Das ::1 bekommst du weg, indem du die Apache-Konfig anpasst (Listen 127.0.0.1:80), oder die Seite direkt per 127.0.0.1 anstatt localhost aufrufst. Das bringt dir auf dem Websever aber nichts, da du langfristig so oder so Aufrufe mit ipv6-Adressen bekommen wirst.
 
  • Gefällt mir
Reaktionen: DubZ
Darlis schrieb:
Schade, dass du es immer noch nicht geschafft hast, ordentliches PDO zu schreiben. Deine Abfragen sind somit weiterhin für SQL-Injections anfällig.

Ich wollte es gerade schreiben. Das hat von hinten bis vorne nichts mit PDO zu tun. Das ist so schlecht geschrieben, ich kann auf Anhieb nicht mal definieren, was das genau sein soll.
 
Hallo

Ja, ist grottenschlecht geschrieben, weil ich es im Jahre 2006 angefangen habe. Ist ja logisch, dass ich so einen Code habe. Deshalb, bitte nicht schon wieder aufregen.

Hauptsache es funktioniert ohne Fehler. Danach, kann ich es jeden Tag etwas optimieren :-)!

LG
 
DualityMind schrieb:
Hauptsache es funktioniert ohne Fehler.
Einen Fehler habe ja schon genannt. Im SQL in Zeile 4 ist (abseits von der PDO-Problematik) auch ein Fehler drin. Entweder machst du klassiches mysql oder PDO, beides im Mix ist nicht gut.
 
Zurück
Oben