PhP gastenboek in Jquery Mobile
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?
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 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
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...
Vooral als het om servers gaat (die horen vaak maar één taak te hebben).
Gewijzigd op 23/06/2012 00:57:26 door Roel -
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.
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?