Door
E Ander
op 18-01-2018 19:27
gewijzigd op 19-01-2018 13:52
3.402 views
Ik heb een database met ip adressen van mijn website bezoekers. Die IP adressen wil ik nu van land code en streek code voorzien en tevens of het een zoekmachine is of een bezoeker.
Inmiddels heb ik wat huiswerk gedaan en een database IP adressen van land, streek,eigenaar en soort code gemaakt.
Ik heb dus 2 databasevelden. 1)bezoekers en 2)iplandcoden.
Als ik nu van elke bezoeker uit 1) via 2 de bijbehorende gegevens zoek krijg ik als ik de database van 1) wil updaten een foutmelding.
Kan, wat ik in gedachten heb wel? Kan de data die je vergelijkt ook upgedate worden? En heeft iemand anders een voorbeeld hoe het wel kan?
Mijn script werkt tot het
<?php
// $ipvergelijk is een deel van het $ip adres. ipserver moet gelijk zijn aan het eerder gegeven $ip
$sqlc = "UPDATE inloggen SET land = 'United States' WHERE ipserver = $ip";
if(!$resc = mysqli_query($link, $sqlc))
{
echo "ip=".$ip."<br>";
//echo "link = ".$link."<br>";
trigger_error('Fout in query:'.mysqli_error());
mysqli_close($link);
//break 2;
}
?>
Het gaat om de eerste fouten:
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u970911973/public_html/scripts/landinvoer.php on line 66
Notice: Fout in query: in /home/u970911973/public_html/scripts/landinvoer.php on line 66
Vervolgens krijg ik andere fout meldingen omdat doordat ik een foutmelding heb andere foutmeldingen ontstaan.
Haal ik het:
$sql3 = "INSERT INTO inloggen(dag,datum,tijd,ipserver,ipvan,pagina,komtvan,bezoekersoort,land,streek,eigenaar)VALUES ('$dag','$datum','$tijd','$ipserver','$ipvan','$pagina','$komtvan','$bezoekersoort','$land','$streek','$eigenaar')";
if(!$res3 = mysqli_query($link, $sql3))
{
trigger_error('Fout in query: '.mysqli_error());
mysqli_close($link);
}//einde if sql3
deel weg dan krijg ik precies te zien wat ik wil. Alleen het opslaan gaat dus eerst een tijdje fout en dan ineens goed.
[size=xsmall]Toevoeging op 04/02/2018 17:41:03:[/size]
Thomas, Ik werk met een gratis site van Hostinger en werd gewaarschuwd dat mijn site veel traffic veroorzaakte. Nu is mijn site niet meer dan mijn aantekeningen van een hobby, dat ik deel met wat bekenden. Om uit te zoeken waarom de site veel traffic veroorzaakte ben ik gaan uitzoeken waardoor dat kwam. Vooral 104.131.xxx.xxx bezorgden extra veel bezoekers. Nu wil ik uitzoeken of dat alleen 104.131 is of dat er meer in die streek veel bezoeken doen.
Bij dat uitzoeken hoef ik geen hulp. En omdat ik al een jaar aan data heb in een andere vorm, moet ik eerst leren hoe ik data uit één database gefilterd naar een andere database kan krijgen zonder fout voordat ik verder ga stoeien.
Ariën, Hoe kan het dat halverwege het script dan plotseling die connectie variabele wel werkt? Bij sql1 en sql2 vind het ook. $link.
Die code tags zocht ik maar kon niet ontdekken hoe dat moest. Ehh wellicht kijk ik over het kopje veel gestelde vragen heen.;-)
[size=xsmall]Toevoeging op 04/02/2018 19:13:53:[/size]
Ariën ik zocht boven...De vragen en oplossing laag gevonden.
Thomas, Ik werk met een gratis site van Hostinger en werd gewaarschuwd dat mijn site veel traffic veroorzaakte.
Tijd voor een andere host? Hosting is helemaal niet duur. Krijg je wellicht ook betere support. En definieer "traffic"? Is dit echt bandbreedte? CPU-tijd? Database-activiteit? Waar komt dit vandaan? Is je site / zijn je pagina's heel erg groot? Zijn bepaalde queries knetter inefficiënt?
E Ander op 04/02/2018 17:29:38
Nu is mijn site niet meer dan mijn aantekeningen van een hobby, dat ik deel met wat bekenden.
Zit dit alles achter een login? Heeft iemand anders daar uberhaupt iets te zoeken dan? Anders gooi het op die manier op slot wellicht. Is die extra traffic (wat dit ook moge zijn) waarschijnlijk ook meteen weg.
E Ander op 04/02/2018 17:29:38
Vooral 104.131.xxx.xxx bezorgden extra veel bezoekers.
Dit hoeft niet per definitie iets slechts te zijn? Heb je al in access= en errorlogs gekeken wat die bezoekers precies uitspoken dan? Misschien is je site lek? Misschien zijn het hackpogingen? Wellicht wordt een contactformulier uitgebuit? Er kan echt van alles aan de hand zijn. Maar zolang het niet een regelrechte DDoS-aanval is hoeft er niet per se iets aparts aan de hand te zijn?
Op dit moment is er in ieder geval te weinig informatie over:
- de aard, samenstelling en omvang van de website
- de bezoekers, en wat men daadwerkelijk aan het uitspoken is
Misschien is deze site gewoon uit zijn (gratis) jasje gegroeid?
Thomas bedankt voor je advies, dit is echter niet de uitdaging waarvoor ik het forum om advies vroeg. Mijn vraag ging over het script.
[size=xsmall]Toevoeging op 05/02/2018 08:57:24:[/size]
Na 2 nachtjes slapen vond ik mijn fout.
De foutmelding geeft aan dat sql3 een probleem geeft en ik ging uit van of een inlogfout of een schrijffout. Omdat na tig foutmeldingen plotseling het script deed wat ik vroeg, kon het niet de inlogfout of scriptfout zijn.
In sql1 lees ik een regel in sql2 lees ik nog een regel die ik vergelijk met sql1. Is die data gelijk dan plaats ik dat in sql3. Omdat in sql1 de velden land, streek en eigenaar al had ging ik er ten onrechte vanuit dat als er geen data was ik dat ook niet in hoefde te vullen.
Bij sql2 het while deel heeft een if die de data invuld als er iets gevonden is. Daar moet een }else{ $veld="" etc. bij om de velden land, streek en eigenaar een waarde mee te geven.
Het waren dus de lege velden die ik aanbood in sql3 de de fout genereerden.
Iedereen nogmaals bedankt voor het meedenken en alle tips die ik nu los kan laten op het werkende script.