PhP gastenboek in Jquery Mobile
Ik ben bezig met het maken van een mobiele site in Jquery Mobile en had bedacht om er een gastenboek aan toe te voegen.
Nu heb ik helemaal geen ervaring met PhP en het leek me handig om met een zo simpel mogelijk gastenboek te beginnen.
Maar helaas loop ik zelfs daar al op vast.
Ik heb op internet gezocht naar een simpele opzet voor een script, maar ik kan niet nagaan of dit script wel klopt, aangezien ik de codes nog niet goed ken.
Op dit moment krijg ik een basis-opzet te zien, maar zo gauw ik een bericht wil plaatsen krijg ik de melding "undefined".
Het gastenboek wil ik oproepen via
Vervolgens heb ik twee php-bestanden, te weten:
gastenboek.php
en schrijf.php
Kan iemand me vertellen of deze code enigszins correct is en wat ik fout aan het doen ben?
Nu heb ik helemaal geen ervaring met PhP en het leek me handig om met een zo simpel mogelijk gastenboek te beginnen.
Maar helaas loop ik zelfs daar al op vast.
Ik heb op internet gezocht naar een simpele opzet voor een script, maar ik kan niet nagaan of dit script wel klopt, aangezien ik de codes nog niet goed ken.
Op dit moment krijg ik een basis-opzet te zien, maar zo gauw ik een bericht wil plaatsen krijg ik de melding "undefined".
Het gastenboek wil ik oproepen via
Vervolgens heb ik twee php-bestanden, te weten:
gastenboek.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?PHP
echo"<a href=schrijf.php>Schrijf in het gastenboek</a><br><br>";
$bestand=array_reverse(file("gastenboek.txt"));
echo ($bestand) ? "" : "Er zijn nog geen berichten!";
foreach($bestand as $i)
{
$i=explode("|",$i);
$naam = $i[0];
$email = $i[1];
$datum = $i[2];
$ip = $i[3];
$bericht = $i[4];
$email = htmlspecialchars($email);
$naam = htmlspecialchars($naam);
$bericht = htmlspecialchars($bericht);
$bericht = str_replace("<br>","<br>",$bericht);
echo"<b>Bericht door <a href='mailto:$email'>$naam</a> @ $datum</b> IP: $ip<br><br>$bericht<br><br>";
}
?>
echo"<a href=schrijf.php>Schrijf in het gastenboek</a><br><br>";
$bestand=array_reverse(file("gastenboek.txt"));
echo ($bestand) ? "" : "Er zijn nog geen berichten!";
foreach($bestand as $i)
{
$i=explode("|",$i);
$naam = $i[0];
$email = $i[1];
$datum = $i[2];
$ip = $i[3];
$bericht = $i[4];
$email = htmlspecialchars($email);
$naam = htmlspecialchars($naam);
$bericht = htmlspecialchars($bericht);
$bericht = str_replace("<br>","<br>",$bericht);
echo"<b>Bericht door <a href='mailto:$email'>$naam</a> @ $datum</b> IP: $ip<br><br>$bericht<br><br>";
}
?>
en schrijf.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$datum = date("d-m-Y / H:i");
if($naam && $email && $bericht) {
$bestand = fopen("gastenboek.txt", "a");
$bericht = str_replace("\n","<br>",$bericht);
$bericht = str_replace("|","",$bericht);
$naam = str_replace("|","",$naam);
$email = str_replace("|","",$email);
fwrite($bestand, "$naam|$email|$datum|$REMOTE_ADDR|$bericht\n") ;
fclose($bestand);
echo"Bedankt!<br><br><a href=gastenboek.php>Gastenboek</a>";
} else {
echo"<form method=post action=$PHP_SELF>";
echo"Naam:<br><input type=text name=naam><br>";
echo"Email:<br><input type=text name=email><br>";
echo"Bericht:<br><textarea cols=30 rows=10 name=bericht></textarea><br>";
echo"<input type=submit value='Verstuur'>";
echo"</form>";
}
?>
$datum = date("d-m-Y / H:i");
if($naam && $email && $bericht) {
$bestand = fopen("gastenboek.txt", "a");
$bericht = str_replace("\n","<br>",$bericht);
$bericht = str_replace("|","",$bericht);
$naam = str_replace("|","",$naam);
$email = str_replace("|","",$email);
fwrite($bestand, "$naam|$email|$datum|$REMOTE_ADDR|$bericht\n") ;
fclose($bestand);
echo"Bedankt!<br><br><a href=gastenboek.php>Gastenboek</a>";
} else {
echo"<form method=post action=$PHP_SELF>";
echo"Naam:<br><input type=text name=naam><br>";
echo"Email:<br><input type=text name=email><br>";
echo"Bericht:<br><textarea cols=30 rows=10 name=bericht></textarea><br>";
echo"<input type=submit value='Verstuur'>";
echo"</form>";
}
?>
Kan iemand me vertellen of deze code enigszins correct is en wat ik fout aan het doen ben?
Als ik heel eerlijk mag zijn vind ik zo'n fwrite en get_content systeem nou niet echt een 'makkelijk' gastenboek systeem. Gastenboek krijgt met zo'n systeem behoorlijke beperkingen.
Ik raad aan om kort te spieken hoe MySQL werkt.
connectie maken met MySQL voor beginners:
http://www.tizag.com/mysqlTutorial/mysqlconnection.php
tables aanmaken om data op te slaan:
http://www.tizag.com/mysqlTutorial/mysqltables.php
data invoegen
http://www.tizag.com/mysqlTutorial/mysqlinsert.php
etc. etc.
Zo kun je updaten, berichten uit gastenboek deleten etc.
Ik raad aan om kort te spieken hoe MySQL werkt.
connectie maken met MySQL voor beginners:
http://www.tizag.com/mysqlTutorial/mysqlconnection.php
tables aanmaken om data op te slaan:
http://www.tizag.com/mysqlTutorial/mysqltables.php
data invoegen
http://www.tizag.com/mysqlTutorial/mysqlinsert.php
etc. etc.
Zo kun je updaten, berichten uit gastenboek deleten etc.
Dat is makkelijker gezegd dan gedaan!
Ik heb al moeite met PhP, laat staan MySQL.
Maar goed, ik heb er een poging aan gewaagd.
Wil het toch leren!
Ik heb een gastenboek hier van de website gehaald:
http://www.phphulp.nl/php/script/gastenboeken-fora/gastenboek/1592/
(naar mijn idee is deze goed uitgewerkt als ik alle reacties eronder lees)
Heb de SQL code toe weten te voegen aan mijn database en heb de PhP ingevuld en aan mijn site toegevoegd.
Maar helaas krijg ik de melding "Er is iets mis gegaan"
Als ik de PhP probeer te lezen ligt dat volgens mij ergens aan de eerste regels code, maar ik zie niet wat ik daar verkeerd heb ingevuld.
Er staat nu:
heb ik een punt of komma gemist?
Ik heb al moeite met PhP, laat staan MySQL.
Maar goed, ik heb er een poging aan gewaagd.
Wil het toch leren!
Ik heb een gastenboek hier van de website gehaald:
http://www.phphulp.nl/php/script/gastenboeken-fora/gastenboek/1592/
(naar mijn idee is deze goed uitgewerkt als ik alle reacties eronder lees)
Heb de SQL code toe weten te voegen aan mijn database en heb de PhP ingevuld en aan mijn site toegevoegd.
Maar helaas krijg ik de melding "Er is iets mis gegaan"
Als ik de PhP probeer te lezen ligt dat volgens mij ergens aan de eerste regels code, maar ik zie niet wat ik daar verkeerd heb ingevuld.
Er staat nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
error_reporting(E_ALL);
$host = "localhost:3306"; // Je host
$user = "EelkeScholte"; // Je MySQL gebruikersnaam
$pass = "hierstaatmijnwachtwoord"; // Je MySQL wachtwoord
$datb = "gastenboek"; // Je MySQL database
// Verbinding maken
mysql_connect($host, $user, $pass) or die ("Er is iets mis gegaan");
mysql_select_db($datb) or die ("Er is iets mis gegaan");
?>
error_reporting(E_ALL);
$host = "localhost:3306"; // Je host
$user = "EelkeScholte"; // Je MySQL gebruikersnaam
$pass = "hierstaatmijnwachtwoord"; // Je MySQL wachtwoord
$datb = "gastenboek"; // Je MySQL database
// Verbinding maken
mysql_connect($host, $user, $pass) or die ("Er is iets mis gegaan");
mysql_select_db($datb) or die ("Er is iets mis gegaan");
?>
heb ik een punt of komma gemist?
Gewijzigd op 22/06/2012 21:50:12 door Eelke Scholte
Hé, mijn gastenboek - leuk :-)
Over je probleem: dan is óf je host, gebruikersnaam of wachtwoord verkeers, óf je databasenaam.
localhost:3306 hoeft overigens niet, daar kun je gewoon localhost neerzetten.
Over je probleem: dan is óf je host, gebruikersnaam of wachtwoord verkeers, óf je databasenaam.
localhost:3306 hoeft overigens niet, daar kun je gewoon localhost neerzetten.
Quote:
localhost:3306 hoeft overigens niet, daar kun je gewoon localhost neerzetten.
Niet als je MySQL server op poort 3306 zit.
Dat is toch in 99% van de gevallen zo?
Ja, behalve als je allemaal vreemde servers op je computer hebt staan waardoor er geen 1 normale poort meer over is (spreek uit ervaring), dan moet je ineens localhost:8080 in de url gaan gebruiken en localhost:8888 in mysql...
Tsja, dat is dan ook vaak je eigen probleem.
Vooral als het om servers gaat (die horen vaak maar één taak te hebben).
Vooral als het om servers gaat (die horen vaak maar één taak te hebben).
Gewijzigd op 23/06/2012 00:57:26 door Roel -
Ach ja... Je installeert RoR: eigen servertje. Je script wat met C#: eigen servertje. Je bent een beginner met ZF en installeerd per ongeluk Zend Server: eigen servertje. Je script wat in .NET: eigen servertje. Je bent ook nog PHP scripter: eigen servertje.
In het totaal 5 servers, had vast makkelijker gekund, maar had er toender tijd niet de kennis voor (en nu waarschijnlijk ook nog niet).
In het totaal 5 servers, had vast makkelijker gekund, maar had er toender tijd niet de kennis voor (en nu waarschijnlijk ook nog niet).
Gewijzigd op 23/06/2012 01:00:21 door Wouter J
Roel van de Water op 23/06/2012 00:45:16:
Hé, mijn gastenboek - leuk :-)
Over je probleem: dan is óf je host, gebruikersnaam of wachtwoord verkeers, óf je databasenaam.
localhost:3306 hoeft overigens niet, daar kun je gewoon localhost neerzetten.
Over je probleem: dan is óf je host, gebruikersnaam of wachtwoord verkeers, óf je databasenaam.
localhost:3306 hoeft overigens niet, daar kun je gewoon localhost neerzetten.
Hoi Roel,
Ja, jouw gastenboek zag er wel goed bruikbaar uit en ik wilde een zo eenvoudig mogelijk gastenboek, om problemen met de 1-pagina-structuur van Jquery Mobile te verminderen.
Het is me nu uiteindelijk gelukt om het gastenboek zichtbaar te krijgen, maar een bericht plaatsen doet hij nog niet.
Als ik op submit druk wordt ik doorgestuurd naar de home-pagina van mijn site en wordt het bericht niet geplaatst.
Weet jij misschien waar dat vandaan zou kunnen komen?
En daarnaast, wat is je bedoeling van de vraag "Welke dag is het vandaag"?
Heeft die een specifieke functie?
(ik probeer je PhP-script door te krijgen)
Toevoeging op 24/06/2012 14:24:13:
update: als ik mijn pagina ververs wordt mijn geplaatste bericht wel zichtbaar, maar ik heb nergens een bevestiging gehad.
Ik zal even het antwoord op je laatste vraag geven. Het is een anti-spam bescherming. In plaats van een CAPTCHA wordt er hier een vraag gebruikt. Dat kan je zien in de broncode.
@ Koen. oke, duidelijk.
dan laat ik die lekker staan.
Toevoeging op 25/06/2012 10:38:10:
Ben weer een stapje verder gekomen.
Ik ben er achter gekomen dat het geastenboek wel werkt als ik het rechtstreeks aanspreek (complete url typen in browser)
Maar niet als ik hem via mijn site invul.
Dus zal het er waarschijnlijk mee te maken hebben dat mijn site is opgebouwd uit 1 pagina met ID's om de verschillende subpagina's aan te spreken.
Is het mogelijk om in PhP aan te geven dat een script door moet verwijzen naar een specifieke plek binnen een website?
dan laat ik die lekker staan.
Toevoeging op 25/06/2012 10:38:10:
Ben weer een stapje verder gekomen.
Ik ben er achter gekomen dat het geastenboek wel werkt als ik het rechtstreeks aanspreek (complete url typen in browser)
Maar niet als ik hem via mijn site invul.
Dus zal het er waarschijnlijk mee te maken hebben dat mijn site is opgebouwd uit 1 pagina met ID's om de verschillende subpagina's aan te spreken.
Is het mogelijk om in PhP aan te geven dat een script door moet verwijzen naar een specifieke plek binnen een website?




