Hallo allemaal,

Ik ben nieuw op dit forum en ook in de wereld van PHP en mySQL.
Ik ben dus een "groentje"...

Ik heb een leuk lopende site gemaakt waar ik momenteel een evenmenten kalender op heb staan welke ik zelf handmatig bijwerk.
Nu wil ik deze kalender automatiseren zodat de bezoekers zelf een evenement kunnen aanmaken en dat de evenementen daarna in volgorde (eerste datum eerst) worden geplaatst.
Tevens moet een evenement welke al is geweest, automatisch worden verwijderd.

Het invullen van evenement zou ik graag zien in de vorm van een standaard formulier.

Kan iemand me vertellen hoe ik te werk moet gaan? Het lieft is een beetje Jip & Janneke taal.
Mijn site is te vinden op www.oudebrommers.nl

Alvast bedankt,

André

Alvast bedankt.
Je bent altijd welkom!
Leuk!
Ik heb hem nu onder deze include in de pagina geplaats. Dat moet volgens mij ook kunnen. Het werkt wel namelijk.
Dat is wel goed (denk ik).
Het resultaat kun je hier vinden: http://www.oudebrommers.nl/event_form.php
Het vordert al aardig.
Volgende stap is het maken van een handige tijdselectie, morgen post ik dat wel even.
Oké, ik zie het wel tegemoet.
Voor de tijdselectie (aanvangstijd en eindtijd) kun je een dropdownlijst gebruiken die de uren, gevolgd door de kwartieren, weergeeft.

Zet deze code ergens (bijv. bovenin) je pagina.

<?
function Tijden()
{
for ($i=0; $i<=23; $i++)
{
for ($j=0; $j<60; $j+=15)
{
echo "<option value='" . sprintf('%02d', $i) . ":" . sprintf('%02d', $j) . ":00'>" . sprintf('%02d', $i) . ":" . sprintf('%02d', $j) . "</option>";
}
}
}
?>

Vervang in je formulier de invoervelden voor de tijden door dit blok code.

          <span style="color: #000080; font-size: 12px">Aanvangstijd:</span><br />
          <select name="van" class="input">
						<? Tijden(); ?>
					</select>
          <br>

          <span style="color: #000080; font-size: 12px">Eind tijd:</span><br />
          <select name="tot" class="input">
						<? Tijden(); ?>
					</select>
          <br>

Nu moeten we zeker aan de velden rubriek en organisatie gaan werken?
Inderdaad, dat is de volgende stap.

De velden 'website', 'emailadres' en 'telefoon' kun je uit het formulier weghalen. Deze gegevens kan een organisator invullen (en later ook onderhouden) via een ander formulier.

Organisatoren moeten zich kunnen aanmelden, indien zij nog niet in het dropdownmenu staan. We hebben dus een linkje (of button) nodig met de tekst 'Aanmelden organisator' (o.i.d.). Na het klikken op deze link kan een organisator zich aanmelden, waarbij de naam en de overige relevante gegevens ingevuld kunnen worden. De organisator moet ook een zelf te kiezen wachtwoord kunnen opgeven. Alleen met dit wachtwoord kan deze organisator een nieuw evenement toevoegen aan je lijst, anders loop je de kans dat daar binnenkort allerlei minder prettige zaken in staan. De organisator kan ook met dit wachtwoord zijn eigen gegevens onderhouden.
Of heb je daar een ander idee bij?
Klink goed.
Ik was eerst van plan omn het zo te maken dat iedereen gewoon gegevens kon invullen en dat het dan automatisch werdt opgeslagen in de database. Het kan namelijk zo zijn dat één organisator meerdere contact personen heeft door nederland. Het is dus niet vanzelfsprekend dat altijd hetzefde telefoonummer of e-mil adres moet worden gebruikt.

Maar jou idee is beter, want anders is het inderdaad zo dat er binnen de kortste keren evenementen tussen staan die er niet huis horen.

laat maar weten hoe ik te werk moet gaan.

maak eerst een linkje naar de mogelijkheid om een organisator aan te melden. Dit linkje moet gaan naar een formulier met daarin de benodigde invulvelden.
Ik zou de volgorde op het formulier wat aanpassen. Zet de dropdownlijst met organisaties helemaal bovenaan, met ernaast of eronder een linkje 'Organisatie aanmelden'. Dan voorkom je dat mensen eerst het formulier al invullen en dan pas ontdekken dat hun organisatie er nog niet tussen staat.

De tabel 'organisatie' moet je uitbreiden met 2 velden: username en password.

De link 'Organisatie aanmelden' kan verwijzen naar een formulier als hieronder. Je moet dat weer naar eigen inzicht in je bestaande pagina's inpassen.


<?php 
// Laat alle errors zien 
error_reporting(E_ALL); 

$host = "localhost"; 
$db = "oudebro_events"; //hier de naam van de database
$user = "oudebro_events"; //hier de naam van de gebruiker
$password = "xxxxxxxx";  //hier het wachtwoord van de gebruiker 

mysql_connect ($host, $user, $password) or die ("geen verbinding 1"); 
mysql_select_db ($db) or die ("geen verbinding 2"); 

$fields = array(
    'organisatie' => '',
    'website' => '',
    'e_mail' => '',
    'telefoon' => '',
    'username' => '',
    'password' => ''
);

// is er iets gepost?
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    // input controleren en bewerken
    foreach($_POST as $key => $value) {
        if(in_array($key, array_keys($fields))) $fields[$key] = mysql_real_escape_string ($value);
    }
    
    // insert het record
    $query = "INSERT INTO organisatie 
    (".implode(',',array_keys($fields)).") 
    VALUES 
    ('".implode('\',\'',$fields)."')";
    $result = mysql_query($query);
    if($result) {
        if(mysql_affected_rows() == 1) {
            $msg = 'Record toegevoegd';
        }
    } else {
        $msg = mysql_error();
        $msg .= '<br />';
        $msg .= htmlentities($query);
    }
    
    if(!empty($msg)) {
        echo '<p>'.$msg.'</p>';
    }
}
?>
    <form name="form1" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
      <span style="color: #000080; font-size: 12px">Organisatie:</span><br />
	    <input name="organisatie" type="text" class="input"/>
      <br>
      <span style="color: #000080; font-size: 12px">Gebruikersnaam:</span><br />
	    <input name="username" type="text" class="input"/>
      <br>
      <span style="color: #000080; font-size: 12px">Wachtwoord:</span><br />
	    <input name="password" type="text" class="input"/>
      <br>
      <span style="color: #000080; font-size: 12px">Website:</span><br />
      <input name="website" type="text" class="input"/>
      <br>
      <span style="color: #000080; font-size: 12px">e-mail adres:</span><br />
      <input name="e_mail" type="text" class="input"/>
      <br>
      <span style="color: #000080; font-size: 12px">Telefoon:</span><br />
      <input name="telefoon" type="text" class="input"/>
      <br />
      <br>
      <input type="submit" name="btnSubmit" value="Voeg toe" class="button"/>
    </form>
    <td bgcolor="#FFCC00">&nbsp;</td>
  </tr>
  <tr>
    <td bgcolor="#FFCC00">&nbsp;</td>
    <td bgcolor="#CCCCCC">&nbsp;</td>
    <td bgcolor="#FFCC00">&nbsp;</td>
  </tr>
</table>

<!-- hieronder kun je later verwijderen, alleen een overzichtje voor het testen -->
<br>Organisaties:<br>
<?php
	$query = ("SELECT * FROM organisatie ORDER BY organisatie ASC");
  $result = mysql_query($query) or die(mysql_error());

  while ($row = mysql_fetch_array($result)) 
	{
		echo $row['ID'] . " - ";
		echo $row['organisatie'];
		echo $row['website'];
		echo $row['e_mail'];
		echo $row['telefoon'];
		echo $row['username'];
		echo $row['password'];
		echo "<br>";
	}
?>

	</body>
</html>

De tabel 'organisatie' moet je uitbreiden met 2 velden: username en password.

Dit heb ik gedaan, ik neem aan dat ik gewoon de optie varchar voor deze velden gebruik.

Ik heb de overige wijzigingen ook doorgevoerd.
zie: http://www.oudebrommers.nl/event_form.php

Ik kan nu zeker in het evenementen formulier de velden website, e-mail adres en telefoon weghalen? Want deze zitten nu in het organsatie formulier?

En moet er nu ook een veld wachtwoord komen? Kunnen de organisaties dan eventueel ook zelf hun gegevens wijzigen?


Dit heb ik gedaan, ik neem aan dat ik gewoon de optie varchar voor deze velden gebruik.
Ja, dat is goed.
Ik kan nu zeker in het evenementen formulier de velden website, e-mail adres en telefoon weghalen? Want deze zitten nu in het organsatie formulier?
Inderdaad.
En moet er nu ook een veld wachtwoord komen?
Ja, in het evenementenformulier gaan we om het wachtwoord vragen, zodat we weten dat de organisator het werkelijk zelf heeft aangemeld.
Kunnen de organisaties dan eventueel ook zelf hun gegevens wijzigen?
Ja, dat is straks mogelijk.

Zet eerst even in je nieuwe formulier de volgende code (de oude code overschrijven):

<!-- hieronder kun je later verwijderen, alleen een overzichtje voor het testen -->
<br>Organisaties:<br>
<?php
    $query = ("SELECT * FROM organisatie ORDER BY organisatie ASC");
  $result = mysql_query($query) or die(mysql_error());

  while ($row = mysql_fetch_array($result)) 
    {
        echo $row['ID'] . " - ";
        echo $row['organisatie'];
        echo $row['website'];
        echo $row['e_mail'];
        echo $row['telefoon'];
//        echo $row['username'];
//        echo $row['password'];
        echo "<br>";
    }
?>

Reageren