sizzler | woensdag 7 september 2005 @ 00:58 |
Hij doet het niet.
Ik wil de enquetes voor mijn afstudeerscriptie online zetten zodat studenten hem online in kunnen vullen. Maar ik ben geen held in php.
Weet iemand wat ik verkeerd doe?
Edit: Hier staat de script als .txt document.
foutmelding: Parse error: parse error, unexpected '>' in /home/k10436/public_html/vincent.php on line 111
Op line 111 staat: <b>Onderzoek diensten</b><br><br> 
[ Bericht 3% gewijzigd door sizzler op 07-09-2005 14:09:06 ] |
CasB | woensdag 7 september 2005 @ 01:07 |
Deze regel:quote:<tr><td colspan=2 bgcolor="#FFFFFF" align="left"><font face=verdana size=2 color=black> moetquote:<tr><td colspan=2 bgcolor=\"#FFFFFF\" align=\"left\"><font face=verdana size=2 color=black> zijn.  |
Drugshond | woensdag 7 september 2005 @ 01:12 |
Het bekende " - gezeik...... je zou het ook temporary kunnen omzetten naar (D)HTML. PHP en HTML gaan redelijk samen... (echt netjes is het niet... maar soms heeft het voordelen). |
sizzler | woensdag 7 september 2005 @ 01:12 |
quote: 
Check.
Volgende foutmeldeing: Parse error: parse error, unexpected $ in /home/k10436/public_html/vincent.php on line 445
(= de laatste zin in de code) |
sizzler | woensdag 7 september 2005 @ 01:14 |
quote:Op woensdag 7 september 2005 01:12 schreef Drugshond het volgende:Het bekende " - gezeik...... je zou het ook temporary kunnen omzetten naar (D)HTML. PHP en HTML gaan redelijk samen... (echt netjes is het niet... maar soms heeft het voordelen). Is dat moeilijk? |
CasB | woensdag 7 september 2005 @ 01:16 |
-edit- toch niet  |
sizzler | woensdag 7 september 2005 @ 01:19 |
quote: Ah, dacht al.
Ik heb er al wel <div align=center><input type=\"Submit\" name=\"action\" value=\"Volgende\"> van gemaakt. Is dat erg? |
Drugshond | woensdag 7 september 2005 @ 01:20 |
1 tip.... draai assignment om.
if( 1 == $_POST['page']) , heeft meer voordelen je krijgt een explicite foutmelding terug. Valt tegenwoordig ook onder de verschillende coding standards.
|
CasB | woensdag 7 september 2005 @ 01:20 |
Aangezien dat stuk buiten de <?php en ?> valt, hoef je daar geen backslashes te gebruiken...maar ik ga nog even verder op zoek naar het euvel  |
sizzler | woensdag 7 september 2005 @ 01:24 |
quote: Oh.  quote:maar ik ga nog even verder op zoek naar het euvel  Top. |
Drugshond | woensdag 7 september 2005 @ 01:24 |
quote:Op woensdag 7 september 2005 01:20 schreef CasB het volgende:Aangezien dat stuk buiten de <?php en ?> valt, hoef je daar geen backslashes te gebruiken...maar ik ga nog even verder op zoek naar het euvel  Sizzler... vergeet niet te checken op database entries waarbij quotes worden gebruikt. Dat gaat meestal fout bij een dergelijke toewijzing. |
sizzler | woensdag 7 september 2005 @ 01:27 |
quote:Op woensdag 7 september 2005 01:20 schreef Drugshond het volgende:1 tip.... draai assignment om. if( 1 == $_POST['page']) , heeft meer voordelen je krijgt een explicite foutmelding terug. Valt tegenwoordig ook onder de verschillende coding standards. Done. Maar de foutmelding blijft hetzelfde. |
sizzler | woensdag 7 september 2005 @ 01:30 |
quote:Op woensdag 7 september 2005 01:24 schreef Drugshond het volgende:[..] Sizzler... vergeet niet te checken op database entries waarbij quotes worden gebruikt. Dat gaat meestal fout bij een dergelijke toewijzing. Je bedoelt dat er een \ voor de " moet binnen de <> ? |
CasB | woensdag 7 september 2005 @ 01:30 |
Gevonden 
Na quote:if(4 == $_POST['page']) //pagina4 { $resultaten['Keuzesituatie1'] = $_POST['Keuzesituatie1']; $resultaten['Keuzesituatie2'] = $_POST['Keuzesituatie2']; $resultaten['Keuzesituatie3'] = $_POST['Keuzesituatie3']; } Nog 1 }
En het werkt  |
sizzler | woensdag 7 september 2005 @ 01:35 |
quote: Jaaaah!
 |
sizzler | woensdag 7 september 2005 @ 01:38 |
Nu pakt hij vraag 3 en 4 niet....
beginpagina
lay-out moet ik nog aan werken |
sizzler | woensdag 7 september 2005 @ 01:43 |
quote: Daarom heb ik zo'n hekel aan programmeren. Eén kut-tekentje en hij doet het niet meer.... |
Ali Salami | woensdag 7 september 2005 @ 01:56 |
In ieder geval is je url niet goed, na de eerste ? moet er & staan, dus piep.php?id=1&pagina=2 bijvoorbeeld.
Daarbij staat er nu Array in de url, dat heeft geen nut als je er iets mee gaat doen. Maar ik zal eens kijken hoe hets cript in elkaar zit 
Dit staat er in ieder geval niet goed:
if($teller - 1 == 1) // de teller staat al eentje vooruit, vandaar -1 print $pagina1; if($teller - 1 == 2) print $pagina2; if($teller - 2 == 3) print $pagina3; if($teller - 3 == 4) print $pagina4;
Ik neem aan dat de laatste twee ook -1 moeten?  |
sizzler | woensdag 7 september 2005 @ 02:07 |
quote:Op woensdag 7 september 2005 01:56 schreef Ali Salami het volgende:In ieder geval is je url niet goed, na de eerste ? moet er & staan, dus piep.php?id=1&pagina=2 bijvoorbeeld. Daarbij staat er nu Array in de url, dat heeft geen nut als je er iets mee gaat doen. Maar ik zal eens kijken hoe hets cript in elkaar zit  Dit staat er in ieder geval niet goed: if($teller - 1 == 1) // de teller staat al eentje vooruit, vandaar -1 print $pagina1; if($teller - 1 == 2) print $pagina2; if($teller - 2 == 3) print $pagina3; if($teller - 3 == 4) print $pagina4; Ik neem aan dat de laatste twee ook -1 moeten?  Hebbes! |
sizzler | woensdag 7 september 2005 @ 02:09 |
Oh, ik krijg niet alle variabelen in mijn inbox, ligt dat aan de mail.cgi?
########## ---- MODIFY VARIABLES
$mailprogram = '/usr/sbin/sendmail'; # Location of your sendmail program. $my_email = 'sizzler@fok.nl'; # Where you want the messages to go to $homepage = 'http://www.installcgi.com'; # URL of your home page $website_name = 'Installcgi.com'; # Your web site's name $subject='Feedback Form'; # The subject of your e-mail message to your visitor $thankyou_page='Hartelijk dank voor uw tijd. De enquete is verzonden!'; # Text your visitor will see on a thank-you page $logo_url='http://www.episcopalchurch.org/images/IS_thumbs_up_medres.jpg'; # URL of your logo or image to display
########## --- DO NOT CHANGE ANYTHING BELOW
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; }
if ($FORM{'email'}) { $email = $FORM{'email'}; }
# Sending message to your address
open (MAIL,"|$mailprogram -t"); print MAIL "To: $my_email\n"; print MAIL "From: $email\n"; print MAIL "Subject: $subject\n"; print MAIL "U heeft het volgende bericht ontvangen:\n\n";
@pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; print MAIL "$name: $value\n"; }
close(MAIL);
# Print thank-you page
print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>Dank u!</TITLE></HEAD>\n"; print "<center><table border=1 cellpadding=8 width=350><tr><td bgcolor=\"#CAAAAD\">"; print "<CENTER><font face=verdana size=4>Dank u!</font></td></tr><tr><td><center><font face=verdana size=-1>"; print $thankyou_page; print "<br><br>"; print "<img src=$logo_url><p>"; print "Ook een formulier maken? Ga naar: <a href=$homepage>$website_name</a>"; print "</td></tr></table>"; |
Ali Salami | woensdag 7 september 2005 @ 02:13 |
Wat krijg je er wel in? Overigens is dit cgi, daar heb ik geen ervaring mee.  |
sizzler | woensdag 7 september 2005 @ 02:13 |
quote: Niet veel. 
U heeft het volgende bericht ontvangen:
cijfermerka: cijfermerkb: cijfermerkc: cijfermerkd: cijfermerke: cijfermerkf: cijfermerkg: cijfermerkh: plaats1: plaats2: plaats3: plaats4: plaats5: plaats6: plaats7: plaats8: page: 4 action: Volgende |
Ali Salami | woensdag 7 september 2005 @ 02:23 |
Heb je de huidige code eens voor me in txt-vorm?  In ieder geval moet je maar eens in de broncode kijken van pagina 4, daar heb je een aantal hidden-fields waarbij de waarde voor alle velden mist.  |
sizzler | woensdag 7 september 2005 @ 02:28 |
quote:Op woensdag 7 september 2005 02:23 schreef Ali Salami het volgende:Heb je de huidige code eens voor me in txt-vorm?  In ieder geval moet je maar eens in de broncode kijken van pagina 4, daar heb je een aantal hidden-fields waarbij de waarde voor alle velden mist.  Dit is wat er nu opstaat.
Ehm, wat zijn hidden fields?  |
Catch22- | woensdag 7 september 2005 @ 02:59 |
velden in het formulier waar je data in kan opslaan zonder dat de gebruiker ze ziet. Deze waardes kan je wel uitlezen middels post |
Ali Salami | woensdag 7 september 2005 @ 03:15 |
Zoals hierboven gezegd, je kunt zo data laten zien in je script. Dat doe je bijvoorbeeld al door aan te geven welke pagina er wordt verstuurd. (<input type=\"Hidden\" name=\"page\" value=\"$hidpage\">)
Nu gebruik je het zelfde om bepaalde data van het vorige formulier in een formulier weer te geven. Dit doe je echter om voor mij onbegrijpelijk redenen alleen bij de laatste pagina. Ik bedoel dus
1 2 3 4 5 6 7 8 9 10 | <?php if($teller==4) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; foreach($resultaten as $key=>$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } else print "<form method=post action=$PHP_SELF?enumteller=$teller?res=$resultaten>"; ?> |
Met die foreach loop zet je ze er dus neer, maar dat doe je alleen bij pagina 3. Als je dit doet bij alle formulieren worden in elk formulier de waarden allemaal meegegeven, zodat ze in het laatste formulier allemaal worden meegestuurd.
Het volgende zou ik dan dus doen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php if($teller==4) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; } else { print "<form method=post action=$PHP_SELF?enumteller=$teller>"; }
if(isset($_POST)) { foreach($_POST as $key=>$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } ?> |
Nu wordt het dus in elk formulier gebruikt. Je ziet dat uik de waarde $_POST gebruik nu, want waarom zou je eerst alles om gaan zetten naar de waarde resultaten? Die waarde grbuik je in je script namelijk buiten de foreach-loop om maar voor één ding: de url van het script ($res=). Die waarde heeft echter geen nut, er komt alleen Array in je url te staan waar je niets aan hebt. Dat kan dus helemaal weg, zoals ik in mijn verbetering heb gedaan.
Nu kun je het volgende allemaal weglaten:
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 | <?php if($_POST) { $resultaten = $res; if(1 == $_POST['page']) //pagina1 { $resultaten['leeftijd'] = $_POST['leeftijd']; $resultaten['geslacht'] = $_POST['Geslacht']; $resultaten['opleiding'] = $_POST['Opleiding']; $resultaten['waargestudeerd'] = $_POST['Waargestudeerd']; $resultaten['Studierichting'] = $_POST['Studierichting']; } if(2 == $_POST['page']) //pagina2 { $resultaten['cijfermerka'] = $_POST['CijferMerkA']; $resultaten['cijfermerkb'] = $_POST['CijferMerkB']; $resultaten['cijfermerkc'] = $_POST['CijferMerkC']; $resultaten['cijfermerkd'] = $_POST['CijferMerkD']; $resultaten['cijfermerke'] = $_POST['CijferMerkE']; $resultaten['cijfermerkf'] = $_POST['CijferMerkF']; $resultaten['cijfermerkg'] = $_POST['CijferMerkG']; $resultaten['cijfermerkh'] = $_POST['CijferMerkH']; $resultaten['plaats1'] = $_POST['plaats1']; $resultaten['plaats2'] = $_POST['plaats2']; $resultaten['plaats3'] = $_POST['plaats3']; $resultaten['plaats4'] = $_POST['plaats4']; $resultaten['plaats5'] = $_POST['plaats5']; $resultaten['plaats6'] = $_POST['plaats6']; $resultaten['plaats7'] = $_POST['plaats7']; $resultaten['plaats8'] = $_POST['plaats8']; }
if(3 == $_POST['page']) //pagina3 { $resultaten['cijfermerka'] = $_POST['CijferMerkAvr2']; $resultaten['cijfermerkb'] = $_POST['CijferMerkBvr2']; $resultaten['cijfermerkc'] = $_POST['CijferMerkCvr2']; $resultaten['cijfermerkd'] = $_POST['CijferMerkDvr2']; $resultaten['cijfermerke'] = $_POST['CijferMerkEvr2']; $resultaten['cijfermerkf'] = $_POST['CijferMerkFvr2']; $resultaten['cijfermerkg'] = $_POST['CijferMerkGvr2']; $resultaten['cijfermerkh'] = $_POST['CijferMerkHvr2']; $resultaten['plaats1'] = $_POST['plaats1vr2']; $resultaten['plaats2'] = $_POST['plaats2vr2']; $resultaten['plaats3'] = $_POST['plaats3vr2']; $resultaten['plaats4'] = $_POST['plaats4vr2']; $resultaten['plaats5'] = $_POST['plaats5vr2']; $resultaten['plaats6'] = $_POST['plaats6vr2']; $resultaten['plaats7'] = $_POST['plaats7vr2']; $resultaten['plaats8'] = $_POST['plaats8vr2']; }
if(4 == $_POST['page']) //pagina4 { $resultaten['Keuzesituatie1'] = $_POST['Keuzesituatie1']; $resultaten['Keuzesituatie2'] = $_POST['Keuzesituatie2']; $resultaten['Keuzesituatie3'] = $_POST['Keuzesituatie3'];
} } ?> |
Nu je de waarde 'resultaten' niet meer gebruikt heb je ook niets meer aan het omzetten van de $_POST-waarden, tenzij je er veiligheidschecks danwel checks op of de waarde is ingevoerd op wilt doen,. wat je in je script niet doet. In dat geval kun je het dus helemaal weglaten.
Hier zat overigens sowieso nog de fout in dat de waarden van pagina 2 gelijk waren aan die van 3 (niet de postwaarden, maar wel de waarden van resultaten). Bovendien zou dit, als je het wel zou gebruiken, problemen opleveren omdat je de namen niet gelijk aan elkaar hebt:
[php$resultaten['cijfermerke'] = $_POST['CijferMerkE'];[/php]
Zou dan moeten worden:
1 2 3 | <?php $resultaten['cijfermerke'] = $_POST['cijfermerke']; ?> |
Succes 
[ Bericht 99% gewijzigd door Ali Salami op 07-09-2005 03:49:26 ] |
sizzler | woensdag 7 september 2005 @ 12:05 |
quote: Dat is een stuk simpeler! 
Okee. Ik heb het aangepast. |
sizzler | woensdag 7 september 2005 @ 12:12 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php if($teller==4) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; } else { print "<form method=post action=$PHP_SELF?enumteller=$teller>"; }
if(isset($_POST)) { {foreach($_POST as $key=>$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } }
?> |
Geeft de foutmelding:
Parse error: parse error, unexpected '=', expecting ')' in /home/k10436/public_html/enquete.php on line 13
edit: hmmm, copy/paste in de code-tags gaat niet helemaal goed. Regel 13 moet zijn (zoals Ali Salami schreef): foreach($_POST as $key=>$value) |
CasB | woensdag 7 september 2005 @ 12:15 |
{foreach($_POST as $key=>$value)
Voor de foreach staat een { die niet nodig is 
-edit- Ik moet zelf wel goed lezen 
-edit2- moet het niet $key->$value zijn? |
sizzler | woensdag 7 september 2005 @ 12:26 |
quote:Op woensdag 7 september 2005 12:15 schreef CasB het volgende:{foreach($_POST as $key=>$value) Voor de foreach staat een { die niet nodig is  -edit- Ik moet zelf wel goed lezen  -edit2- moet het niet $key->$value zijn? jes. |
sizzler | woensdag 7 september 2005 @ 12:28 |
http://www.slenderyouperfect.nl/vincent.php

de code |
cyberstalker | woensdag 7 september 2005 @ 13:10 |
Moet ie het nou al doen? Ik krijg alleen witte balk te zien, met daaronder de knop 'volgende', maar geen vragen o.i.d. |
sizzler | woensdag 7 september 2005 @ 13:19 |
quote:Op woensdag 7 september 2005 13:10 schreef cyberstalker het volgende:Moet ie het nou al doen? Ik krijg alleen witte balk te zien, met daaronder de knop 'volgende', maar geen vragen o.i.d. Hij zou het moeten doen, maar blijkbaar doe ik het nog steeds verkeerd.... |
Ali Salami | woensdag 7 september 2005 @ 14:28 |
1 2 3 4 5 6 7 8 | <?php $teller=1;
if($_GET['enumteller']) { $teller = $_GET['enumteller']; } ?> |
Zet dat weer eens terug?  |
cyberstalker | woensdag 7 september 2005 @ 14:32 |
Het klopt sowieso niet, omdat je, ongeacht wat de $teller variabele is, een <form> tag hebt vóór je html tag, en dat is sowieso fout.
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 | <form method=post action=/vincent.php?enumteller=>
<html><head><title>Enquete afstudeerscriptie</title><head>
<body bgcolor="#EDEBC8" link="#ffffff" text="#003333" vlink="#ffffff">
<form method=post action=/vincent.php?enumteller=1?res=><input type="Hidden" name="page" value="0"> <center> <table bgcolor="#FFFFFF" border=1 cellpadding=10 width=850>
<td width="25%"><font face=verdana size=2><b> </b></td>
</tr>
</table> </center>
<!-- <tr> <td colspan=2> <div align=center><input type=submit value=\"Submit\"> <input type=\"reset\" value=\"Reset\"></div></td> </tr>-->
<tr><td colspan=2>
<div align=center><input type="Submit" name="action" value="Volgende"> </div></td> </tr>
</form> </body> </html> |
Daarnaast heb je om heel attributen geen aanhalingstekens staan, dat is ook niet netjes. Verder denk ik dat je beter een switch kunt gebruiken, ipv een serie if-jes (daar is dat ding namelijk voor). |
Ali Salami | woensdag 7 september 2005 @ 14:35 |
En sowieso wordt form er twee keer ingezet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php if($teller==4) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; } else { print "<form method=post action=$PHP_SELF?enumteller=$teller>"; }
if(isset($_POST))
{foreach($_POST as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } ?> |
1 2 3 4 5 6 7 8 9 10 | <?php if($teller==5) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; foreach($resultaten as $key=>$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } else print "<form method=post action=$PHP_SELF?enumteller=$teller?res=$resultaten>"; ?> |
Het eerste moet het tweede vervangen, niet er extra bijgezet worden  |
cyberstalker | woensdag 7 september 2005 @ 14:38 |
Nee, die eerste mag er helemaal uit. Verderop heeft hij namelijk een ifje wat checkt of $teller==5 (er is inmiddels dan één bijgekomen). |
cyberstalker | woensdag 7 september 2005 @ 14:44 |
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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 | <html><head><title>Enquete afstudeerscriptie</title><head>
<body bgcolor="#EDEBC8"" link="#ffffff" text="#003333" vlink="#ffffff">
<?php // bepaal hier welke pagina hierna komt, of dat hij moet versturen: $teller += 1; // tel er eentje bij op
// het eerste cijfer hieronder moet de laatste pagina worden, dan moet hij het naar mail.cgi sturen.. if($teller==5) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; foreach($resultaten as $key=>$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } else { print "<form method=post action=$PHP_SELF?enumteller=$teller?res=$resultaten>"; }
if(isset($_POST)) { foreach($_POST as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } }
$hidpage = $teller -1; print "<input type=\"Hidden\" name=\"page\" value=\"$hidpage\">"; ?>
<center> <table bgcolor="#FFFFFF" border=1 cellpadding=10 width=850>
<?php
$pagina1 = "
<tr><td colspan=2 bgcolor=\"#FFFFFF\" align=\"left\"><font face=verdana size=2 color=black> <b>Onderzoek diensten</b><br><br>
Geachte heer, mevrouw,<br><br>
Hartelijk dank dat u aan deze enquête mee wilt werken. <br><br>
De enquête bestaat uit drie vragen en zal slechts een paar minuten tijd in beslag nemen. <br><br>
De vragen zijn anoniem. Er zijn alleen wat persoonlijke gegevens nodig om de homogeniteit van de onderzoeksgroep te waarborgen. </font></td></tr>
<tr> <td><font face=verdana size=2><b>Persoonlijke gegevens</b></td> <tr> <td><font face=verdana size=2>Leeftijd: <input name=leeftijd></td></tr> <tr> <td><font face=verdana size=2>Geslacht:<br> <input type=\"radio\" name=\"Geslacht\" value=\"Man\"><font face=verdana size=2>Man<br> <input type=\"radio\" name=\"Geslacht\" value=\"Vrouw\"><font face=verdana size=2>Vrouw</td></tr> <tr> <td><font face=verdana size=2>Wat is de hoogst genoten opleiding die u heeft <br>gevolgd (of nog mee bezig bent)?<br> <input type=\"radio\" name=\"Opleiding\" value=\"basis\"><font face=verdana size=2>Basisonderwijs<br> <input type=\"radio\" name=\"Opleiding\" value=\"LBO\"><font face=verdana size=2>LBO<br> <input type=\"radio\" name=\"Opleiding\" value=\"VMBO/mavo\"><font face=verdana size=2>Vmbo/mavo<br> <input type=\"radio\" name=\"Opleiding\" value=\"havo\"><font face=verdana size=2>havo<br> <input type=\"radio\" name=\"Opleiding\" value=\"VWO\"><font face=verdana size=2>VWO<br> <input type=\"radio\" name=\"Opleiding\" value=\"mbo\"><font face=verdana size=2>mbo<br> <input type=\"radio\" name=\"Opleiding\" value=\"hbo\"><font face=verdana size=2>hbo<br> <input type=\"radio\" name=\"Opleiding\" value=\"WO\"><font face=verdana size=2>WO<br></td></tr> <tr> <td><font face=verdana size=2>Waar studeert u / heeft u gestudeerd? <input name=Waargestudeerd></td></tr> <tr> <td><font face=verdana size=2>in welke studierichting? <input name=Studierichting></td></tr> <tr> <td></td></tr> ";
$pagina2 = " <tr> <td><font face=verdana size=2><b>Vraag 1</b></td> <tr> <td><font face=verdana size=2>Gegeven zijn acht aanbieders van abonnementen voor mobiele telefonie, met ieder verschillende eigenschappen. De verschillende abonnementen hebben een aantal gratis belminuten en sms’jes per maand. Daarna zijn de kosten voor de sms’jes voor ieder abonnement gelijk. De kosten per minuut na de gratis belminuten zijn verschillend. Een nieuw fenomeen is een digitaal filter dat sommige aanbieders op het netwerk plaatsen. Dit filter zorgt ervoor dat er zoveel mogelijk ruis uit de gesprekken gehaald wordt zodat de kwaliteit van de verbinding verbetert.<br><br> <b>De kosten zijn voor elk abonnement even hoog.</b><br><br> Hieronder staan de abonnementen:</td> <td colspan=4> <div align=left> <tr> <td width=\"25%\" ><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk C:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk D:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td colspan=4> <div align=left> <tr> <td width=\"25%\" ><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk C:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk D:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Ja<br><br></td> </table> </center> <center> <table bgcolor=\"#FFFFFF\" border=1 cellpadding=0 width=850> <tr><td colspan=1 bgcolor=\"#FFFFFF\"><font face=verdana size=2 color=black> <tr> <td><font face=verdana size=2>Gevraagd wordt om de merken die hierboven staan een cijfer te geven tussen de 1 en de 10, waarbij het hoogste cijfer voor de aanbieding staat voor uw hoogste voorkeur.<br><br> Kunt u daarna een top-8 maken van de merken, waarbij het merk dat uw hoogste voorkeur heeft bovenaan komt en het merk met de minste voorkeur onderaan? </td> </table> </center> <center> <table bgcolor=\"#FFFFFF\" border=1 cellpadding=0 width=850> <tr><td colspan=1 bgcolor=\"#FFFFFF\"><font face=verdana size=2 color=black> <td colspan=4> <div align=left> <tr> <td width=\"25%\"><font face=verdana size=2><b>Merk: Cijfer:</b><br><br> A <input name=\"CijferMerkA\" size=3><br> B <input name=\"CijferMerkB\" size=3><br> C <input name=\"CijferMerkC\" size=3><br> D <input name=\"CijferMerkD\" size=3><br> E <input name=\"CijferMerkE\" size=3><br> F <input name=\"CijferMerkF\" size=3><br> G <input name=\"CijferMerkG\" size=3><br> H <input name=\"CijferMerkH\" size=3><br> </td> <td width=\"25%\" valign=\"top\"><font face=verdana size=2><b>De Top-8: </b></td> <td width=\"25%\"><font face=verdana size=2><b>Plaats: Merk:</b><br><br> 1 <input name=\"plaats1\" size=1><br> 2 <input name=\"plaats2\" size=1><br> 3 <input name=\"plaats3\" size=1><br> 4 <input name=\"plaats4\" size=1><br> 5 <input name=\"plaats5\" size=1><br> 6 <input name=\"plaats6\" size=1><br> 7 <input name=\"plaats7\" size=1><br> 8 <input name=\"plaats8\" size=1><br> </td> <td width=\"25%\"><font face=verdana size=2><b> </b></td> </tr> </table> </center> <center> <table bgcolor=\"#FFFFFF\" border=1 cellpadding=10 width=850> <tr><td colspan=2 bgcolor=\"#FFFFFF\"><font face=verdana size=2 color=black> <tr> <td></td></tr> ";
$pagina3 = " <tr> <td><font face=verdana size=2><b>Vraag 2</b></td> <tr> <td><font face=verdana size=2>Gegeven zijn weer acht aanbieders van abonnementen voor mobiele telefonie, met ieder verschillende eigenschappen. Het abonnement heeft een aantal gratis belminuten en sms’jes per maand. Daarna zijn de kosten voor de sms’jes voor ieder abonnement gelijk. De kosten per minuut na de gratis belminuten zijn verschillend. Bij deze vraag heeft geen van de aanbieders een digitaal filter.<br><br> <b>De kosten zijn voor elk abonnement even hoog.</b><br><br> Hieronder staan de abonnementen:</td> </table> </center> <center> <table bgcolor=\"#FFFFFF\" border=1 cellpadding=0 width=850> <tr><td colspan=1 bgcolor=\"#FFFFFF\"><font face=verdana size=2 color=black> <td colspan=4> <div align=left> <tr> <td width=\"25%\" ><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk C:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk D:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td colspan=4> <div align=left> <tr> <td width=\"25%\" ><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk C:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> <td width=\"25%\" ><font face=verdana size=2><b>Merk D:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Nee<br><br></td> </table> </center> <center> <table bgcolor=\"#FFFFFF\" border=1 cellpadding=0 width=850> <tr><td colspan=1 bgcolor=\"#FFFFFF\"><font face=verdana size=2 color=black> <tr> <td><font face=verdana size=2>Wederom wordt gevraagd om de merken die hierboven staan een cijfer te geven tussen de 1 en de 10, waarbij het hoogste cijfer voor de aanbieding staat voor uw hoogste voorkeur.<br><br> Kunt u daarna een top-8 maken van de merken, waarbij het merk dat uw hoogste voorkeur heeft bovenaan komt en het merk met de minste voorkeur onderaan? </td> </table> </center> <center> <table bgcolor=\"#FFFFFF\" border=1 cellpadding=0 width=850> <tr><td colspan=1 bgcolor=\"#FFFFFF\"><font face=verdana size=2 color=black> <td colspan=4> <div align=left> <tr> <td width=\"25%\"><font face=verdana size=2><b>Merk: Cijfer:</b><br><br> A <input name=\"CijferMerkAvr2\" size=3><br> B <input name=\"CijferMerkBvr2\" size=3><br> C <input name=\"CijferMerkCvr2\" size=3><br> D <input name=\"CijferMerkDvr2\" size=3><br> E <input name=\"CijferMerkEvr2\" size=3><br> F <input name=\"CijferMerkFvr2\" size=3><br> G <input name=\"CijferMerkGvr2\" size=3><br> H <input name=\"CijferMerkHvr2\" size=3><br> </td> <td width=\"25%\" valign=\"top\"><font face=verdana size=2><b>De Top-8: </b></td> <td width=\"25%\"><font face=verdana size=2><b>Plaats: Merk:</b><br><br> 1 <input name=\"plaats1vr2\" size=1><br> 2 <input name=\"plaats2vr2\" size=1><br> 3 <input name=\"plaats3vr2\" size=1><br> 4 <input name=\"plaats4vr2\" size=1><br> 5 <input name=\"plaats5vr2\" size=1><br> 6 <input name=\"plaats6vr2\" size=1><br> 7 <input name=\"plaats7vr2\" size=1><br> 8 <input name=\"plaats8vr2\" size=1><br> </td>
";
$pagina4 = " <tr> <td><font face=verdana size=2><b>Vraag 3</b><br><br> Gegeven zijn verschillende abonnementen voor mobiele telefonie. In de eerste situatie kunt u kiezen uit twee alternatieven, in de tweede en derde situatie uit drie alternatieven.<br><br> Het abonnement heeft een aantal gratis belminuten en sms’jes per maand. Daarna zijn de kosten voor de sms’jes voor ieder abonnement gelijk. De kosten per minuut na de gratis belminuten zijn verschillend. Een digitaal filter is een filter dat sommige aanbieders op het netwerk plaatsen. Dit filter zorgt ervoor dat er zoveel mogelijk ruis uit de gesprekken gehaald wordt zodat de kwaliteit van de verbinding verbetert.<br><br>
<b>De kosten zijn voor elk abonnement even hoog.</b><br><br>
<u>Situatie 1:</u><br><br>
Kunt u aangeven welke van deze twee aanbiedingen uw voorkeur heeft? (klik op de stip naast de aanbieding) </td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie1\" value=\"vers1vr3ak1\"></td>
<td><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie1\" value=\"vers1vr3ak2\"></td>
<td><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td>
<tr> <td><font face=verdana size=2><u>Situatie 2:</u><br><br> Kunt u aangeven welke van deze drie aanbiedingen uw voorkeur heeft? (klik op de stip naast de aanbieding)</td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie2\" value=\"vers1vr3bk1\"></td>
<td><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Nee<br><br></td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie2\" value=\"vers1vr3bk2\"></td>
<td><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Ja<br><br></td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie2\" value=\"vers1vr3bk3\"></td>
<td><font face=verdana size=2><b>Merk C:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Ja<br><br></td>
<tr> <td><font face=verdana size=2><u>Situatie 3:</u><br><br> Kunt u aangeven welke van deze drie aanbiedingen uw voorkeur heeft? (klik op de stip naast de aanbieding)</td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie3\" value=\"vers1vr3ck1\"></td>
<td><font face=verdana size=2><b>Merk A:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 200<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Ja<br><br></td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie3\" value=\"vers1vr3ck2\"></td>
<td><font face=verdana size=2><b>Merk B:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 20<br>Prijs p.m. na bundel 0.10<br>Digitaal filter Ja<br><br></td>
<tr> <td colspan=1><div align=center> <input type=\"radio\" name=\"Keuzesituatie3\" value=\"vers1vr3ck3\"></td>
<td><font face=verdana size=2><b>Merk C:</b><br><br><u>Eigenschappen </u><br>Belminuten per maand 180<br>SMS bundel per maand 25<br>Prijs p.m. na bundel 0.12<br>Digitaal filter Ja<br><br></td> ";
switch($teller-1) { case 1: print $pagina1; case 2: print $pagina2; case 3: print $pagina3; case 4: print $pagina4; default: print "Let op: de teller variabele heeft de waarde $teller"; } ?>
<td width="25%"><font face=verdana size=2><b> </b></td>
</tr>
</table> </center>
<!-- <tr> <td colspan=2> <div align=center><input type=submit value=\"Submit\"> <input type=\"reset\" value=\"Reset\"></div></td> </tr>-->
<tr><td colspan=2>
<div align=center><input type="Submit" name="action" value="Volgende"> </div></td> </tr>
</form> </body> </html> |
Hierbij zou je in ieder geval een pagina moeten krijgen, of een melding dat de $teller variabele niet klopt. En die dubbele form is er ook uit. |
Ali Salami | woensdag 7 september 2005 @ 14:45 |
-edit- |
cyberstalker | woensdag 7 september 2005 @ 14:48 |
Die foreach staat buiten het ifje van de $teller, en wordt zo dus ook elke keer uitgevoerd.
Oh en van dit:
1 2 | // bepaal hier welke pagina hierna komt, of dat hij moet versturen: $teller += 1; // tel er eentje bij op |
Maak je natuurlijk:
1 2 | // bepaal hier welke pagina hierna komt, of dat hij moet versturen: $teller ++; // tel er eentje bij op |
Ik zie het, die foreach staat er nu dubbel in. Die mag dus sowieso uit het ifje. Maar ik kan de post niet meer editten . |
Ali Salami | woensdag 7 september 2005 @ 14:49 |
Je deed een edit, vandaar dat mijn post niet kmeer klopte. Wat nu niet klopt in je script is dat je twee foreachloops erin hebt, en dat is dus niet nodig., Die foreach(resultaten) kan er uit 
/edit:niet zo editten lul  |
sizzler | woensdag 7 september 2005 @ 15:17 |
quote: Okee. Daarmee doet hij het: http://www.slenderyouperfect.nl/vincent.php
Alleen krijg ik dan een foutmelding op pagina drie: Warning: Invalid argument supplied for foreach() in /home/k10436/public_html/vincent.php on line 23
en in mijn mailbox alleen quote:U heeft het volgende bericht ontvangen:
page: 4 action: Volgende |
sizzler | woensdag 7 september 2005 @ 15:18 |
edit: zie onderstaande post.  |
sizzler | woensdag 7 september 2005 @ 15:20 |
quote:Op woensdag 7 september 2005 14:48 schreef cyberstalker het volgende:Die foreach staat buiten het ifje van de $teller, en wordt zo dus ook elke keer uitgevoerd. Oh en van dit: [ code verwijderd ] Maak je natuurlijk: [ code verwijderd ] Ik zie het, die foreach staat er nu dubbel in. Die mag dus sowieso uit het ifje. Maar ik kan de post niet meer editten  . Je bedoelt dat
if(isset($_POST)) { foreach($_POST as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } }
weg moet? |
Ali Salami | woensdag 7 september 2005 @ 15:28 |
Nee, die moet niet weg, die moet er juist instaan.
In de code van Cyber staat dit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php if($teller==5) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; foreach($resultaten as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } else { print "<form method=post action=$PHP_SELF?enumteller=$teller?res=$resultaten>"; }
if(isset($_POST)) { foreach($_POST as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } ?> |
Er moet echter staan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php if($teller==5) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>"; } else { print "<form method=post action=$PHP_SELF?enumteller=$teller>"; }
if(isset($_POST)) { foreach($_POST as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } ?> |
Even een uitleg: wat ik weg heb gelaten is die foreach-loop van $resultaten. Daar kreeg je die foutmelding ook van, want de waarde $resultaten bestaat immers niet meer, die heb je vanochtend weggehaald uit je script. Overigens heb ik de waarde $res ook uit de url weggelaten, let daar even goed op!
Vervolgens zie je dus de $_POST-foreach-loop. Als ik die er gewoon had neergezet had je in het eerste formulier dzelfde foutmelding gekregen als hierboven (Invalid argument supplied for foreach()) omdat er nog niets is gepost. Vandaar dat ik eerst check of er iets gepost is. (if(isset($_POST))) Is dat het geval, dan volgt de loop die alle waarden in het formulier zet  |
cyberstalker | woensdag 7 september 2005 @ 15:29 |
Pagina twee klopt ook niet. Je hebt twee regels met aanbieders a t/m d. De tweede keer zou natuurlijk e t/m h moeten zijn. |
cyberstalker | woensdag 7 september 2005 @ 15:31 |
En bij Ali zijn alle > tekens nu vervangen door >
Replique . |
Ali Salami | woensdag 7 september 2005 @ 15:33 |
Ja, let daar inderdaad goed op Sizzler: -> moet je weer even terug zetten, er staat nu . Niet klakkeloos overnemen dus  |
sizzler | woensdag 7 september 2005 @ 15:37 |
edit. even puzzelen.  |
sizzler | woensdag 7 september 2005 @ 15:41 |
Let op: de teller variabele heeft de waarde 
De code die online staat: http://www.slenderyouperfect.nl/vincent2.php.txt
En het formulier: http://www.slenderyouperfect.nl/vincent2.php
*wanhoop nabij is |
sizzler | woensdag 7 september 2005 @ 15:42 |
quote:Op woensdag 7 september 2005 15:29 schreef cyberstalker het volgende:Pagina twee klopt ook niet. Je hebt twee regels met aanbieders a t/m d. De tweede keer zou natuurlijk e t/m h moeten zijn. Die kon ik gelukkig WEL zonder problemen aanpassen. |
cyberstalker | woensdag 7 september 2005 @ 15:45 |
quote: Klopt. Dat is de switch op de $teller. Die geeft je een waarschuwing als de $teller niet in de lijst met verwachte waardes valt. In dit geval is $teller dus leeg. Dat is ook de reden dat je eerst steeds een lege pagina krijg, de if werkte niet, omdat $teller geen goede waarde had.
Op deze manier zie je dat, en kun je dus iets veranderen waardoor $teller werkt.
En je hebt nu je hele html opening verwijderd, dat mag niet . |
cyberstalker | woensdag 7 september 2005 @ 15:56 |
Als ik me niet vergis (het is nogal een chaotisch script), wordt de waarde die jij in $teller wilt hebben vanuit het formulier met de naam enumteller verstuurd.
Als je dat uitleest en in de $teller stopt, en je <html> tags weer toevoegd, zou het moeten werken.
1 2 3 | <html><head><title>Enquete afstudeerscriptie</title><head>
<body bgcolor="#EDEBC8"" link="#ffffff" text="#003333" vlink="#ffffff"> |
Dit bovenaan erbij.
En dan net na de <?php tag, boven de if($teller==5) regel:
1 | $teller=isset($_POST['enumteller'])?$_POST['enumteller']+1:1; |
|
Ali Salami | woensdag 7 september 2005 @ 16:00 |
Wel goed kijken wat er wordt gemeld.
Ten eerste heb je <html> weggelaten ->
1 2 3 4 5 | <?php <html><head><title>Enquete afstudeerscriptie</title><head>
<body bgcolor="#EDEBC8"" link="#ffffff" text="#003333" vlink="#ffffff"> ?> |
Vervolgens krijg je die melding, dan ga je eerst kijken waar die door wordt veroorzaakt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php switch($teller-1) { case 1: print $pagina1; case 2: print $pagina2; case 3: print $pagina3; case 4: print $pagina4; default: print "Let op: de teller variabele heeft de waarde $teller"; } ?> |
Wat blijkt hier uit? Het kan om twee dingen gaan. Of de waarde $teller is leeg, bestaat niet, of de waarde is kleiner dan 2, of groter dan 5.
Nu heb ik eerder al gezegd dat je dit:
1 2 3 4 5 6 7 8 9 10 11 | <?php $teller=1;
if($_GET['enumteller']) { $teller = $_GET['enumteller']; }
// bepaal hier welke pagina hierna komt, of dat hij moet versturen: $teller ++; // tel er eentje bij op ?> |
terug moest zetten. Dat doe je ook, maar vervolgens neem je klakkeloos de code van Cyber waarin het niet, dus fout, staat. Dat moet dus eerst weer terug, dan is de waarde $teller ook weer terug, want die bestaat nu niet  |
Ali Salami | woensdag 7 september 2005 @ 16:02 |
quote: Wordt als $_GET variabele meegestuurd, niet als $_POST dus  |
cyberstalker | woensdag 7 september 2005 @ 16:10 |
quote: Je hebt gelijk. Wat bij mij meteen een alarmbel doet rinkelen.
Als ik me niet vergis had Interweb Exploder ( ) een probleem bij het versturen van formulieren met zowel GET als POST data. Volgens mij wordt dan één van de twee weggelaten (en volgens mij was dat dan de GET data, maar dat weet ik niet zeker).
Dus is het sowieso verstandiger om alleen POST te gebruiken.
In échte browsers gaat dat overigens wel goed. |
Ali Salami | woensdag 7 september 2005 @ 16:12 |
In IE heb ik hier geen problemen ermee  |
sizzler | woensdag 7 september 2005 @ 16:17 |
quote:Op woensdag 7 september 2005 16:00 schreef Ali Salami het volgende:[...] terug moest zetten. Dat doe je ook, maar vervolgens neem je klakkeloos de code van Cyber waarin het niet, dus fout, staat. Dat moet dus eerst weer terug, dan is de waarde $teller ook weer terug, want die bestaat nu niet  Oh, ik dacht dat ze aanvullend waren.
Ik heb het nu weer teruggezet.
Formulier: http://www.slenderyouperfect.nl/vincent2.php
Code: http://www.slenderyouperfect.nl/vincent2.php.txt
Maar nu is hij weer anders. Alles staat nu onder elkaar en hij stuurt hem niet.
Excuses trouwens dat het zo'n rommelig script is. Ik heb hem vanuit kladblok geschreven. Nu heb ik UltraEdit-32 |
Ali Salami | woensdag 7 september 2005 @ 16:19 |
Das al erg slecht, gebruik ultraedit (highlighting, erg handig)  Maar ik ga je code even aanpassen op mijn eigen domein, dan ben je klaar ipv dat je telkens dingen weghaalt en erbij zet 
/edit: als je de juiste txt hebt, dit klopt niet  |
sizzler | woensdag 7 september 2005 @ 16:19 |
quote: Alle $_GET moeten dus door $_POST worden vervangen? |
Ali Salami | woensdag 7 september 2005 @ 16:20 |
quote: Dat kan, maar dan moet je het dus als een hidden field meesturen. Maar wacht maar even  |
cyberstalker | woensdag 7 september 2005 @ 16:23 |
Dat onder elkaar is mijn schuld. Ik ben vergeten breakjes bij de switch toe te voegen (zoals ik dat altijd vergeet ).
Zoek even dit stukje code op:
1 2 3 4 5 6 7 8 9 10 11 12 13 | switch($teller-1) { case 1: print $pagina1; case 2: print $pagina2; case 3: print $pagina3; case 4: print $pagina4; default: print "Let op: de teller variabele heeft de waarde $teller"; } |
En vervang (ja nu dus wel) dat met het volgende:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | switch($teller-1) { case 1: print $pagina1; break; case 2: print $pagina2; break; case 3: print $pagina3; break; case 4: print $pagina4; break; default: print "Let op: de teller variabele heeft de waarde $teller"; break; } |
En hij verstuurd niet, omdat je nu je hele foreach hebt weggehaald (en hoe je daar op komt weet ik niet). Dus even dit weer terugzetten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php if($teller==5) { print "<form method=post action=http://www.slenderyouperfect.nl/cgi-bin/mail.cgi>";
} else { print "<form method=post action=$PHP_SELF?enumteller=$teller>"; }
if(isset($_POST)) { foreach($_POST as $key->$value) { print "<input type=\"Hidden\" name=\"$key\" value=\"$value\">"; } } ?> |
Dat mag na de regel $teller++;
Die php tags hoef je dus NIET te kopiëren (die zet FOK er namelijk bij). |
sizzler | woensdag 7 september 2005 @ 16:24 |
quote:  |
Ali Salami | woensdag 7 september 2005 @ 16:45 |
Ok. Klaar. Ik verstuur hem nu naar je email  |
sizzler | woensdag 7 september 2005 @ 16:57 |
quote: Hij !! doet !! het !!
!!!!! |
sizzler | woensdag 7 september 2005 @ 16:59 |
CasB, Cyper, Drugshond en vooral Ali:
Bedankt ! |
Ali Salami | woensdag 7 september 2005 @ 17:00 |
Mooi  Enige wat nog moet is in het één na laatste formulier er weer 8 merken van te maken, ipv de huidige vie (A B C D)  |
sizzler | woensdag 7 september 2005 @ 17:02 |
en de lay-out van vraag 1 moet hetzelfde worden als vraag 2. En de lay-out van vraag 3 aanpassen.
Maar ik denk dat ik dat wel kan. |
Ali Salami | woensdag 7 september 2005 @ 17:05 |
Moet wel lukken  Wat overigens wel handig is om eens te kijken naar de verschillen en uit te zoeken waarom het nu wél werkt, mits je php wilt leren natuurlijk.
Succes  |
sizzler | woensdag 7 september 2005 @ 17:26 |
quote:Op woensdag 7 september 2005 17:05 schreef Ali Salami het volgende:Moet wel lukken  Wat overigens wel handig is om eens te kijken naar de verschillen en uit te zoeken waarom het nu wél werkt, mits je php wilt leren natuurlijk. Dit formulier is versie 1. Als deze helemaal naar wens is maak ik nog vijf versies (in dezelfde stijl dus dat wordt gewoon copy/pasten) die ik ga mailen naar zoveel mogelijk studenten. Ik moet in totaal minimaal 90 reacties terug hebben om er een goede analyse op te kunnen maken. Vandaar dat ik hem digitaal wilde hebben, dan kan ik er zoveel mogelijk rondmailen. En dan afstuderen. (eindelijk). Als ik tussendoor tijd heb zal ik me er wat meer in php verdiepen want het is altijd handig om er meer over te weten. quote:Succes  Thanx. En nogmaals bedankt voor de hulp.  |