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
Dit is een start om de gegevens van je formulier naar je database te schrijven.
<?php
// Laat alle errors zien
error_reporting(E_ALL);
$host = "localhost";
$db = "database"; // hier de naam van de database invullen
$user = "user"; // hier de naam van de gebruiker invullen
$password = "password"; // hier het wachtwoord van de gebruiker invullen
mysql_connect ($host, $user, $password) or die ("geen verbinding 1");
mysql_select_db ($db) or die ("geen verbinding 2");
// is er iets gepost?
if (isset($_POST['btnSubmit']))
{
// input controleren en bewerken
$evenement = addslashes($_POST['evenement']);
$locatie = addslashes($_POST['locatie']);
// hier de rest van de velden
// update het record
mysql_query("
INSERT INTO events
(event, locatie)
VALUES
('$evenement', '$locatie')
");
}
?>
Uhm, ik snap van deze code de bedoeling niet eerlijk gezegd.
Ik heb hem nu geplakt boven mijn formulier in de pagina en mijn database gegevens ingevuld.
En waar is de tweede code heb ik tussen de kommá;s van action geplaatst?
Volgens mij functioneerd de verbinding met de database nu ook.
Hoe kan ik trouwens zo'n code in een codeveldje op dit forum plaatsen?
<?php include('menu.php');?>
</p>
<table width="850" border="0" align="center">
<tr>
<td><p align="center" class="stijl1"><img src="evenement/Scheurkalender.jpg" width="165" height="132"></p> </td>
<td><p align="center" class="stijl1">Regelmatig is er de mogelijkheid om mee te doen aan toertochten of om een beurs te bezoeken. Op deze site hebben we geprobeerd om de meeste weer te geven. Echter kunnen we er natuurlijk hier en daar een paar vergeten. Als u wat toe te voegen heeft vul dan het onderstaande formulier in.</p>
<p align="center" class="stijl1">Het is natuurlijk mogelijk dat iemand een foutje maakt tijdens het invoeren en dat er locaties of data van evenementen wijzigen. Wilt u daarom zeker zijn, neem dan even contact op met de organisatie van het betreffende evenement.</p></td>
</tr>
</table>
</p>
<table width="850" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#FFCC00"> </td>
<td bgcolor="#CCCCCC"> </td>
<td width="22" bgcolor="#FFCC00"> </td>
</tr>
<tr>
<td width="20" bgcolor="#FFCC00"><div align="left"></div></td>
<td width="808" bgcolor="#CCCCCC">
<?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 = "xxxxxx"; //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");
// is er iets gepost?
if (isset($_POST['btnSubmit']))
{
// input controleren en bewerken
$evenement = addslashes($_POST['evenement']);
$locatie = addslashes($_POST['locatie']);
$datum aanvang = addslashes($_POST['datum aanvang']);
$datum einde = addslashes($_POST['datum einde']);
$van = addslashes($_POST['van']);
$tot = addslashes($_POST['tot']);
$rubriek = addslashes($_POST['rubriek']);
$organisatie = addslashes($_POST['organisatie)']);
$website = addslashes($_POST['website']);
$email = addslashes($_POST['e-mail']);
$telefoon = addslashes($_POST['telefoon']);
// hier de rest van de velden
// update het record
mysql_query("
INSERT INTO events
(event, locatie, datum (aanvang), datum (einde), van, tot, rubriek, organisatie, website, e-mail, telefoon)
VALUES
('$evenement', '$locatie', '$datum (aanvang)', '$datum (einde)', '$van', '$tot', '$rubriek', '$organisatie', '$website', '$e-mail', '$telefoon')
");
}
?>
<form name="form1" method="post" action="<? $_SERVER['PHP_SELF']; ?>">
<label></label>
<p align="center"><span style="color: #000080; font-size: 12px">Evenement:</span><br />
<input name="Evenement" type="text"/>
<br>
<span style="color: #000080; font-size: 12px">Locatie:</span><br />
<input name="locatie" type="text" class="input"/>
<br>
<span style="color: #000080; font-size: 12px">Datum (Aanvang):</span><br />
<input name="Datum (aanvang)" type="text" class="input"/>
<br>
<span style="color: #000080; font-size: 12px">Datum (Einde):</span><br />
<input name="Datum (einde)" type="text" class="input"/>
<br>
<span style="color: #000080; font-size: 12px">Aanvangstijd:</span><br />
<input name="Van" type="text" class="input"/>
<br>
<span style="color: #000080; font-size: 12px">Eind tijd:</span><br />
<input name="Tot" type="text" class="input"/>
<br>
<span style="color: #000080; font-size: 12px">Rubriek:</span><br />
<input name="Rubriek" type="text" class="input"/>
<br>
<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">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 />
<span style="color: #000080; font-size: 12px">Aanvullende informatie:</span><br />
<textarea name="aanvullende info" cols="50" rows="4">Typ hier uw tekst</textarea>
<br>
<br>
<input type="submit" name="btnSubmit" value="Voeg toe" class="button"/>
</p>
</form></td>
<td bgcolor="#FFCC00"> </td>
</tr>
<tr>
<td bgcolor="#FFCC00"> </td>
<td bgcolor="#CCCCCC"> </td>
<td bgcolor="#FFCC00"> </td>
</tr>
</table>
</body>
</html>
<!-- Begin google Analytics ga.js-->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3313965-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- Eind google Analytics ga.js-->
</body>
</html>
- gebruik geen or die()
- addslashes? Die zijn niet voor databasegegevens, gebruik mysql_real_escape_string().
- mijn voorkeur gaat uit naar variabelen buiten quotes.
Laatste punt is er een richting de bovenstaande post, $datum<spatie>einde is geen geldige variabelenaam.
- gebruik geen or die()
- addslashes? Die zijn niet voor databasegegevens, gebruik mysql_real_escape_string().
- mijn voorkeur gaat uit naar variabelen buiten quotes.
Laatste punt is er een richting de bovenstaande post, $datum<spatie>einde is geen geldige variabelenaam.
*moet ik or die dan weghalen en er wat voor in de plaats zetten?
*en begrijp ik het goed dat ik addslashes moet vervangen voor mysql_real_escape_string().?
*wat bedoel je met de variabelen buiten de quotes?
*wat bedoel je met de niet geldige variabelenaam en hoe los ik dat op, ik doe kenbaar iets fout dan. Ik zorg nu dat het corrospondeert met de teksten in de database?
Zoals ik vertelde ben ik een leek, maar dat moge duidelijk zijn.
* moet ik or die dan weghalen en er wat voor in de plaats zetten?
misschien, laat het nu even staan, we zijn immers langzaam aan het opbouwen
@Agirre, wat kunnen we hier dan beter neerzetten?
* en begrijp ik het goed dat ik addslashes moet vervangen voor mysql_real_escape_string().?
ja, dat behoort mysql_real_escape_string te zijn, en geen addslashes
* wat bedoel je met de variabelen buiten de quotes?
misschien kan Agirre hier even een voorbeeldje van geven
* wat bedoel je met de niet geldige variabelenaam en hoe los ik dat op, ik doe kenbaar iets fout dan. Ik zorg nu dat het corrospondeert met de teksten in de database?
Veldnamen met spaties erin zijn niet wenselijk en veroorzaken problemen.
Pas de volgende velden aan (overal in de code en in de database):
Datum (aanvang) » datum_aanvang
Datum (einde) » datum_einde
e-mail » email
aanvullende info » aanvullende_info (of gewoon info)
Schrijf al variabelen op dezelfde wijze, dat is handiger.
Dus bijv. alles in kleine letters, ook in je formulier en database.
<?php
//code
$db = mysql_select_db($db);
if(!$db) {//fout!
echo 'Er is een fout opgetreden: ' . mysql_error();
//of redirect naar errorpagina of wat dan ook
}
//code
?>
Variabelen buiten quotes (vind ik persoonlijk netter):