Ik wil het echt leren

Status
Niet open voor verdere reacties.

lainke

Gebruiker
Lid geworden
2 mrt 2002
Berichten
180
Hallo,

Ik ben een beginner in PHP en wil echt beginnen met dit serieus te leren.
Een eerste scriptje die ik aan het oefenen ben is een klein simpel gastenboekje.

Ik heb het volgende probleempje;

Ik heb een pagina gastenboek.php en een gastenboek.txt die ik heb chmod 777, hij include mooi mijn gastenboek in index.php, maar het probleem is dat ne het schrijven van het berichtje het gastenboek heropent in een nieuwe pagina buiten de website en dit zou niet mogen, hij zou zich terug moeten includen indezelfde pagina gastenboek.php.

kan iemand me verder helpen en zeggen waar ik de aanpassing moet doen?

bedankt alvast.

Hier het script:[/B][/B]

Code:
<?
  $amount=15;

  if ($_GET['action']=='write') {
  	header('location: gb.php?action=read&start=0');
    $file=fopen('gastenboek.txt','a');

    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_GET['message']);
    fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y').'|||'.$_GET['url'].'|||'.$message."\n");
    fclose($file);
    
  }

  $start=(isset($_GET['start'])?$_GET['start']:0);
  $gastenboek=Array();
  $gastenboek=file('gastenboek.txt');

?>

 <SCRIPT language="JavaScript">
    function validate(form) {
      if (form.name.value=="") {
        alert("Vul je naam in");
        return false;
      } else if (form.message.value=="") {
        alert("Vul je bericht in");
        return false;
      }
    }
    </SCRIPT>
    
 
  <P>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD><b>Gastenboek</b><br></TD>
    </TR>
  </TABLE>
  <TABLE width="100%" cellspacing="0" cellpadding="0">
    <TR>
      <TD class="side"> Berichten <? echo $start+1; ?> tot en met <? echo min($start+$amount,sizeof($gastenboek)); ?>.
        <HR> <TABLE width="100%" >
          <?
          $gastenboek=array_reverse($gastenboek);
          for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++) {
            list($name,$email,$date,$url,$message)=explode('|||',$gastenboek[$i]);
            $message=str_replace('{{',"\n",$message);
            echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD align="right"><B>'.$date.'</B></TD></TR>'."\n";
            echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n";
            echo '<TR><TD colspan="2"><SPAN>'.str_replace("\n",'<BR>',htmlspecialchars($message)).'</SPAN></TD></TR>'."\n";
            echo '<TR><TD colspan="2"><HR></TD></TR>'."\n";
          }
        ?>
        </TABLE>
        <CENTER>
          <?
          if ($start>0) echo '<A href="gb.php?start='.max(0,$start-$amount).'"><<<</A> ';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="gb.php?start='.($start+$amount).'">>>></A>';
        ?>   </CENTER></TD>
    </TR>
  </TABLE>
  <P>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD class="side">Nieuw bericht</TD>
    </TR>
  </TABLE>
  <TABLE width="100%" cellspacing="0" cellpadding="0" >
    <TR>
      <TD class="side"> <FORM action="gb.php" method="GET" onSubmit="return validate(this);">
          <INPUT type="hidden" name="action" value="write">
          <TABLE class="side">
            <TR>
              <TD>Naam:</TD>
              <TD><INPUT type="text" name="name" size="30"></TD>
            </TR>
            <TR>
              <TD>E-Mail:</TD>
              <TD><INPUT type="text" name="email" size="30">
                (optioneel)</TD>
            </TR>
            <TR>
              <TD>Homepage:</TD>
              <TD><INPUT name="url" type="text" value="http://" size="30">
                (optioneel)</TD>
            </TR>
            <TR>
              <TD>Bericht:</TD>
              <TD><TEXTAREA name="message" cols="50" rows="5"></TEXTAREA></TD>
            </TR>
          </TABLE>
          <INPUT type="submit" value="Verstuur">
        </FORM></TD>
    </TR>
  </TABLE>
 
hoihoi,
van php snap ik niets,
maar ik denk dat het ligt aan je code:

- target="_blank" -

met blank opent ie [in html pag. altijd een nieuw venster...

hier; [ echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n"; ]

target moet dan _self zijn...

probeer het maar even....hoop dat dat werkt...
en sorry als het niet klopt :-)
grtjs ingeb
 
Misschien ligt het hieraan:
PHP:
header('location: gb.php?action=read&start=0');

Ik zie namelijk nergens een action=read... Maak er eens
PHP:
header('location: gb.php?start=0');
van en probeer het dan eens.

@ingeb: de target="_blank" wijst inderdaad naar een nieuwe pagina, maar deze code staat in het gedeelte van de opgegeven website van degene die het bericht schrijft. Dus als jij een website intypt wanneer jij een nieuw bericht wilt toevoegen komt dit bij het bericht te staan en wanneer je dan op die site klikt opent deze in een nieuw venster.

edit: Heet het script trouwens gb.php of gastenboek.php? In het script zelf wijs je namelijk overal naar gb.php
 
Laatst bewerkt:
sorry!
zoasl ik al zei; weet niets van php, en zag wel target = blank staan ...:o

was op zoek naar een mailform wat ik nu in php moet maken omdat er geen cgibin beschikbaar is :-) helaas nog steeds zoekende :D
groetjes ingeb
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan