syntax error, unexpected '$_GET' (T_VARIABLE)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

OutSystems developer

Bedrijfsomschrijving Onze opdrachtgever, gevestigd in regio Amsterdam, is een innovatieve dienstverlener die zich richt op grote corporates in verschillende sectoren. Doordat je bij veel verschillende klanten aan de slag zal gaan is geen enkel project hetzelfde. De organisatie kenmerkt zich door hoge mate van professionaliteit en innovatieve oplossingen. In de rol van OutSystems developer zal jij verschillende grote klanten helpen om efficiënte OutSystems oplossingen te ontwikkelen en implementeren. Jij zal hierbij vanuit jouw expertise de klant adviseren over hoe OutSystems als lowcode platform een toegevoegde waarde kan zijn en op welke manier deze gebruikt kan worden. Hierin neem jij uiteraard

Bekijk vacature »

.NET Developer Azure

Bedrijfsomschrijving Deze organisatie in de regio van Ede/Wageningen waar jij als .NET Developer komt te werken is marktleider en pionier op het gebied van High-Quality apparatuur in de zorg. Het Scrum team waar jij deel van zal uitmaken bestaat uit zes developers. Als .NET Developer draag jij dagelijks bij aan een gezondere toekomst. De apparatuur waar jij de software voor ontwikkelt wordt wereldwijd ingezet in meer dan 5000 ziekenhuizen. Iedere 4 minuten krijgt iemand ter wereld een behandeling middels deze apparatuur. Omdat de organisatie continu bezig is met innovatie krijg jij als .NET Developer de ruimte om met nieuwste- en

Bekijk vacature »

Ervaren .NET developer gezocht, api development, .

Ben je een ervaren .NET developer en op zoek naar baan waarbij je je ook meer kunt gaan richten op architectuur? Binnen een leuke, sociale en betrokken werkomgeving? Met technieken als .NET Core en Azure? Dan zou deze baan wellicht iets voor jou kunnen zijn. Voor een organisatie in Rotterdam zijn we op zoek naar eens ervaren .NET ontwikkelaar. De organisatie bevindt zich in de financiële branche en is een van de grotere spelers in hun vakgebied. De organisatie bestaat uit circa 600 medewerkers en heeft verschillende vestigingen in Nederland. Het hoofdkantoor zit in Rotterdam en daar is ook de

Bekijk vacature »

Fullstack .NET developer voor het onderwijs

Bedrijfsomschrijving Dit mooie bedrijf helpt onderwijsinstellingen beter en efficiënter te werken. Ze hebben hiervoor een aantal applicaties bedacht en ontwikkelt. De applicaties zijn SAAS oplossingen die allemaal middels .NET zijn gebouwd en hoewel er al veel expertise in huis is, zou een aanvulling met jou zeer wenselijk zijn. Er wordt gewerkt met moderne technieken en ook mag, en kan, je pionieren met nieuwe technieken. Zowel backend- als fullstack webdevelopers zijn meer dan welkom te reageren. Functieomschrijving Onze klant bouwt SAAS oplossingen voor het onderwijs en ze hebben inmiddels een aantal innoverende applicaties in de markt staan. Je gaat samen met

Bekijk vacature »

C# developer gezocht (distributed systems, SOA, NS

Ben je een C# developer met een oplossingsgerichte mentaliteit en op zoek naar een veelzijdige baan binnen een kleinschalig dynamisch bedrijf, waar je mee kunt denken in het groter geheel? Waar je met mensen komt te werken die betrokken zijn en een gemeenschappelijk gevoel van verantwoordelijkheid hebben? En waar je werkt aan schaalbaarheidsuitdagingen zodat jouw software grote hoeveelheden data kan verwerken? Nieuwsgierig? Lees dan verder! Voor een Rotterdams bedrijf zijn we op zoek naar een enthousiaste, en met name leergierige, full stack developer of een web developer die graag full stack wil worden. Het bedrijf biedt geavanceerde technische oplossingen die

Bekijk vacature »

Software Developer

Bedrijfsomschrijving Onze klant is een mooie en innovatieve multinational in de regio Utrecht. Ze staan bekend om de hoge kwaliteit van dienstverlening en streven ernaar dit continu te verbeteren. Om dit te kunnen doen zijn zij opzoek naar een Software Developer. Als Software Developer ga je aan de slag met het ontwikkelen van bedrijfskritische software en applicaties. Zo zijn er applicaties en software die van belang zijn voor de bedrijfsvoering, de medewerkers van de organisatie, maar ook voor het klantenbestand van de organisatie. Het landschap is zowel functioneel als technisch en daarmee erg breed. Je komt te werken in een

Bekijk vacature »

IAM developer

Functieomschrijving IAM, voor jou hoeven we dat niet te vertalen toch? Want jij weet exact waar wij het over hebben bij het benoemen van Identity Access Management. Ben je toe aan een informele, mensgerichte omgeving met vrijheid, ondernemerschap, creativiteit en focus op innovatie? Dat zijn wij! En laten wij nou op zoek zijn naar jou, een IAM developer die ons team helpt Randstad naar een veilige toekomst te helpen. Als IAM developer bij ons ben jij samen met de overige teamleden aanspreekpunt binnen de organisatie ten behoeve van functionele en technische vragen omtrent Identity & Access Management. Samen met andere

Bekijk vacature »

Front-end Developer WPF

Heb jij kennis en ervaring met WPF en C#? Ben je technisch en heb je goed gevoel voor design? Wil jij met jouw kennis de zorg verbeteren? Dan zijn wij op zoek naar jou! Jouw baan Als Front-end Developer bij Zorgplatform ga je werken aan de interface voor zorgprofessionals. Zorgplatform is een platform waarmee medische gegevens op een veilige manier uitgewisseld worden met andere instanties binnen de zorgsector. Zorgplatform ondersteunt onder andere het verwijzen van patiënten, het overdragen van patiënten en de gezamenlijke behandeling (shared care). Dit is hét nieuwe werken in de zorg. Met jouw oog voor design ga

Bekijk vacature »

Ervaren full-stack C# developer, .NET CORE, Typesc

Voor een ambitieuze en snelgroeiende organisatie de regio Rotterdam zijn we momenteel op zoek naar een .NET C# developer. De organisatie bestaat inmiddels ruim 15 jaar en heeft een systeem ontwikkeld waarmee bedrijven de informatie van grote en complexe projecten beter kunnen managen. Dit systeem is geheel webbased. Om hun globale ambities waar te maken zijn ze recentelijk begonnen het systeem geheel te herbouwen met de nieuwste technieken. Denk hierbij aan technieken als .NET CORE, Typescript, React, Kubernetes en Azure. Niet alleen betekent voldoende nieuwe technische uitdaging maar ook betekent dit dat je voor 80 tot 90% van je tijd

Bekijk vacature »

Lead Developer

Do you want to work as a Lead Developer? Are you ready for a new challenge with variety and independence in a self-managing team that is responsible for the control apps for the climate in buildings and in greenhouses? The customer has no shortage of ambition and wants to be pioneering within their segment. How do they want to do this? I would like to tell you more about this in a personal conversation. As an experienced Lead Developer you work with your team on web applications for laptop, tablet and smartphone. You write robust, readable and reusable code and

Bekijk vacature »

Senior Java Developer

Bedrijfsomschrijving You will work in a big financial organization in Utrecht. The domain where you will be working is responsible for supporting the global business systems. This includes process automation in the areas of CRM, Client Onboarding, Client Data Management, Document- and Case Management. You will be working in the team which is responsible for the development of new applications and improving existing applications for the architecture. Within this team you are going to implement a complex system on premise and in the Cloud. Functieomschrijving Are you a Senior Java Developer, who has experience within corporate environments? Do you have

Bekijk vacature »

PHP SQL Developer

Ben jij een ervaren developer en hebben PHP en SQL geen geheimen voor je? Werk je graag mee aan technische uitdagingen voor een internationale klant?Voel jij de drive om van ieder project een doorslaand succes te maken? Oh, en werk je graag in een goed en gedreven team, dat ook niet vies is van een stukje gezelligheid? Wat ga je doen? Samen met jouw team ben je verantwoordelijk voor verschillende applicaties. De organisatie heeft een software platform wat door verschillende internationale klanten wordt gebruikt. Doordat elke klant specifieke wensen heeft zal je werken aan op maat gemaakt applicaties. Je Houdt

Bekijk vacature »

Full stack developer

Bedrijfsomschrijving De organisatie waarbinnen je aan de slag zal gaan levert diensten aan een groot aantal organisaties binnen Nederland. De software die zij maken en inzetten voor hun klanten wordt dagelijks door honderden klanten gebruikt. Onze opdrachtgever is marktleider in Nederland als het gaat om full-service HR-dienstverlening. De afgelopen periode is onze klant hard gegroeid en daar zijn de nodige uitdagingen bij komen kijken. Om deze groei voort te kunnen zetten zijn ze op zoek naar nieuwe vaste medewerkers, dit om ervoor te zorgen dat ze marktleider blijven. Zij zijn op zoek naar professionals die samen met hen aan innovatieve

Bekijk vacature »

Senior C# Developer

You'll build modern applications for Coolblue back’s office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become Senior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become Senior C# Developer at Coolblue? Funda will explain how to do that. You enjoy doing this Working with various types of

Bekijk vacature »

Front-End developer met uitzicht op zee

Bedrijfsomschrijving Voor een mooie klant op een toffe locatie ben ik op zoek naar een Front-end developer. Ze bouwen en ontwerpen webapplicaties en websites van A tot Z dus van design tot aan functionaliteit. Binnen dit bedrijf krijg je veel vrijheid om je creativiteit te tonen. Hier werken ze aan hele leuke projecten in SCRUM verband. Er wordt hier veel van je gevraagd maar je krijgt hier staat wel een hele toffe baan tegenover. De gezellige en ontspannen sfeer zorgt voor de nodige humor op de werkvloer. Bij dit bedrijf werken circa 40 mensen en is nog steeds groeiende. Naast

Bekijk vacature »
Mohamed nvt

Mohamed nvt

17/08/2016 12:41:14
Quote Anchor link
Hallo allemaal,

Momenteel ben ik bezig met een master/detail page.
Uit de DB haal ik enkele info op zoals naam, productie en verloop datum op.
Van deze naam heb ik een link gemaakt. En wanneer ik klik op naam, wil ik meer gegevens uit DB halen die daarbij horen. Helaas ben ik hiermee 2 dagen mee bezig en het lukt me niet om het op te lossen. Ikzelf heb het idee dat het een syntax issue is, maar ik kom er niet uit.

Hopelijk kan iemand mij voorzien van een waardevolle feedback.

Tnx!

Index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$query2
= "SELECT * FROM medicines";
$result2 = mysqli_query($connection,$query2);
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
echo "<table width='70%' border='solid 1px'>";
echo "<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Edit</th><th>Delete</th></tr>";
while ($row2 = mysqli_fetch_assoc($result2)){
        $medicine_id = $row2['med_id'];
        $medicine_name = $row2['med_name'];
        $medicine_create_date = $row2['med_create_date'];
        $medicine_expire_date = $row2['med_expire_date'];
        echo "<tr>";
        echo "<td><a href='med_detail.php?id={$medicine_name}'>{$medicine_name}</a></td>" .
             "<td>{$medicine_create_date}</td>" .
             "<td>{$medicine_expire_date}</td>" .
             "<td><a href='edit.php?id={$medicine_id}'>Edit</a></td>" .
             "<td><a href='delete.php?id={$medicine_id}'>Delete</a></td>";
        echo "</tr>";
        }



echo "</table>";
?>


detail pagina
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php include "includes/db-config.php"; ?>
<?php
if(isset($_GET['$medicine_name'])){
    
    $_GET['$medicine_name'];
    
    
}


$query = "SELECT * from categories";
$result = mysqli_query($connection,$query);

$query3 = "SELECT * FROM medicines ";
$query3 .="WHERE ID="$_GET['$medicine_name']" ";
$result3 = mysqli_query($connection,$query3);
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
echo "<table width='70%' border='solid 1px'>";
echo "<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Created by factory</th><th>Added to database</th><th>Edit</th><th>Delete</th></tr>";
while ($row2 = mysqli_fetch_assoc($result3)){
        $medicine_id = $row2['med_id'];
        $medicine_name = $row2['med_name'];
        $medicine_create_date = $row2['med_create_date'];
        $medicine_expire_date = $row2['med_expire_date'];
        $medicine_factory = $row2['med_factory_id'];
        $medicine_register_date = $row2['med_register_date'];
        
        echo "<tr>";
        echo "<td>{$medicine_name}</td>" .
             "<td>{$medicine_create_date}</td>" .
             "<td>{$medicine_expire_date}</td>" .
             "<td>{$medicine_factory}</td>" .
             "<td>{$medicine_register_date}</td>" .
             "<td><a href='edit.php?id={$medicine_id}'>Edit</a></td>" .
             "<td><a href='delete.php?id={$medicine_id}'>Delete</a></td>";
        echo "</tr>";
        }

echo "</table>";
?>
 
PHP hulp

PHP hulp

19/01/2021 09:33:20
 
- SanThe -

- SanThe -

17/08/2016 13:20:21
Quote Anchor link
Waarom al die extra variabelen aanmaken?
HTML gebruikt dubbele quotes (").
Hou vars buiten de php-quotes.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo '<table width="70%" border="solid 1px">';
echo '<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Edit</th><th>Delete</th></tr>';
while ($row2 = mysqli_fetch_assoc($result2))
{

    echo '<tr>';
        echo'<td><a href="med_detail.php?id='.$row2['med_id'].'">'.$row2['med_name'].'</a></td>' .
            '<td>'.$row2['med_create_date'].'</td>' .
            '<td>'.$row2['med_expire_date'].'</td>' .
            '<td><a href="edit.php?id='.$row2['med_id'].'">Edit</a></td>' .
            '<td><a href="delete.php?id='.$row2['med_id'].'">Delete</a></td>';
    echo '</tr>';
}

echo '</table>';
?>

Ik heb bij de eerste <a> ook het id gebruikt, waar jij de name gebruikte.
Gewijzigd op 17/08/2016 13:22:16 door - SanThe -
 
Dennis WhoCares

Dennis WhoCares

17/08/2016 13:23:48
Quote Anchor link
SanThe, het grootste probleem is dat Mohamed de GET waarde gebruikt met de naam, medicine_name, maar heeft toegewezen aan, id.
Daarbij probeert hij deze aan te roepen, zonder er iets mee te doen. (toewijzen, echo,of wat dan ook)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if(isset($_GET['$medicine_name'])){
    $_GET['$medicine_name'];
}

Dit hierboven doet niks, en zorgt voor de foutmelding.

Verbetering hieronder.

detail pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php include "includes/db-config.php";

if(isset($_GET['id'])){
   $query = "SELECT * from categories";
   $result = mysqli_query($connection,$query);

   $query3 = "SELECT * FROM medicines ";
   $query3 .="WHERE ID="$_GET['id']" ";
   $result3 = mysqli_query($connection,$query3);
}
else {
    echo 'Geen medicijn gekozen.';
}

?>


In het overzicht tabel noem je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<td><a href='med_detail.php?id={$medicine_name}'>{$medicine_name}</a>

Dus je gaat naar med_detail.php?id=medicijn_naam
De _GET is dan ['id']
Gewijzigd op 17/08/2016 13:30:48 door Dennis WhoCares
 
Thomas van den Heuvel

Thomas van den Heuvel

17/08/2016 14:23:23
Quote Anchor link
Waarom uberhaupt statische HTML echo'en? Dit voegt niets toe en vertroebelt enkel de leesbaarheid.

Je kunt PHP blokken openen en sluiten waar je wilt.

Vergelijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
echo "<table width='70%' border='solid 1px'>";
echo "<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Created by factory</th><th>Added to database</th><th>Edit</th><th>Delete</th></tr>";
while ($row2 = mysqli_fetch_assoc($result3)){
        $medicine_id = $row2['med_id'];
        $medicine_name = $row2['med_name'];
        $medicine_create_date = $row2['med_create_date'];
        $medicine_expire_date = $row2['med_expire_date'];
        $medicine_factory = $row2['med_factory_id'];
        $medicine_register_date = $row2['med_register_date'];
        
        echo "<tr>";
        echo "<td>{$medicine_name}</td>" .
             "<td>{$medicine_create_date}</td>" .
             "<td>{$medicine_expire_date}</td>" .
             "<td>{$medicine_factory}</td>" .
             "<td>{$medicine_register_date}</td>" .
             "<td><a href='edit.php?id={$medicine_id}'>Edit</a></td>" .
             "<td><a href='delete.php?id={$medicine_id}'>Delete</a></td>";
        echo "</tr>";
        }

echo "</table>";
?>


Met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table style="width: 70%; border: 1px solid;">
    <tr>
        <th>Name</th>
        <th>Production Date</th>
        <th>Expire Date</th>
        <th>Created by Factory</th>
        <th>Added to Database</th>
        <th>Edit</th>
        <th>Delete</th>
    </tr><?php
    while ($row = mysqli_fetch_assoc($result)) {
        ?>
<tr>
            <td><?php echo $row['med_name'] ?></td>
            <td><?php echo $row['med_create_date'] ?></td>
            <td><?php echo $row['med_expire_date'] ?></td>
            <td><?php echo $row['med_factory_id'] ?></td>
            <td><?php echo $row['med_register_date'] ?></td>
            <td><a href="edit.php?id=<?php echo $row['med_id'] ?>">Edit</a></td>
            <td><a href="delete.php?id=<?php echo $row['med_id'] ?>">Delete</a></td>
        </tr><?php
    }
?>
</table>

Daarnaast doe je er misschien verstandig aan om je output te escapen, zowel in queries (middels een real_escape() functie) alsook in je HTML (via htmlspecialchars()).

En wat @Dennis zegt: je hebt weinig aan een doorgegeven medicijnnaam als je verder alles op grond van id doet.
 
Mohamed nvt

Mohamed nvt

17/08/2016 14:46:22
Quote Anchor link
Hallo allemaal,

Bedankt voor jullie snelle reacties.
Ik heb deels jullie verbeteringen aangebracht, helaas krijg ik nog steeds dezelfde foutmelding, nl:
Parse error: syntax error, unexpected '$_GET' (T_VARIABLE) in D:\xampp\htdocs\inventory_test\med_detail.php on line 5


index.php: gewijzigde code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<td><a href='med_detail.php?id={$medicine_id}'>{$medicine_name}</a></td>"
?>


Tussen haakjes gebruik ik juist variabelen, omdat ik het makkelijker vindt met alle die syntaxis.

med_detail.php: Code wat bij lijn 5 hoort is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['id'])){
    $query3 = "SELECT * FROM medicines ";
    $query3 .="WHERE ID="$_GET['id']" ";
    $result3 = mysqli_query($connection,$query3);    
}
else {
    echo "No medicine has been chosen";
}

?>


@Dennis, je hebt gelijk wat het betreft security in de code.
Wanneer de kern van de code werkt, dan ga ik security als stap 2 aanpakken

Toevoeging op 17/08/2016 15:09:41:

Update;
Mijn probleem heb ik opgelost door de output van $_GET['id']; later toe te kennen aan een variabele.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['id'])){
    
    $id = $_GET['id'];
    $query3 = "SELECT * FROM medicines ";
    $query3 .="WHERE ID=$id";
    //$query3 .="WHERE ID=" $_GET['id']" ";
    $result3 = mysqli_query($connection,$query3);    
?>


Helaas heb ik nu een andere foutmelding en dat is:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in D:\xampp\htdocs\inventory_test\med_detail.php on line 21

Ik ga nog even verder zoeken.
Wanneer ik een update heb, zal ik het hier plaatsen.
tnx!


Toevoeging op 17/08/2016 15:26:36:

Update:

Het tweede probleem heb ik nu ook opgelost:
Door de query te controleren of het gelukt is of niet :-)

vernieuwde code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_GET['id'])){
    
    $id = $_GET['id'];
    $query3 = "SELECT * FROM medicines ";
    $query3 .="WHERE med_id=$id";
    $result3 = mysqli_query($connection,$query3);    
}
else {
    echo "No medicine has been chosen";
}

if($result3 === false){
    die (mysqli_error($connection));    
}

?>

Bedankt allemaal voor het meedenken!
 
Dennis WhoCares

Dennis WhoCares

17/08/2016 15:46:32
Quote Anchor link
Hi Mohammed,

goed dat het opgelost is :)

Kijk eens goed naar deze 2 regels:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$query3 .="WHERE ID="$_GET['id']" ";
---
$query3 .="WHERE med_id=$id";

Zoek de verschillen, en je zult zien waarom de 2e regel wel werkt ;-)
Tip, let op je quotes
 
- Ariën -
Beheerder

- Ariën -

17/08/2016 15:47:41
Quote Anchor link
Variabelen overschrijven is nergens voor nodig, en het zorgt zelfs voor verwarring.
Tevens kloppen je quotes niet, en mist er goede beveiliging m.b.v. escaping in je query. ZOnder dit ben je heel vatbaar voor SQL-injection wat veel gebruikt wordt bij hacking.

Ik heb de code even verbeterd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_GET['id'])){
    $query3 = "SELECT * FROM medicines WHERE ID='".mysqli_real_escape_string($connection, $_GET['id'])."'";
    $result3 = mysqli_query($connection,$query3);    
?>


Een tipje: Vermijd nummers in je variabelen. Weet jij straks nog wat $query3 doet? Geen gewoon een duidelijke naam die aangeeft wat je ophaalt.
 



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.