SQL Probleem migratie php 4.0 naar 5.4
Ik heb van mijn webhost een bericht gekregen dat php 4.0 binnenkort niet meer wordt ondersteunt en dat ik moet controleren of mijn website compatible is met php 5.4. Op 1 ding na, werkt de hele website na behoren, behalve het volgende script waarmee vanuit de zoekresultaten de details van één bepaald object worden opgeroepen vanuit database, deze werkt prima onder php 4.0 maar niet onder 5.4.
Heeft iemand een idee waar het probleem zit? Bij voorbaat dank.
<div id="objectdetails">
Code (php)
1
2
3
4
2
3
4
<?
$query = mysql_query("SELECT * FROM objecten WHERE id = '$id'");
$result = (mysql_fetch_array($query));
?>
$query = mysql_query("SELECT * FROM objecten WHERE id = '$id'");
$result = (mysql_fetch_array($query));
?>
<div id="objectresults">
<h2></h2>
<p> <b>Region:</b>
<b>Ville:</b>
<b>Surface Terrain:</b>
</p>
<p> </p>
<p> <b>Prix:</b> Euros </p>
</div>
</div>
Ik neem aan dat dit een $_GET['id'] is, dus dan zou je het zo moeten veranderen:
Code (php)
1
2
3
4
2
3
4
<?php
$query = mysql_query("SELECT * FROM objecten WHERE id = '".mysql_real_escape_string($_GET['id'])."'");
$result = mysql_fetch_assoc($query);
?>
$query = mysql_query("SELECT * FROM objecten WHERE id = '".mysql_real_escape_string($_GET['id'])."'");
$result = mysql_fetch_assoc($query);
?>
Weet jij misschien wat er is aangepast in php 5. Is het dan zo dat in php 4.0 de $_GET functie in het script voor het oproepen van de zoekresultaten vanuit de database gewoon doorloopt als opvolgend de details van het [$id] worden opgeroepen vanuit de zoekresultaten... Ikke niet begrijp. Maar nogmaals super bedankt.
Toevoeging op 01/06/2013 11:02:24:
Tobias Tobias op 01/06/2013 10:34:01:
let ook op dat de schorttag < ? niet altijd ondersteunt wordt. Pas voor de zekerheid (en netheid) alle < ? aan naar < ?php
(maar dan zonder spaties ertussen uiteraard)
(maar dan zonder spaties ertussen uiteraard)
Alles werkt ook met de schorttag... maar bedankt.
Quote:
Weet jij misschien wat er is aangepast in php 5. Is het dan zo dat in php 4.0 de $_GET functie in het script voor het oproepen van de zoekresultaten vanuit de database gewoon doorloopt als opvolgend de details van het [$id] worden opgeroepen vanuit de zoekresultaten... Ikke niet begrijp. Maar nogmaals super bedankt.
Heel simpel.
Vroeger kon je een variabele uit $_GET, $_POST, e.d. doorgeven.
Tegenwoordig werken we met super globals zoals ik hierboven zet.
De versie php die jij had, is echt antiek als je dit echt allemaal nog kon.
Let ook op dat je geen addslashes en stripslashes gebruikt.
Magic_quotes staan in php5.4 standaard uit. Dus als je die nog ergens in je scripts hebt zitten dan moet je die eruit slopen. En alles wat in de database word gedaan met $_GET, $_POST e.d. door mysql_real_escape_string() halen. Anders is het erg lek. :P
Gewijzigd op 01/06/2013 11:23:46 door Bart V B
klik dan hier
Oké SUPERGLOBALS is dus de nieuwe manier... klinkt cool, nu moet ik het nog onder de knie zien te krijgen. Nogmaals bedankt Bart voor je tekst en uitlegt. Mocht je benieuwd zijn naar de site waar het om gaat Gewijzigd op 01/06/2013 12:45:24 door Daniel Karst
Gewijzigd op 01/06/2013 12:47:37 door Frank Nietbelangrijk