Scoutnet vzw

We connect scouts!
Het is momenteel 27 Apr 2024 15:18

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 16 berichten ]  Ga naar pagina 1, 2  Volgende
Auteur Bericht
BerichtGeplaatst: 17 Mrt 2007 10:33 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
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:

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>


Omhoog
 Profiel  
 
BerichtGeplaatst: 18 Mrt 2007 21:43 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 28 Nov 2003 0:00
Berichten: 30
Het volgende stukje code zorgt ervoor dat je site bij het schrijven een nieuwe pagina opent: target="_blank".
Verwijder dit uit je code of verander de _blank in _self


lainke schreef:
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:

Code:
<amount>

 <SCRIPT>
    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>
    <TR>
      <TD><b>Gastenboek</b><br></TD>
    </TR>
  </TABLE>
  <TABLE>
    <TR>
      <TD> Berichten <echo> tot en met <echo>.
        <HR> <TABLE>
          <?
          $gastenboek=array_reverse($gastenboek);
          for ($i=$start;$i<$start+$amount && $i</A>
        </TABLE>
        <CENTER>
          <if>0) echo '<A><<<</A> ';
          if ($start+$amount</A>   </CENTER></TD>
    </TR>
  </TABLE>
  <P>
  <TABLE>
    <TR>
      <TD>Nieuw bericht</TD>
    </TR>
  </TABLE>
  <TABLE>
    <TR>
      <TD> <FORM>
          <INPUT>
          <TABLE>
            <TR>
              <TD>Naam:</TD>
              <TD><INPUT></TD>
            </TR>
            <TR>
              <TD>E-Mail:</TD>
              <TD><INPUT>
                (optioneel)</TD>
            </TR>
            <TR>
              <TD>Homepage:</TD>
              <TD><INPUT>
                (optioneel)</TD>
            </TR>
            <TR>
              <TD>Bericht:</TD>
              <TD><TEXTAREA></TEXTAREA></TD>
            </TR>
          </TABLE>
          <INPUT>
        </FORM></TD>
    </TR>
  </TABLE>


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 18 Mrt 2007 22:34 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Hoi ik heb die code aangepast wat je zei, maar hij opent nog een een nieuw venster ?

Code:
" target="_self">'


Ik werk wel met de volgende index:
Code:
case "gb": $page="gb.php";break;


Heeft dit er iets mee te maken ?

Bedankt


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Mrt 2007 10:29 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
ik denk dat het hier aan ligt:

Code:
<FORM action="gb.php" method="GET" onSubmit="return validate(this);">
. De submit-knop leidt naar de pagina gb.php, en niet naar index.php.

Ge zoudt die regel dus moeten vervangen door iets van deze aard denk ik:

Code:
<FORM action="index.php?action=write" method="GET" onSubmit="return validate(this);">


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Mrt 2007 18:11 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Hoi,
Het lukt niet,
Ik heb het nu zo geprobeerd:

Code:
<FORM action="index.php?action=write" method="GET" onSubmit="return validate(this);">


maar na het intikken van een bericht kom ik onmiddellijk terug op de hoofdpagina "index"zonder dat ik het geschreven bericht zie, en het bericht is ook niet geplaats, het bestand, gastenboek.txt hen ik chmod 777 thans gedaan.

Bedankt


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Mrt 2007 21:32 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
hmja, ik was wat vlug en onvolledig.

Eerst en vooral, ge include de pagina gb.php in uw hoofdpagina index.php. Dus uw eigenlijke pagina is dan ook index.php en niet gb.php. Het beste is dan ook consequent index.php te gebruiken in uw urls. Anders "verspringt" ge tussen index.php en gb.php.

Bovenaan:
Code:
 header('location: index.php?pagina=gb&action=read&start=0');

ge moet dus ook altijd verwijzen naar index.php?pagina=gb&...

't belangrijkste is uw actiion URL:
Code:
<FORM action="index.php?pagina=gb&action=write" method="POST" onSubmit="return validate(this);">
Ik denk dat het ook beter is method="POST" te gebruiken. Dacht dat ik dat ooit eens gelezen had dat dat veiliger is (maar dat is voer voor de specialisten :)).

Hier is de code (werkt om m'n localhost).

index.php (ge kunt natuurlijk ook switch gebruiken):

Code:
<?php
if($_GET['pagina'] == "gb")
{
   include("gb.php");
}
else
{
   echo "Deze pagina bestaat niet"   ;
}
?>


gb.php:
Code:
<?
  $amount=15;

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

    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_POST['message']);
    fwrite($file,$_POST['name'].'|||'.$_POST['email'].'|||'.date('d-m-Y').'|||'.$_POST['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="index.php?pagina=gb?start='.max(0,$start-$amount).'"><<<</A> ';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="index.php?pagina=gb&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="index.php?pagina=gb&action=write" method="POST" 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>


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Mrt 2007 22:09 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Als beginner is het niet echt gemakkelijk om te volgen,
Ik deed nu het volgende in mijn index.php pagina:

Code:
<?php switch(strtolower($_GET['page'])) {
 
//index
case "welkom": $page="welkom.php";break;
case "kampterrein_2007": $page="kampterrein_2007.php";break;
case "kamp_2007_stelebos": $page="kamp_2007_stelebos.php";break;
case "commentaar": $page="commentaar.php";break;
case "agenda": $page="agenda.php";break;
case "gb": $page="gb.php";break;
default: $page="welkom.php";break; } include($page); ?>

<?php
if($_GET['pagina'] == "gb")
{
   include("gb.php");
}
else
{
   echo "Deze pagina bestaat niet"   ;
}
?>


en in gb.php heb ik je code gecopieerd zoals je zei,

Het gastenboek verschijnt nu onderaan op mijn index.php pagina ??, alles werkt dus ook de berichten verschijnen na het posten, (maar dus onderaan in mijn index.php pagina), en dat is dus niet de bedoeling hé :D
Sorry voor de last !


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Mrt 2007 22:36 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
lainke schreef:
Het gastenboek verschijnt nu onderaan op mijn index.php pagina ??, alles werkt dus ook de berichten verschijnen na het posten, (maar dus onderaan in mijn index.php pagina), en dat is dus niet de bedoeling hé :D

Dat is logisch, want op de plaats in je PHP-code in index.php, voegt include je gastenboek in. Maar die include staat ook al in het case-gedeelte. Maak dus van je code:

Code:
<?php switch(strtolower($_GET['page'])) {
 
//index
case "welkom": $page="welkom.php";break;
case "kampterrein_2007": $page="kampterrein_2007.php";break;
case "kamp_2007_stelebos": $page="kamp_2007_stelebos.php";break;
case "commentaar": $page="commentaar.php";break;
case "agenda": $page="agenda.php";break;
case "gb": $page="gb.php";break;
default: $page="welkom.php";break; } include($page); ?>

Ofnog: verwijder
Code:
<?php
if($_GET['pagina'] == "gb")
{
   include("gb.php");
}
else
{
   echo "Deze pagina bestaat niet"   ;
}
?>


To

ps: via de zoekfunctie van http://www.php.net kan je héél nuttige informatie en voorbeeldjes opvragen van de verschillende PHP-commando's. Bijvoorbeeld: http://be2.php.net/include/. Gebruik dit handig naslagwerk!


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Mrt 2007 22:57 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Hoi To,

het lijkt vervloekt, maar ik heb die code nu van jou zo overgenomen, maar na het verzenden van een bericht kom ik gewoon terug op mijn index.php pagina uit zonder dat het bericht is geplaatst. gastenboek.txt is chmod 777 gedaan.

PS: ik zal zeker eens de nodig tijd vrijmaken om http://be2.php.net/include/. te bestuderen.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 20 Mrt 2007 1:05 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
Als ge terug op uw index-pagina uitkomt zonder dat het bericht verschijnt (verschijnen de andere berichten of verschijnt er gewoon niets?) wilt dat dus zeggen dat de data logischerwijs niet naar het bestand gastenboek.txt geschreven worden.

De fout moet dus in dit stukje code zitten:
Code:
  if ($_GET['action']=='write') {
     header('location: index.php?page=gb&action=read&start=0');
    $file=fopen('gastenboek.txt','a');

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

- is gastenboek.txt zeker chmod 777 ?
- bestaat de $_GET['action'] variabele en/of is die leeg (uw url moet er dus zo uitzien: http://www.uw-domein.be/index.php?page=gb&action=write ?
- ge kunt gastenboek.txt openen om te kijken of de data naar het bestand geschreven is. Indien ja, dan zit de fout niet hier...

Het werkt hier bij mij dus ...
- ...


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 20 Mrt 2007 17:48 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Hoi,

Als ik dus het bericht intik kom ik automatisch op mijn index.php pagina uit.

Als ik dan weer op mijn link van het gastenboek klik is mijn bericht niet verschenen.

Mijn gastenboek.txt heeft chmod 777

De data werd niet naar het gastenboek.txt geschreven.

Citaat:
bestaat de $_GET['action'] variabele en/of is die leeg (uw url moet er dus zo uitzien: http://www.uw-domein.be/index.php?page=gb&action=write ?
Deze snap ik niet echt goed?

Mijn code van index.php nog maar eens voor alle zekerheid:

Code:
<?php switch(strtolower($_GET['page'])) {
 
//index
case "welkom": $page="welkom.php";break;
case "kampterrein_2007": $page="kampterrein_2007.php";break;
case "kamp_2007_stelebos": $page="kamp_2007_stelebos.php";break;
case "commentaar": $page="commentaar.php";break;
case "agenda": $page="agenda.php";break;
case "gb": $page="gb.php";break;
default: $page="welkom.php";break; } include($page); ?>


Mijn gb.php code:

Code:
<?
  $amount=15;

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

    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_POST['message']);
    fwrite($file,$_POST['name'].'|||'.$_POST['email'].'|||'.date('d-m-Y').'|||'.$_POST['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="index.php?pagina=gb?start='.max(0,$start-$amount).'"><<<</A> ';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="index.php?pagina=gb&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="index.php?pagina=gb&action=write" method="POST" 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>


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 20 Mrt 2007 19:12 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
Uw script kan natuurlijk niet werken. In uw index.php zegt ge:

Code:
$_GET['page']


Terwijl ge in gb.php dit doet:
Code:
index.php?pagina=gb


Vervang dus in uw index.php $_GET['page'] door $_GET['pagina'] en het zal werken.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 20 Mrt 2007 21:48 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Zo heb ik het nu gedaan:

Code:
<?php switch(strtolower($_GET['pagina'])) {
 
//index
case "welkom": $page="welkom.php";break;
case "kampterrein_2007": $page="kampterrein_2007.php";break;
case "kamp_2007_stelebos": $page="kamp_2007_stelebos.php";break;
case "commentaar": $page="commentaar.php";break;
case "gb": $page="gb.php";break;
default: $page="welkom.php";break; } include($page); ?>


Maar nu werkt de link helemaal niet meer:

Code:
index.php?page=gb


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 21 Mrt 2007 1:52 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
lainke schreef:
Maar nu werkt de link helemaal niet meer:
Code:
index.php?page=gb
Die link zal inderdaad niet meer werken. De correcte link is in dit geval dan ook:

Code:
index.php?pagina=gb


$_GET['pagina'] haalt uit de url wat er achter "pagina=" staat. Als ge dit als url neemt: index.php?page=gb, dan is $_GET['pagina'] natuurlijk leeg (hij komt zelfs niet voor in uw url). Ik denk dat ge best eens een deftige uitleg opzoekt op 't net over $_GET variabelen. 't Is vrij simpel, maar dat uitleggen :oops:

Copy/paste deze code, die werkt wel zoals gij wilt:

index.php
Code:
<?php
//index

switch(strtolower($_GET['page'])) {
 
//index
case "welkom": $page="welkom.php";break;
case "kampterrein_2007": $page="kampterrein_2007.php";break;
case "kamp_2007_stelebos": $page="kamp_2007_stelebos.php";break;
case "commentaar": $page="commentaar.php";break;
case "agenda": $page="agenda.php";break;
case "gb": $page="gb.php";break;
default: $page="welkom.php";break; } include($page);

?>


gb.php

Code:
<?
  $amount=15;

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

    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_POST['message']);
    fwrite($file,$_POST['name'].'|||'.$_POST['email'].'|||'.date('d-m-Y').'|||'.$_POST['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="index.php?page=gb?start='.max(0,$start-$amount).'"><<<</A> ';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="index.php?page=gb&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="index.php?page=gb&action=write" method="POST" 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>


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 25 Mrt 2007 0:24 
Offline
 
 

Geregistreerd: 17 Mei 2003 23:00
Berichten: 142
Hoikes,

Bedankt het werkt nu !


Is het ook mogelijk dit gastenboek te scheiden,
een aparte pagina voor het invullen voor het bericht,
en eentje voor het laten kijken van de geposte berichten?

Bedankt
Alain


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 16 berichten ]  Ga naar pagina 1, 2  Volgende

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 42 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.