Toon posts:

[PHP] script werkt niet goed.

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb dit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EOT;
$request = mysql_query("SELECT membergroup FROM {$db_prefix}membergroups ORDER BY ID_GROUP");
$lines = array();
while ($row = mysql_fetch_row($request))
    $lines[] = $row[0];
if($settings[7] == 'Administrator') {
?>
<tr>
<td width="45%"><font size=2><b>$txt[68]: </b></font><BR>
<font size=1>$txt[518]</font></td>
<td><input type="text" name="name" size="30" value="$memsettings[realName]"></td>
</tr>
<?PHP
}
print <<<EOT
?>

het werkt wel... maar hij geeft niet de text die in $txt[68], $txt[518] en $memsettings[realName] staan.(als ik dit buiten de EOT doe dan werkt het weer wel, maar dan kan iedere user er bij, nu alleen admin's)

en
<input type="text" name="email" size="30" value="$memsettings[emailAddress]">
laat hij wel zien...(het is dan wel buiten de EOT)

hij laat gewoon dit zien:
Afbeeldingslocatie: http://www.powergamez.com/cowebmaster/eot.jpg

wat doe ik fout?

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op zondag 20 januari 2002 15:14 schreef KingOfDos het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
EOT;
?>
<tr>
<td width="45%"><font size=2><b>$txt[68]: </b></font><BR>
<font size=1>$txt[518]</font></td>
<td><input type="text" name="name" size="30" value="$memsettings[realName]"></td>
</tr>
<?PHP
print <<<EOT
?>
Dingen buiten de <?php en ?> worden niet geparset, dacht ik.

edit: En volgens mij is die EOT; geen goede manier om dit aan te geven... Gebruik gewoon print met "" of ''.

  • dreeke
  • Registratie: December 2000
  • Laatst online: 31-10-2025

dreeke

outdated icon

Klopt, dan moet je het via

echo"
<tr><td width="45%"><font size=2><b>$txt[68]: </b></font><BR><font size=1>$txt[518]</font></td><td><input type="text" name="name" size="30" value="$memsettings[realName]"></td></tr>
";

doen, en dan tussen de PHP code in

Bij gebrek aan uw reclame staat hier mijn handtekening.


Verwijderd

Topicstarter
ik doe het zo omdat het op mijn hele forum wordt gebruikt.
ff n stukje laten zien:
code:
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
    }

    tick();
    //-->
    </script>    

    </td></tr>

EOT;
    $request = mysql_query("SELECT membergroup FROM {$db_prefix}membergroups ORDER BY ID_GROUP");
    $lines = array();
    while ($row = mysql_fetch_row($request))
      $lines[] = $row[0];
    if($settings[7] == 'Administrator') {
      $position='';
      foreach ($lines as $curl) {
        if($curl != $lines[1] &amp;amp;&amp;amp; $curl != $lines[2] &amp;amp;&amp;amp; $curl != $lines[3] &amp;amp;&amp;amp; $curl != $lines[4] &amp;amp;&amp;amp; $curl != $lines[5] &amp;amp;&amp;amp; $curl != $lines[6]) {
            if($curl != $lines[0] &amp;amp;&amp;amp; $curl != $lines[7]) { $position= "$position<option>$curl</option>"; }
            elseif($curl == $lines[0]) { $position= "$position<option value=\"Administrator\">$curl</option>"; }
            elseif($curl == $lines[7]) { $position= "$position<option value=\"Global Moderator\">$curl</option>"; }
        }
      }
      if($memsettings[7] == 'Administrator') { $tt = $lines[0]; }
      elseif($memsettings[7] == 'Global Moderator') { $tt = $lines[7]; }
      else { $tt = $memsettings[7]; }
      print <<<EOT
    <tr>
    <td colspan=2><hr width="100%" size="1" class="windowbg3"></td>
    </tr><tr>
    <td width="45%"><font size=2><b>$txt[86]: </b></font></td>
    <td><font size=2><input type=text name=settings6 size=4 value="$memsettings[6]"></font></td>
    </tr><tr>
    <td width="45%"><font size=2><b>$txt[87]: </b></font></td>
    <td><font size=2><select name="settings7">
     <option value="$memsettings[7]">$tt
     <option value="$memsettings[7]">---------------
     <option value="">
     $position
    </select></font></td>
    </tr><tr>
      <td width="45%"><font size=2><b>$txt[233]:</b></font></td>
      <td><input type="text" name="dr" size="30" value="$dr"></td></tr>
EOT;
    }
    print <<<EOT
    <tr><td align="center" colspan="2"><BR><input type=submit name=moda value="$txt[88]">
    <input type=submit name=moda value="$txt[89]"><BR><BR>
?>

zie je, daar doen ze het ook zo.
ik wil een functie maken om te zorgen dat gebruikers NIET hun gebruikersnaam kunnen veranderen. en IK(admin) wel.
dus waarom zou het niet werken?
het is dus de bedoeling om
code:
1
2
3
4
5
<tr>
<td width="45%"><font size=2><b>$txt[68]: </b></font><BR>
<font size=1>$txt[518]</font></td>
<td><input type="text" name="name" size="30" value="$memsettings[realName]"></td>
</tr>

zo te maken dat alleen een admin er bij kan.



***edit***
Parse error: parse error in /home/powergam/public_html/forum/Sources/Profile.php on line 106
als ik het zo doe
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
EOT;
$request = mysql_query("SELECT membergroup FROM {$db_prefix}membergroups ORDER BY ID_GROUP");
$lines = array();
while ($row = mysql_fetch_row($request))
    $lines[] = $row[0];
if($settings[7] == 'Administrator') {

<tr>
<td width="45%"><font size=2><b>$txt[68]: </b></font><BR>
<font size=1>$txt[518]</font></td>
<td><input type="text" name="name" size="30" value="$memsettings[realName]"></td>
</tr>

}
print <<<EOT
?>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Vind je het gek... php!=html Je moet of php gebruiken of html...

probeer gewoon je eerste oplossing, maar dan <?=$var?> ipv $var.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Op zondag 20 januari 2002 15:30 schreef Janoz het volgende:
Vind je het gek... php!=html Je moet of php gebruiken of html...

probeer gewoon je eerste oplossing, maar dan <?=$var?> ipv $var.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
EOT;
$request = mysql_query("SELECT membergroup FROM {$db_prefix}membergroups ORDER BY ID_GROUP");
$lines = array();
while ($row = mysql_fetch_row($request))
    $lines[] = $row[0];
if($settings[7] == 'Administrator') {
<tr>
<td width="45%"><font size=2><b><?=$txt[68]?>: </b></font><BR>
<font size=1><?=$txt[518]?></font></td>
<td><input type="text" name="name" size="30" value="<?=$memsettings[realName]?>"></td>
</tr>
}
print <<<EOT

dit werkt ook nie

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Ik zei net zoals je het bovenaan in je topic had.. Dus als je met je tablerows begint, moet je ff de php afsluiten met ?>..

Alles wat binnen de php tags (<? en ?>) valt word als php behandeld. Alles wat daarbuiten valt word als html behandeld. als je dus binnen de php html wilt gebruiken moet je dat op een php manier doen (dus met echo of print) wil je in het html gedeelte weer php gebruiken, dan zul je weer php tags moeten gebruiken.. (<?=$var?> is een afkorting voor <? echo $var; ?>, zoals je ziet wordt er dan tussen je html ff snel overgestapt naar php, var afgedrukt, en weer teruggesprongen naar html)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 20 januari 2002 15:48 schreef KingOfDos het volgende:
dit werkt ook nie
Bekijk de syntax van het desbetreffende print statemen hes VEEEEEL beter...

Je hebt hem ondersteboven staan namelijk...

[edit]
Of je post verwarrende stukken code ;)

Verwijderd

idd ondersteboven.
Die EOT die ze gebruiken kun je namelijk gebruiken om grote stukken html text in een variabele op te slaan.

vb
$text = <<<EOT
mijn html text waar ik gewoon quotes kan gebruiken
EOT;

maar wat zij doen is het niet eerst in een variabele opslaan maar meteen printen
print <<<EOT
.....
EOT;

jij draait de print <<<EOT en EOT; om :)

Verwijderd

voor EOT kun je trouwens ook ander dingen gebruiken, zie:
http://www.zend.com/zend/tut/using-strings.php

die pagina bevat de string basics, wel handig voor newbies

Verwijderd

Topicstarter
dus wat hier onder staat zou beter zijn?
staat niet in een CODE of PHP omdat ik dan niet BOLD kan gebruiken.



***KNIP***
<td><input type="password" name="passwrd1" size="20"></td>
</tr><tr>
<td width="45%"><font size=2><b>$txt[82]: </b></font></td>
<td><input type="password" name="passwrd2" size="20"></td>
</tr>
EOT;
$request = mysql_query("SELECT membergroup FROM {$db_prefix}membergroups ORDER BY ID_GROUP");
$lines = array();
while ($row = mysql_fetch_row($request))
$lines[] = $row[0];
if($settings[7] == 'Administrator') {
print <<<EOT

<tr><td width="45%"><font size=2><b>$txt[68]: </b></font><BR><font size=1>$txt[518]</font></td>
<td><input type="text" name="name" size="30" value="$memsettings[realName]"></td></tr>

EOT;
}
print <<<EOT

<tr>
<td width="45%"><font size=2><b>$txt[69]: </b></font><BR>
<font size="1">$txt[679]</font></td>
<td><input type="text" name="email" size="30" value="$memsettings[emailAddress]"></td>
</tr>
***KNIP***

Verwijderd

Het makkelijkste is om je design en je code te scheiden.. maak te files, 1 bijvoorbeeld design.php waar op de "invul plekken" dingen staan als <? echo $var; ?>

In je hoofd bestand vul je deze variabelen, dmv bijvoorbeeld een query.. aan het einde zet je require("design.php"); op deze manier scheidt je code van veel html data

Verwijderd

Topicstarter
mensen VEEL dank. het werkt ;) *D

Verwijderd

Topicstarter
Op zondag 20 januari 2002 18:09 schreef GDOG het volgende:
Het makkelijkste is om je design en je code te scheiden.. maak te files, 1 bijvoorbeeld design.php waar op de "invul plekken" dingen staan als <? echo $var; ?>

In je hoofd bestand vul je deze variabelen, dmv bijvoorbeeld een query.. aan het einde zet je require("design.php"); op deze manier scheidt je code van veel html data
desing en code zijn al geschijde.
templa.html include ik gewoon en dan zet ik er handmatig een </body></html> 8er..

Verwijderd

Als je html binnen PHP wilt gebruiken moet je dit als volgt generen.

<?php
blablabla

print("<nu de html code>");

blablabla
?>

:)
Pagina: 1