abonnement Unibet Coolblue Bitvavo
pi_155756275
1
2
$sql = "SELECT * FROM navigatie WHERE navigatie_ID=" . $_GET["navigatie_ID"];
    $rs = $conn->query($sql);

_O- je maakt een grapje toch hoop ik?
pi_155756329
Ja ik zit al uren en uren lol te hebben met zoeken en uitproberen
Fylax is op televisie geweest
pi_155756465
Nouja de foutmelding laat weinig te raden over toch? Je GET-variable bestaat niet.

Maar ga je eerst eens inlezen in SQL injecties en prepared statements, want je hebt echt véél grotere problemen dan een get-variable die niet geset is.
pi_155756511
sql injecties en prepared statements weet ik juist al vanaf. Is ook gewoon goed opgezet. Maar ik bouw dit stukje gewoon om dit klaar te hebben en dan voeg ik dat daarna weer toe (zit gewoon op localhost via wamp dus dat van beveiliging maakt niet uit nu).

En nou ja ik zal maar proberen om mijn get variabele dan goed te zetten. Althans ik neem aan dat het daarna kan werken? Heb vanuit een formulier ook de gegevens in een database gezet, gevalideerd en terugge-echod dus ik zou denken dat dit me enigszins moet lukken. Maar ik krijg het gewoon niet voor elkaar ;(
Fylax is op televisie geweest
pi_155756611
quote:
0s.gif Op woensdag 2 september 2015 13:08 schreef jodelahity het volgende:
sql injecties en prepared statements weet ik juist al vanaf. Is ook gewoon goed opgezet. Maar ik bouw dit stukje gewoon om dit klaar te hebben en dan voeg ik dat daarna weer toe (zit gewoon op localhost via wamp dus dat van beveiliging maakt niet uit nu).
Maar waarom ga je eerst klooien op de meest foute manier om SQL queries te doen in PHP en het vervolgens weer 'ombouwen'? Je gaat toch ook niet eerst een huis van klein en stro bouwen om het vervolgens weer plat te gooien en op te bouwen met stenen en cement?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_155756685
quote:
0s.gif Op woensdag 2 september 2015 13:14 schreef Monolith het volgende:

[..]

Maar waarom ga je eerst klooien op de meest foute manier om SQL queries te doen in PHP en het vervolgens weer 'ombouwen'? Je gaat toch ook niet eerst een huis van klein en stro bouwen om het vervolgens weer plat te gooien en op te bouwen met stenen en cement?
Vooral omdat ik het idee heb voor mezelf dat als ik die dingen eerst weglaat de code voor mij wat overzichtelijker is en ik me daar geen zorgen over hoef te maken sowieso.

Bedoel nu heb ik de 2 afbeeldingen van de schep uit de database gehaald en getoond, navigatie_ID zit er blijkbaar aan vast, en nu weet ik dat ik in de vervolgstap dus iets verkeerd doe. Terwijl als ik andere codes erbij zou doen (ook al werken ze) ik na uren eerder zou kunnen twijfelen of er toch niet ook iets mis is met die codes.. vandaar (althans dat is wat ik zo doe omdat het me wel oke leek).

Ben trouwens een totale leek wat betreft php, dus ik begrijp dat de codering die ik toonde nogal belabberd kan zijn. Maar ik heb gewoon zoveel verschillende dingen geprobeerd die ik op internet las en die me niet gelukt zijn dat dit de code was waarmee ik achterbleef toen ik besloot om het hier maar te vragen.

1 van die foutmeldingen (conn) is weg, was gewoon vergeten om de databaseconnectie er te includen. Hoe ik die navigatie_ID eruit moet halen en op kan zoeken in de database (naar de bijbehorende informatie) probeer ik nu uit te zoeken
Fylax is op televisie geweest
pi_155756825
quote:
0s.gif Op woensdag 2 september 2015 13:18 schreef jodelahity het volgende:

[..]

Vooral omdat ik het idee heb voor mezelf dat als ik die dingen eerst weglaat de code voor mij wat overzichtelijker is en ik me daar geen zorgen over hoef te maken sowieso.

Dan ben je waarschijnlijk de eerste mens ter wereld die concatenaten overzichtelijker vindt dan parameteriseren...
pi_155756910
quote:
14s.gif Op woensdag 2 september 2015 13:25 schreef KomtTijd... het volgende:

[..]

Dan ben je waarschijnlijk de eerste mens ter wereld die concatenaten overzichtelijker vindt dan parameteriseren...
Ik geloof best wel dat ik dom bezig ben hoor :P Ben gewoon lerende en zal straks ook wel denken van 'ow jezus dat ik dat toen zo deed'



Heb na de volgende code nog deze foutmelding

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Zal nog doorzoeken maar als iemand een hint heeft is die welkom :P
Fylax is op televisie geweest
pi_155757006
quote:
0s.gif Op woensdag 2 september 2015 13:29 schreef jodelahity het volgende:

[..]

Ik geloof best wel dat ik dom bezig ben hoor :P Ben gewoon lerende en zal straks ook wel denken van 'ow jezus dat ik dat toen zo deed'
Denk het ook. Ga het maar zsm op deze manier doen, heb je in de toekomst veel profijt van:
http://php.net/manual/en/pdo.prepare.php
quote:
[ afbeelding ]

Heb na de volgende code nog deze foutmelding

[spoiler]
[ code verwijderd ]

[/spoiler]

Zal nog doorzoeken maar als iemand een hint heeft is die welkom :P
quote:
14s.gif Op woensdag 2 september 2015 13:05 schreef KomtTijd... het volgende:
Nouja de foutmelding laat weinig te raden over toch? Je GET-variable bestaat niet.

  woensdag 2 september 2015 @ 13:35:11 #35
85514 ralfie
!Yvan eht nioj
pi_155757025
hint staat op regel vijf
1
2
3
4
5
6
7
8
9
10
11
12
13
 <?php include '../webshop/DBconnectie.php'; ?>

<?php
// Get data from the database depending on the value of the id in the URL
$id = $_GET[DIT IS EEN INDEX];
    $sql = "SELECT * FROM navigatie WHERE navigatie_ID=' . $id . '";
    $result = $conn->query($sql);
    
    while($row = $result->fetch_assoc()) {

        // Write the data of the person
        echo "<dt>ID en productnaam</dt><dd>" . $row["navigatie_ID"] . " " . $row["productnaam"] . "</dd>";
    }
pi_155758089
Ik krijg het niet voor elkaar. Is het moeilijk om het te definiëren? Kan er toch gewoon even kort de code aangegeven worden? Zit hier ook al zeer lang mee te prutsen sowieso.
Fylax is op televisie geweest
  † In Memoriam † woensdag 2 september 2015 @ 14:14:37 #37
159966 lifeblind
pi_155758135
In je eerste screenshot (http://static.afbeeldinguploaden.nl/1509/119236/QkHjNax1.png), staat in de url

1?navigatie_ID = 2

haal die spaties meer eens weg, waarschijnlijk gaat ie daar al onderuit (waardoor navigatie_ID dus niet in je $_GET gevuld wordt met een value).
pi_155758351
quote:
0s.gif Op woensdag 2 september 2015 13:18 schreef jodelahity het volgende:

[..]

Vooral omdat ik het idee heb voor mezelf dat als ik die dingen eerst weglaat de code voor mij wat overzichtelijker is en ik me daar geen zorgen over hoef te maken sowieso.

Bedoel nu heb ik de 2 afbeeldingen van de schep uit de database gehaald en getoond, navigatie_ID zit er blijkbaar aan vast, en nu weet ik dat ik in de vervolgstap dus iets verkeerd doe. Terwijl als ik andere codes erbij zou doen (ook al werken ze) ik na uren eerder zou kunnen twijfelen of er toch niet ook iets mis is met die codes.. vandaar (althans dat is wat ik zo doe omdat het me wel oke leek).

Ben trouwens een totale leek wat betreft php, dus ik begrijp dat de codering die ik toonde nogal belabberd kan zijn. Maar ik heb gewoon zoveel verschillende dingen geprobeerd die ik op internet las en die me niet gelukt zijn dat dit de code was waarmee ik achterbleef toen ik besloot om het hier maar te vragen.

1 van die foutmeldingen (conn) is weg, was gewoon vergeten om de databaseconnectie er te includen. Hoe ik die navigatie_ID eruit moet halen en op kan zoeken in de database (naar de bijbehorende informatie) probeer ik nu uit te zoeken
Als je aan het hobbyen bent prima, maar 'een beetje aanklooien' is doorgaans een hele verkeerde manier om een taal te leren. Sowieso is het wel raadzaam om gelijk te beginnen met een goed framework in PHP. Die hebben doorgaans de standaard best-practices en architecturele patronen als MVC, dependency injection, enzovoort geïmplementeerd. De quick-and-dirty wijze van procedureel programmeren die vaak in PHP wordt gehanteerd levert op de iets langere termijn vaak een onbeheersbare teringbende op.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_155758424
Ik zal me eerst weer wat extra bezig gaan houden met de basis, hierna :P

Maar bedankt iedereen :) Heb nu de basis van wat ik wou



Nu kan ik in ieder geval verder aangezien ik nu daar het navigatie_ID kan oppakken (lag aan de spatie er en nou ja al het andere wat ik fout deed)
Fylax is op televisie geweest
  donderdag 8 oktober 2015 @ 13:30:58 #40
118011 BrainOverfloW
Fok! around the Clock!
pi_156688173
In mijn editor, Sublime Text 3, heb ik PHPlint toegevoegd en die werkt op zich prima. Maar is het ook mogelijk om zelf regels toe te voegen?

Ik werk momenteel met JS en PHP door elkaar en na een tijd te hebben zitten debuggen omdat ik over het hoofd zag dat ik '+=' gebruikt had i.p.v. '.=' zou ik daar graag een waarschuwing voor maken als dat mogelijk is.
Whether or not you can become great at something, you can always become better.
And one day you'll wake up and find out how good you actually became, having transcended whatever limits you might have thought you couldn't pass.
Neil Degrasse Tyson
pi_156688279
Lijkt me een beetje raar als je IDE waarschuwingen gaat geven voor dingen die syntactisch gewoon in orde zijn, toch?
  donderdag 8 oktober 2015 @ 13:57:48 #42
118011 BrainOverfloW
Fok! around the Clock!
pi_156688699
quote:
14s.gif Op donderdag 8 oktober 2015 13:35 schreef KomtTijd... het volgende:
Lijkt me een beetje raar als je IDE waarschuwingen gaat geven voor dingen die syntactisch gewoon in orde zijn, toch?
In principe ben ik dat wel met je eens, maar in de afweging tussen dat principe of een melding die me debug tijd bespaard ga ik toch liever voor het tweede. Zeker als ik toch de enige ben die het merkt.
Whether or not you can become great at something, you can always become better.
And one day you'll wake up and find out how good you actually became, having transcended whatever limits you might have thought you couldn't pass.
Neil Degrasse Tyson
pi_156689022
Ik ken Sublime Text niet, dus kan je helaas niet verder helpen. Maar ik ben bang dat je binnen de kortste keren zou verzuipen in de waarschuwingen als je hieraan begint.
  donderdag 8 oktober 2015 @ 14:51:24 #44
118011 BrainOverfloW
Fok! around the Clock!
pi_156689695
quote:
14s.gif Op donderdag 8 oktober 2015 14:12 schreef KomtTijd... het volgende:
Ik ken Sublime Text niet, dus kan je helaas niet verder helpen. Maar ik ben bang dat je binnen de kortste keren zou verzuipen in de waarschuwingen als je hieraan begint.
Zoveel gevallen van code die zowel in JS als PHP syntactisch overeen komen maar in hun werking verschillen kan ik me anders niet bedenken. Ik kom ze in ieder geval nauwelijks tegen.
Als ik per ongeluk een JS functie in mijn PHP gebruik (of anders om) dan krijg ik vanzelf foutmeldingen dus daar ga ik zeker geen lijst van waarschuwingen voor schrijven. Het gaat me puur om de onhandigheid van het verschil tussen die '.=' en '+='.
Whether or not you can become great at something, you can always become better.
And one day you'll wake up and find out how good you actually became, having transcended whatever limits you might have thought you couldn't pass.
Neil Degrasse Tyson
pi_156702767
quote:
14s.gif Op donderdag 8 oktober 2015 13:35 schreef KomtTijd... het volgende:
Lijkt me een beetje raar als je IDE waarschuwingen gaat geven voor dingen die syntactisch gewoon in orde zijn, toch?
PhpStorm kan ook een waarschuwing geven als je iets als
1
2
3
<?php
$b 
+= $a;
?>
probeert, op basis van het type van $a. Als dat een string is, ook een numerieke string, krijg je een warning. Waarschijnlijk gaat het verder dan alleen strings, maar dat heb ik niet gecontroleerd.

Of Sublime het kan, weet ik niet. Ik gebruik Sublime niet.
pi_156707199
quote:
14s.gif Op donderdag 8 oktober 2015 13:35 schreef KomtTijd... het volgende:
Lijkt me een beetje raar als je IDE waarschuwingen gaat geven voor dingen die syntactisch gewoon in orde zijn, toch?
Valt wel mee. Ellende met addition vs concatenation hou je altijd in dit soort weakly typed languages. Vaak is er in IDEs een vorm van type inference aanwezig, die probeert te bepalen wat het type van je variabelen is.
De addition operator blind gebruiken op twee Strings is in een taal als PHP niet bepaald aan te raden. Ook het gebruiken van de concatenation operator op numerieke waarden is niet echt logisch.
Dan is het niet vreemd dat een IDE waarschuwingen geeft als je addition op twee string waarden of concatenation op twee numerieke waarden doet.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_156707794
Oh ik zie nu dat ik verkeerd gelezen had, dacht dat het een waarschuwing op "+=" in plaats van "=" zou zijn. Concatenation vs addition zou idd wel een prettige warning wezen misschien.
  vrijdag 9 oktober 2015 @ 11:53:16 #48
10526 broer
Nutteloze van de nacht.
pi_156708124
Ik krijg het PHPMailer-script niet goed aan de praat. Zou iemand willen meekijken wat ik verkeerd doe?

Mijn bezoekers doorlopen een paar pagina's. Eerst vullen ze een naam en mailadres is, dan krijgen ze een instructie en vervolgens doen ze een test van een aantal meerkeuzevragen.

Als ze daarmee klaar zijn gaan ze naar done.php; daar krijgen ze de uitslag en de mogelijkheid om 1. die uitslag toegemaild te krijgen, of 2. die uitslag toegemaild te krijgen en de resultaten in mijn database te laten zetten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
    session_start();
    require "Classes/Test.class.php" ;
    require "Classes/Item.class.php" ;
    require "Classes/Result.class.php" ;
    require "Classes/DB.class.php" ;

?>

<html>
<head>

<?php
include "Includes/header.php" ;
?>

    
</head>

<body onload="$('#submitdone').attr('disabled', 'disabled');">
<div class='takethetest'>
<center>
<div id="result">
<?php
    $test = unserialize($_SESSION['test']) ;
    echo "Score " . $test->extractResults() . " %" ;
    $_SESSION['score'] = $test->extractResults() ;
?>
</div>
</center>
<p>We will send the results
    <?php echo (($_SESSION['sname']!='') ? ' of participant ' . $_SESSION['sname'] . ' ' : '') ; ?>
    to these addresses. Add more addresses if you please, and press the 'Send' button. 'Save and send' will also save the results to our database.</p>

    <form id="emailform" action="index.php" method="post">
    <p><input type="text" value="<?php  if($_SESSION['email0']!=""){echo $_SESSION['email0'] ;}?>"id="email1" name="email1"><br />
    <input type="text" value="<?php  if($_SESSION['email1']!=""){echo $_SESSION['email1'] ;}?>"id="email2" name="email2"><br />
    <input type="text" value="<?php  if($_SESSION['email2']!=""){echo $_SESSION['email2'] ;}?>"id="email3" name="email3"><br />
    <input type="text" value="<?php  if($_SESSION['email3']!=""){echo $_SESSION['email3'] ;}?>"id="email0" name="email0"><br />
    <input type="text" value="" id="email4" name="email4"></p>
            <center><div id="radio">
                  <input type="submit" value="Save and send" id="submitb" name="submitb" />
                  <input type="submit" value="Send" id="submitb" name="submitb" />
          </div>
          </center>

  </form>

    
</div>
</body>

</html>

Vervolgens zou index.php een mooi bedankje moeten laten zien, terwijl hij de mail verstuurt en eventueel de boel opslaat in de database.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
    session_start() ;
    require "Classes/Test.class.php" ;
    require "Classes/Item.class.php" ;
    require "Classes/Result.class.php" ;
    require "Classes/DB.class.php"

?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php
    include 'Includes/header.php';
    if($_POST['submitb'] != "Send")
        {
            $test = unserialize($_SESSION['test']) ;
            $name = $_SESSION['sname'] ;
            $db = new DB() ;
            $db->connect() ;
            $db->selectDb() ;
            $db->insert($test, $name) ;
        }
    if(isset($_POST['submitb']) && ($_POST['email0']!="" || $_POST['email1']!='' || $_POST['email2']!='' || $_POST['email3']!='' || $_POST['email4']!=''))
    {
        $_SESSION['email0'] = $_POST['email0'] ;
        $_SESSION['email1'] = $_POST['email1'] ;
        $_SESSION['email2'] = $_POST['email2'] ;
        $_SESSION['email3'] = $_POST['email3'] ;
        $_SESSION['email4'] = $_POST['email4'] ;
    
    }

require_once 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer(true);
$mail->CharSet = 'utf-8';
ini_set('default_charset', 'UTF-8');
 
class phpmailerAppException extends phpmailerException {}

$mail->isSMTP();
$mail->SMTPDebug  = 2;
$mail->Host       = "mail.server.com";
$mail->Port       = "587";
$mail->SMTPSecure = "none";
$mail->SMTPAuth   = true;
$mail->Username   = “mail@server.com";
$mail->Password   = “kloppend wachtwoord”;
$mail->addReplyTo("mail@server.com", “Afzender”);
$mail->setFrom(“mail@server.com”, “Afzender”);
$mail->addAddress(“mail@server.com”, “Ontvanger”);
        if($_SESSION['email0']!="")
            $mail->AddAddress($_SESSION['email0']);
        if($_SESSION['email1']!="")
            $mail->AddAddress($_SESSION['email1']);
        if($_SESSION['email2']!="")
            $mail->AddAddress($_SESSION['email2']);
        if($_SESSION['email3']!="")
            $mail->AddAddress($_SESSION['email3']);
        if($_SESSION['email4']!="")
            $mail->AddAddress($_SESSION['email4']);
$mail->Subject  = “Results";
        $message = 'Dear participant,’ . "\n\n" . 'On ' . date("F j, Y, g:i a") . ',' . (isset($_SESSION['sname']) ? ' ' . $_SESSION['sname'] : ' [anonymous]') . ' participated in the ' . ucfirst($_SESSION['language']) . ' version of our test. The score was ' . $_SESSION['score'] . ' %.';

        $message .= "\n\n" . 'Thank you for participating!' ;

        
$body = $message;
$mail->WordWrap = 78;
$mail->msgHTML($body, dirname(__FILE__), true); 

    session_destroy() ;
?>

    </head>

<body>
<div class='takethetest'>
<h1>Thank you</h1>
 
        
        <p>Thank you very much for taking the test.</p>
        <p><a href="#" class="button1" id="close" onclick="$('.popupBG',parent.document).trigger('click');">
            Close window</a></p>
        <p><a href="../index.html" class="button1" id="home">
            Back to the homepage</a></p>
    </div>
    
    

    
    </body>

</html>

Maar index.php geeft niets weer. Alleen een blank scherm. Er wordt ook geen mail verstuurd.

Op de PHPMailer-testpagina heb ik de smtp-server getest, en daarmee komt de mail wel binnen. Daar lijkt me dus niets mis mee.

Maar wat dan wel? Wat zie ik over het hoofd? :( (Ik ben een volslagen php-dummie, trouwens. Dus ik ga ervan uit dat het iets heel stoms is.)

Alvast veel dank voor de mensen die meelezen. :)
pi_156708656
Ga eerst je debug meldingen maar eens aanzetten.
  vrijdag 9 oktober 2015 @ 14:01:36 #50
10526 broer
Nutteloze van de nacht.
pi_156710157
Helaas weet ik niet precies wat je daarmee bedoelt. Sorry.

Als ik in mijn browser de foutmeldingen aanzet, krijg ik bij de overgang tussen de twee pagina's een '500: internal server error'. Als ik het mail-deel uit de tweede pagina haal, krijg ik die foutmelding niet.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')