Versio

Stukje code niet uitgevoerd

Overzicht Reageren

- Raoul -
Redacteur

- Raoul -

19/06/2010 16:03:38
Quote Anchor link
Dit stukje code word niet uitgevoerd:

while (isset($_POST['outputtop'.$i]) && isset($_POST['outputleft'.$i]) && isset($_POST['id'.$i])) {

echo "PHP";

}

Ik ben erachter gekomen door omdat hij geen "PHP" zei.

Vreemd :S

Weet iemand hoe ik dit kan oplossen ?
Gewijzigd op 19/06/2010 16:04:10 door - Raoul -
 
PHP hulp

PHP hulp

25/05/2012 18:45:14
Gesponsorde koppelingen:
 
Joren de Wit
Beheerder

Joren de Wit

19/06/2010 16:10:59
Quote Anchor link
Dump de betreffende variabelen eens, dan zie je direct of ze wel bestaan/gevuld zijn...

Edit:
Met var_dump dus...
Gewijzigd op 19/06/2010 16:15:27 door Joren de Wit
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 16:16:15
Quote Anchor link
Blanche, ik deed de var_dum() zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var_dump($_POST['outputtop'.$i] && $_POST['outputleft'.$i] && $_POST['id'.$i]);


en ik kom daarna uit:

bool(false)

:S
 
- SanThe -

- SanThe -

19/06/2010 16:32:00
Quote Anchor link
Raoul Van den Berge op 19/06/2010 16:16:15:

en ik kom daarna uit:

bool(false)

:S


En een while(false) zal nooit de loop in gaan en dus ook de echo niet doen. Verder is het een beetje onzinnig om een isset() in een while() te zetten. Als de isset() een true terug geeft krijg je while(true) en dat is een eindeloze loop, oftewel daar komt ie nooit meer uit.
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 17:10:28
Quote Anchor link
Wat moet ik dan wel gebruiken?
 
Joren de Wit
Beheerder

Joren de Wit

19/06/2010 17:12:57
Quote Anchor link
Ik weet niet wat je wilt bereiken, maar het lijkt erop dat je door een reeks genummerde variabelen wilt loopen? Waar komt die $i vandaan, die maak je nog nergens aan? Ook zou ik dan verwachten dat je hem ophoogt binnen je while loop, dat zie ik ook niet?

Doe eens een var_dump van de $_POST variabele om te zien wat erin zit en of dat overeenkomt met jouw verwachting:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump($_POST);
?>
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 17:18:26
Quote Anchor link
Idd Blanche ik wil een reeks genummerde variabelen loopen.

In het begin van mijn php bestandje staat $i = 1;

Ik zal het eens proberen die

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump($_POST);
?>


EDIT: Ik kreeg dit:

array(10) { ["pageid"]=> string(1) "1" ["outputleft1"]=> string(0) "" ["outputtop1"]=> string(0) "" ["id1"]=> string(1) "1" ["outputleft2"]=> string(0) "" ["outputtop2"]=> string(0) "" ["id2"]=> string(1) "2" ["outputleft3"]=> string(0) "" ["outputtop3"]=> string(0) "" ["id3"]=> string(1) "3" }

Alles is dus goed gepost, maar hoe kan ik nu die while vervangen..
Gewijzigd op 19/06/2010 17:21:26 door - Raoul -
 
Joren de Wit
Beheerder

Joren de Wit

19/06/2010 17:34:13
Quote Anchor link
Je hoeft die while() niet te vervangen, je moet alleen zorgen dat $i wel verhoogd wordt binnen je while loop:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
while(...) {
  echo '...';

  $i++;
}

?>
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 17:42:55
Quote Anchor link
Blanche PHP op 19/06/2010 17:34:13:
Je hoeft die while() niet te vervangen, je moet alleen zorgen dat $i wel verhoogd wordt binnen je while loop:
...


Euhm dat heb ik ook

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
<?php


$i
= 1;

while ($_POST['outputtop'.$i] && $_POST['outputleft'.$i] && $_POST['id'.$i]) {

echo "PHP";


mysql_query("UPDATE beta_editor SET top = '".$_POST['outputtop'.$i]."' WHERE elid = '".$_POST['id'.$i]."'") or die(mysql_error());

mysql_query("UPDATE beta_editor SET position_left = '".$_POST['outputleft'.$i]."' WHERE elid = '".$_POST['id'.$i]."'") or die(mysql_error());

$i++;

echo "Nu: ".$i."<br>";

}



?>
Gewijzigd op 19/06/2010 17:45:02 door - Raoul -
 
Joren de Wit
Beheerder

Joren de Wit

19/06/2010 17:48:54
Quote Anchor link
Oke, dat zit dan in ieder geval goed. Maar kijk nu nog eens naar het resultaat van die var_dump...

In je while controleer je of $_POST['id'.$i] bestaat, maar zoals je in de var_dump kunt zien, is dat niet het geval. Kortom, de while zal dus nooit uitgevoerd worden.
 
- SanThe -

- SanThe -

19/06/2010 17:50:49
Quote Anchor link
Die 2 query's kunnen in 1 keer in een query.
Verder is het wel lek => SQL-Injection.
Gebruik mysql_real_escape_string().
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 18:00:22
Quote Anchor link
SanThe Nvt op 19/06/2010 17:50:49:
Die 2 query's kunnen in 1 keer in een query.
Verder is het wel lek => SQL-Injection.
Gebruik mysql_real_escape_string().


Dit doe ik later als het script echt goed werkt.
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 18:01:18
Quote Anchor link
Blanche PHP op 19/06/2010 17:48:54:
Oke, dat zit dan in ieder geval goed. Maar kijk nu nog eens naar het resultaat van die var_dump...

In je while controleer je of $_POST['id'.$i] bestaat, maar zoals je in de var_dump kunt zien, is dat niet het geval. Kortom, de while zal dus nooit uitgevoerd worden.


Maar.. mijn HTML staat vol met dit:

<input type="hidden" name="id1" value="1">
<input type="hidden" name="id3" value="3">
<input type="hidden" name="id2" value="2">
Gewijzigd op 19/06/2010 18:05:06 door - Raoul -
 
- SanThe -

- SanThe -

19/06/2010 18:06:31
Quote Anchor link
Hij staat wel in de vardump: ["id3"]=> string(1) "3"
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 18:09:35
Quote Anchor link
.. dus ik weet niet wat ik nu moet doen XD

Iemand?
 
Joren de Wit
Beheerder

Joren de Wit

19/06/2010 18:16:51
Quote Anchor link
Oh, mijn fout. Keek er overheen...

De code uit je post van 17.42 uur is de code die je gebruikt? Waar is dan de isset() gebleven?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$i
= 1;

while(isset($_POST['outputleft'.$i], $_POST['outputtop'.$i], $_POST['id'.$i])) {
  // Doe je ding

  $i++;
}

?>
 
Richard van Velzen

Richard van Velzen

19/06/2010 18:25:25
Quote Anchor link
Raoul Van den Berge op 19/06/2010 18:00:22:
SanThe Nvt op 19/06/2010 17:50:49:
Die 2 query's kunnen in 1 keer in een query.
Verder is het wel lek => SQL-Injection.
Gebruik mysql_real_escape_string().


Dit doe ik later als het script echt goed werkt.

Wat is dat voor onzinnige opmerking? Wat is er op tegen om het nu te doen? Sowieso zal je script nooit "echt goed" werken zonder beveiliging tegen injectie, dus wanneer doe je het dan? :-)
 
- Raoul -
Redacteur

- Raoul -

19/06/2010 21:21:26
Quote Anchor link
Blanche PHP op 19/06/2010 18:16:51:
Oh, mijn fout. Keek er overheen...

De code uit je post van 17.42 uur is de code die je gebruikt? Waar is dan de isset() gebleven?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$i
= 1;

while(isset($_POST['outputleft'.$i], $_POST['outputtop'.$i], $_POST['id'.$i])) {
  // Doe je ding

  $i++;
}

?>


En weer heb je me geholpen ;D
Thanks!

En ik zal mysql_escape_dinges () ; doen XD
 



Overzicht Reageren

Get Adobe Flash player