migratie mijndomein.nl naar php 5.6

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Margot Schuitemaker

Margot Schuitemaker

01/02/2016 23:25:56
Quote Anchor link
Geacht forum,

Ik zit met een vreemd probleem op mijn website rspp.nl, nl deze:

i.v.m. met de migratie (half februari 2016) heb ik al mijn paginascripts doorgelopen en deze gewijzigd in mysli procedureel. Deze werken naar behoren.

Op iedere pagina wordt puchfunctions.php geinclude.
Nu heb ik dit script ook gewijzigd naar mysqli en krijg steeds een foutmelding.

++++++++++++++++++++++++++
Notice: Undefined variable: con in /public/sites/www.rspp.nl/library/puchfunctions.php on line 342

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /public/sites/www.rspp.nl/library/puchfunctions.php on line 342
Error, query failed.
++++++++++++++++++++++++++

Inhoud statement:

$query="insert into Pagehits(SessionID,Datum,Tijd,pagina) values('".$sessie."','".$datum."','".$tijd."','".$pathinfo."')";
// This shows the actual query sent to MySQL, and the error. Useful for debugging.

// APRIL 2015 IVM MIGRATIE PHP 5.4 - @ GEPLAATST = ONDERDRUKT FOUTMELDING
if (@$weg ==0) {
$result=mysqli_query($con,$query) or die('Error, query failed. ' . mysqli_connect_error());
}
}

+++++++++++++++++++++++++++

Dus heb ik het oude script puchfunctions.php mysql weer teruggezet en alles werkt weer naar behoren.

Maar nu weet ik niet of dit na de migratie ook nog zo is, maar dan ik dat dan wel weer.

Ik ben al een week bezig met zoeken en knutselen, maar helaas tevergeefs.

Hopelijk weet iemand een oplossing voor mij?

Hartelijke groet, Margot Schuitemaker
 
PHP hulp

PHP hulp

24/11/2024 15:57:34
 
- Ariën  -
Beheerder

- Ariën -

01/02/2016 23:30:14
Quote Anchor link
Waar maak je je connectie naar MySQLi aan, en hoe ziet de eruit?
Let erop dat je niet je gegevens hier op het forum plaatst.
 
Gerhard l

gerhard l

02/02/2016 01:40:30
Quote Anchor link
We hebben inderdaad wat meer info nodig, maar ik doe een gokje:
Ik vermoed dat je deze query in een function staat (aan je bestandsnaam te zien)?
Waarschijnlijk heb je buiten deze function je MySQLi connectie gestart en zal je deze connectie mee moeten geven als parameter aan de functie.
 
Margot Schuitemaker

Margot Schuitemaker

02/02/2016 11:09:47
Quote Anchor link
Hoi Ariën en Gerard,

Bedankt voor jullie snelle reactie.

Op alle pagina's staan drie include bestanden
* config.php (= verbinding dbhost,dbuser,dbnaam)
* puchfunctions.php (staat bv in: euro's maken, waarschuwingen windows alert, is je winkelwagen vol, verschillende arrsy's met categorien frame, motor en wiel, berekeningen prijzen, aantal items enz.
* opendb.php met con-gegevens.

In puchfunctions.php staan geen verbindingopties.

Misschien kunnen jullie hier wat mee?

Dag, Margot
 
- Ariën  -
Beheerder

- Ariën -

02/02/2016 11:16:26
Quote Anchor link
Hoe ziet je config.php en opendb.php er uit?
 
Margot Schuitemaker

Margot Schuitemaker

02/02/2016 11:29:45
Quote Anchor link
opendb.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
include 'config.php';
$con = mysqli_connect($dbhost,$dbuser,$dbpass);
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// This is an example of config.php
$dbhost='ip';
$dbuser='inlog';
$dbpass='paswoord';
$dbname='naam';
?>


Sinds 2009 heb ik een goed werkende website.
 
- Ariën  -
Beheerder

- Ariën -

02/02/2016 11:32:53
Quote Anchor link
Je mist de 4e parameter voor je database in mysqli_connect.
 
Ivo P

Ivo P

02/02/2016 12:27:22
Quote Anchor link
de 4e parameter is niet verplicht, maar je zult dan wel http://php.net/manual/en/mysqli.select-db.php moeten gebruiken.

Toevoeging op 02/02/2016 12:29:54:

maar aangezien de foutmelding zegt dat $con niet bekend is, zul je een scope probleem hebben.

Ofwel maak je $con aan in een functie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function foo()
{

  $con = mysqli_connect();
}

?>

en is hij daarbuiten dus niet bekend.

ofwel wil je binnen een function $con gebruiken terwijl hij daar onbekend is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
  $con
= mysqli_connect();

  function
bar()
  {

     echo mysqli_error($con);
  }

?>


of beide...
 
Margot Schuitemaker

Margot Schuitemaker

02/02/2016 13:28:36
Quote Anchor link
Ariën,

Met onderstaand statement begin ik ieder pagina:

$con = mysqli_connect($dbhost,$dbuser,$dbpass);
if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
mysqli_select_db($con,$dbname);

Je schrijft: Ofwel maak je $con aan in een functie?
Ik weet niet wat foo betekent, behalve dat het een functie is. Een groter bereik? Moet ik deze voorwaarde(n) in het bestand opendb.php zetten?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function foo()
{

  $con = mysqli_connect();
}

?>


Je schrijft: ofwel wil je binnen een function $con gebruiken terwijl hij daar onbekend is? Ik begrijp ook niet wat de functie bar doet.
Waar zet ik onderstaande voorwaarde neer of beiden?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
  $con
= mysqli_connect();

  function
bar()
  {

     echo mysqli_error($con);
  }

?>
 
E vH

E vH

02/02/2016 13:32:37
 
Margot Schuitemaker

Margot Schuitemaker

02/02/2016 13:36:34
Quote Anchor link
Begrijp ik het goed dat ik beide functies foo en bar in de header onder

include ..... enz.
en boven onderstaande voorwaarde

$con = mysqli_connect($dbhost,$dbuser,$dbpass);

if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
mysqli_select_db($con,$dbname);

moet zetten?
 
Ozzie PHP

Ozzie PHP

02/02/2016 13:45:54
Quote Anchor link
>> Begrijp ik het goed dat ik beide functies foo en bar in de header onder ...

"Foo" en "Bar" zijn enkel 'voorbeeldnamen' die je uitsluitend in voorbeelden gebruikt. Uiteindelijk geef je zelf een zinnige naam.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/02/2016 14:14:55
Quote Anchor link
@Margot Ivo had het eerder over "scope", dit wil zeggen "het gebied waarbinnen variabelen bekend zijn".

Als je een normaal script zonder functies hebt, en je introduceert een variabele, is deze vanaf dat punt bekend:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$test
= 41;
// vanaf dit punt is $test bekend
?>

Het gebied waarin $test bekend is is vanaf het punt van zijn introductie.

Gebruik je echter ook functies:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$test
= 41;
// vanaf dit punt is $test bekend

functie whatever() {
    // maar hier is $test niet bekend!
}

// hier is $test (nog steeds) bekend
?>


Dan is binnen die functie $test niet bekend, want functies hebben hun eigen "geldigheidsgebied voor variabelen" (eigen scope).

Er zijn een aantal manieren om (de waarden van) variabelen door te geven aan een functie. Een van die manieren is door middel van een functie-argument. Je moet wel onderscheid maken tussen de declaratie van een functie en de aanroep.

Er is ook een simpelere manier die mogelijk voor nu volstaat, maar ik zou het gebruik hiervan vermijden als het kan: om de variabele $con beschikbaar te maken binnen een functie kun je ook het global keyword gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$test
= 41;

function
whatever() {
    // $test is niet bekend binnen de functie
    global $test;
    // nu kun je $test gebruiken binnen de functie
}
?>

Dit heeft wel wat implicaties, namelijk dat $test (of in jouw geval $con) al bekend is in de bovengelegen scope en dat deze een (vaste) voorgeschreven betekenis heeft.

Ook kun je je afvragen of het gebruik van een functie in dat geval is geoorloofd: roep je de functie meerdere keren aan, met andere woorden, wordt deze (vaak) hergebruikt? Zo ja, dan heeft deze functie een zekere bestaansrecht. Maar als je deze slechts één keer aanroept dan kun je de bijbehorende code net zo goed uitschrijven, omdat het vatten in een functie hiervan dan waarschijnlijk geen meerwaarde heeft.
 
Margot Schuitemaker

Margot Schuitemaker

02/02/2016 15:11:37
Quote Anchor link
Super bedankt!

Betreffende functies begrijp ik, maar ga ik ze neerzetten.

Ik ga jullie antwoorden goed bestuderen/begrijpen en dan verder met knutselen :)

Dag, Margot
 
Margot Schuitemaker

Margot Schuitemaker

07/02/2016 21:49:08
Quote Anchor link
Ter info.

Beste Ariën, Gerhard, Ivo, Elmar, Ozzie en Thomas,

Het is mij gelukt, mede dankzij jullie om mijn functiebestand werkend te krijgen.
In eerste instantie heb ik van alles geprobeerd om functies en/of variabelen aan te maken, maar tevergeefs.

Wat ik heb gedaan is een include '.../opendb.php'; boven onderstaand diverse onderstaande statement te zetten:

"$query="select browser from Sessions where SessionID='".$sess."'";
include '.../opendb.php';
$result = mysqli_query($con,$query) or die($query.' Error, query failed. ' . mysqli_connect_error());
$row = mysqli_fetch_array($result);

Dag, Margot
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.