Bij een update van de hostingprovider is PHP van versie 4 naar versie 5 gedaan.
Van te voren had ik alles nagekeken en gedacht dat e.e.a. goed zou gaan.
Maar blijkbaar zitten er meer wijzigingen in PHP 5, dan van te voren voorzien.

Nu probeer ik de niet werkende scripts weer werkend te krijgen, maar dit lukt me na een dag herprogrammeren voor een gedeelte niet. Vermoedelijk doe ik iets simpels verkeerd in onderstaand script.

Er wordt een check uitgevoerd of het adres bestaat, maar hij zegt constant dat het adres niet bestaat.
Iemand een idee wat ik fout doe?


<?php

$adres_straat=$_GET['adres_straat'];
$adres_nr=$_GET['adres_nr'];
$adres_nr_toevoeging=$_GET['adres_nr_toevoeging'];
$complex_plaats=$_GET['complex_plaats'];


/* ##########################################################
UITVRAGEN VAN DE DATABASE NA HET DRUKKEN OP DE OK-KNOP
########################################################## */

if (isset($_POST['submit'])) {
if ($_POST['submit'] == "OK") {

/* CHECK OF HET ADRES BESTAAT */
$check = mysql_query("SELECT * FROM ".DB_PREPEND."tblAdres, ".DB_PREPEND."tblComplex WHERE tblAdres.adres_straat = '$adres_straat' AND tblAdres.adres_nr = '$adres_nr' AND tblAdres.adres_nr_toevoeging = '$adres_nr_toevoeging' AND tblComplex.complex_plaats = '$complex_plaats' AND tblAdres.adres_complex_id = tblComplex.complex_id",$db);
if (mysql_num_rows($check) <= 0) {

//Print "Adres bestaat niet";
?>
<script language="javascript" type="text/javascript">
alert("<?php echo $adres_straat ?> <?php echo $adres_nr ?><?php echo $adres_nr_toevoeging ?> te <?php echo $complex_plaats ?> is niet in beheer.");
window.location="<?php echo "https://" . $_SERVER['HTTP_HOST'] . "/management/management/phpwcms.php?do=reparatieverzoeken&p=4&rep_omschrijving=$rep_omschrijving" ?>";
</script>
<?php

}
/* EINDE CHECK OF HET ADRES BESTAAT */

/* VULLEN VAN DROPDOWN LEVERANCIER */
$quer4= "SELECT * FROM ".DB_PREPEND."tblLeverancier ORDER BY naam";
$rs4 = mysql_query($quer4) or die(mysql_error());
/* EINDE VULLEN VAN DROPDOWN LEVERANCIER*/

/* CHECK OF HET CONTRACT BESTAAT */
$check_contract = mysql_query("SELECT tblContract.contract_id FROM (tblAdres INNER JOIN ((tblBouwdeel LEFT JOIN tblContract ON tblBouwdeel.bouwdeel_id = tblContract.contract_bouwdeel) RIGHT JOIN tblComplex ON tblContract.contract_complex = tblComplex.complex_id) ON tblAdres.adres_complex_id = tblComplex.complex_id)
WHERE tblBouwdeel.bouwdeel_id = '$bouwdeel_id' AND tblAdres.adres_straat = '$adres_straat' AND tblAdres.adres_nr = '$adres_nr' AND tblAdres.adres_nr_toevoeging = '$adres_nr_toevoeging' AND tblComplex.complex_plaats = '$complex_plaats'",$db);
if (mysql_num_rows($check_contract) <= 0) {

/* Zonder contract */
$sql = "SELECT * FROM tblAdres, tblComplex, tblBouwdeel WHERE tblAdres.adres_complex_id = tblComplex.complex_id AND tblBouwdeel.bouwdeel_id = '$bouwdeel_id' AND tblAdres.adres_straat = '$adres_straat' AND tblAdres.adres_nr = '$adres_nr' AND tblAdres.adres_nr_toevoeging = '$adres_nr_toevoeging' AND tblComplex.complex_plaats = '$complex_plaats'";
}
else {

/* met contract */
$sql = "SELECT * FROM (tblAdres INNER JOIN ((tblBouwdeel LEFT JOIN tblContract ON tblBouwdeel.bouwdeel_id = tblContract.contract_bouwdeel) RIGHT JOIN tblComplex ON tblContract.contract_complex = tblComplex.complex_id) ON tblAdres.adres_complex_id = tblComplex.complex_id) LEFT JOIN tblLeverancier ON tblContract.contract_leverancier = tblLeverancier.id
WHERE tblBouwdeel.bouwdeel_id = '$bouwdeel_id' AND tblAdres.adres_straat = '$adres_straat' AND tblAdres.adres_nr = '$adres_nr' AND tblAdres.adres_nr_toevoeging = '$adres_nr_toevoeging' AND tblComplex.complex_plaats = '$complex_plaats'";
}

?>
Om even wat opmerkingen te geven:
1) Gebruik consequent de superglobals $_POST, $_GET, $_COOKIE etc.. en ga deze neit kopiëren in andere variabelen, zoals je nu op lijn 3 t/m 6 doet.

2) Om te controleren of er iets verstuurd is via een POST-formulier gebruik je:

if($_SERVER['REQUEST_METHOD']=="POST") {


3) Er hoort foutafhandeling om je mysql_query()'s heen, en dan geen botte manier met die(), maar met een deftige if-else-statement

4) Variabelen horen buiten quotes:
 echo "Dit is een string met een ". $variabele ." welke buiten de quotes staat.";


5) Je bent mogelijk goed hackbaar doordat mysql_real_escape_string() over je GET/POST/COOKIE variabelen in je mysql_query lijkt te ontbreken.

Plaats verder in het vervolg je relevante code tussen [code] en [/code]. Dat maakt het beter leesbaarder voor ons.

6) Waar komt $db vandaan?

Reageren