Vervolg links
Pagina: « vorige 1 2 3 volgende »
Paar kleine vraagjes.
1) In mijn menu-frame op mijn site heb ik een bepaalde regellengte. Ongeveer 18 karakters. Nu wil ik dat als een titel meer dan 18 karakters is de eerste 18 karakters getoond worden. Hoe doe ik dit?
Nu maak ik bij invoeren bericht een extra rij aan voor korte titel met lengte van max 18, maar is wel dubbelop werk bij het invoeren van een bericht.
2) Hoe kan ik een html code op de site weergeven? Als ik nu een html code (in de echo) wil laten printen dan krijg ik dus waar die html code voor staat. Ik wil bijv op de site het volgende te zien kunnen krijgen: <img src="..."> zonder dat er een plaatje geprobeerd wordt te weergeven.
3) Is het omzetten van html naar bbcodes ( etc) eenvoudig te doen en zo ja, waar doe je dit, al tijdens invoerformulier of gewoon bij het uitlezen van bericht?
Gewijzigd op 12/03/2004 11:29:00 door Vincent
Code (php)
2. < > gebruiken
of <textarea>hier de code</textarea>
3. ik doe het altijd bij het uitlezen van het bericht, in de db zet ik de bbcode
Ok, ga het proberen.
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM eentabelx ORDER BY date DESC LIMIT 5";
// Voer die query uit
$resultaat = mysql_query($sql);
// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {
// <!-- Content Box //-->
echo "<a href=\"article.php?id=$record->id\">
$record->titelshort...</a><br>";
}
edit: en voor tekstarea, jammergenoeg werkt dit niet bij gewone input, nu blijf je rechts scrollpijltjes behouden en na een spatie maakt ie er een nieuwe regel van:
Dit zijn bijv 3 regels ipv 1.
<textarea rows="1"><img src="test.php"> test</textarea>
Gewijzigd op 12/03/2004 17:47:00 door Vincent
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM eentabelx ORDER BY date DESC LIMIT 5";
// Voer die query uit
$resultaat = mysql_query($sql);
// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {
if (strlen($record->title) > 50) // als $record-title (niet titel ??) groter is dan 50 karakters
{
$title = substr($record->title, 0, 50) . "...";
}
else
{
$title = $record->title;
}
// <!-- Content Box //-->
echo "<a href=\"article.php?id=$record->id\">$title</a><br>";
}
?>
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM eentabelx ORDER BY date DESC LIMIT 5";
// Voer die query uit
$resultaat = mysql_query($sql);
// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {
if (strlen($record->title) > 50) // als $record-title (niet titel ??) groter is dan 50 karakters
{
$title = substr($record->title, 0, 50) . "...";
}
else
{
$title = $record->title;
}
// <!-- Content Box //-->
echo "<a href=\"article.php?id=$record->id\">$title</a><br>";
}
?>
Wil namelijk als plaatje is geupload een link tonen van waar het plaatje staat.
// Maak SQL query om toe te voegen (INSERT)
$sql = "UPDATE tabelx SET (titel, kop, bericht) WHERE VALUES =
('".$_POST[titel].", '".$_POST[kop]."', '".$_POST[bericht]."')";
// Voer SQL uit
$res = mysql_query($sql);
if($res===false) die('er zit een fout in deze query:<BR>'.$sql.'<BR>en wel:<BR>'.mysql_error());
else {
// Geef bevestiging
echo "<font size=\"-1\" color=\"#006699\" face=\"Verdana, Arial\">
Cool, het bericht is succesvol toegevoegd.";
include "index.php"; }
?>
<!-- TABEL //-->
<table border="-1" style="border-collapse : collapse" bordercolor="#006699" width="500"
cellpadding="2" cellspacing="0">
<!-- BERICHT //-->
<tr>
<td bgcolor="white" bordercolor="#006699" colspan="2" width="500">
<font size="-1" color="#006699" face="Verdana, Arial">
<p>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM article2 WHERE id = $_GET[id]";
// Voer die query uit
$resultaat = mysql_query($sql);
// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {
echo "
<form method=\"post\" action=\" $PHP_SELF \">
Titel:<br>
<input type=\"text\" name=\"titel\" size=\"50\">$record->titel<br>
Kop:<br>
<textarea name=\"kop\" cols=\"50\" rows=\"5\">
$record->kop</textarea><br>
Bericht:<br>
<textarea name=\"bericht\" cols=\"50\" rows=\"5\">$record->bericht</textarea><br>
<input type=\"submit\" name=\"submit\" value=\" Voeg toe \">
</form>
</font>";
}?>
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM article2 WHERE id = $_GET[id]";
// Voer die query uit
$resultaat = mysql_query($sql);
// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {
echo "
<form method=\"post\" action=\" $PHP_SELF \">
Titel:<br>
<input type=\"text\" name=\"titel\" size=\"50\">$record->titel<br>
Kop:<br>
<textarea name=\"kop\" cols=\"50\" rows=\"5\">
$record->kop</textarea><br>
Bericht:<br>
<textarea name=\"bericht\" cols=\"50\" rows=\"5\">$record->bericht</textarea><br>
<input type=\"submit\" name=\"submit\" value=\" Voeg toe \">
</form>
</font>";
}?>
<p>
</table>
En is het makkelijk om commentsystem te maken (met die members) want het script/tutorial die ik hier probeerde (stond al tijdje op de pc) gaf nog wat errors op.
Zorg wel dat dat voor alle output gebeurd: een echo'tje oid ervoor zorgt voor een foutmelding...
UPDATE werkt nog steeds niet. Of ik krijg errors bij update stukje, of ik krijg errors zodra ik op toevoegen heb geklikt:(
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
# Een testtabelletje
CREATE TABLE test (
id int(11) primary key auto_increment,
naam varchar(100)
);
# Even er wat in zetten
INSERT INTO test SET naam = 'Vincent'
# Dan in PHP updaten :)
# FF kijken of de variabelen geset zijn
if ($_POST['submit'] && $_POST['naam'])
{
# Updaten!
$sql = "UPDATE test SET naam = '$_POST[naam]'";
$res = mysql_query($sql);
if ($res)
{
echo "Succesvol geupdate!";
}
else
{
echo "Foutje!";
}
}
else
{
# En anders het formuliertje
echo "<form action=\"$PHP_SELF\" method=\"POST\">
echo "Nieuwe naam? :<br>";
echo "<input type=\"text\" name=\"naam\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"Wijzig!\">";
}
?>
# Een testtabelletje
CREATE TABLE test (
id int(11) primary key auto_increment,
naam varchar(100)
);
# Even er wat in zetten
INSERT INTO test SET naam = 'Vincent'
# Dan in PHP updaten :)
# FF kijken of de variabelen geset zijn
if ($_POST['submit'] && $_POST['naam'])
{
# Updaten!
$sql = "UPDATE test SET naam = '$_POST[naam]'";
$res = mysql_query($sql);
if ($res)
{
echo "Succesvol geupdate!";
}
else
{
echo "Foutje!";
}
}
else
{
# En anders het formuliertje
echo "<form action=\"$PHP_SELF\" method=\"POST\">
echo "Nieuwe naam? :<br>";
echo "<input type=\"text\" name=\"naam\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"Wijzig!\">";
}
?>
En, als ik invulformulier wil tonen met waarde van bericht die reeds in tabel staan, dan heb ik daarvoor stukje code om die tabel en bericht enzo te weergeven, maar dan krijg ik of een error of ik krijg een blanco pagina.
Ik heb nu een lijstje met alle nieuwsitems en dan kan ik dus door edit link op de edit pagina het bericht uit de tabel krijg (id = getid princiepe), en dan alleen dat bericht updaten.
Code zonder het lezen van bericht en waarbij alle rijen worden geupdate is nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?
//-- login
if ($_SERVER["PHP_AUTH_USER"] != "naam" || $_SERVER["PHP_AUTH_PW"] != "wachtwoord")
{
header("WWW-Authenticate: Basic realm=\"Enter username and password to proceed\"");
header("HTTP/1.0 401 Unauthorized");
echo "<h1>Authentication failed</h1>Je hebt geen rechten tot deze pagina.";
}
else
{
// OORSPRONKELIJKE PAGINA
if (isset($_POST[submit])) {
// Maak verbinding met MySQL server
$db = mysql_connect("localhost","naam","wachtwoord");
mysql_select_db("database",$db);
// Zet voor 'gevaarlijke' tekens (', ", en \) een extra \
$titel = addslashes($titel);
$datum = addslashes($datum);
$kop = addslashes($kop);
$bericht = addslashes($bericht);
// Maak SQL query om toe te voegen (INSERT)
$sql = "UPDATE tabel SET titel = '$_POST[titel]', kop = '$_POST[kop]', bericht = '$_POST[bericht]' ";
// Voer SQL uit
$res = mysql_query($sql);
if($res===false) die('er zit een fout in deze query:<BR>'.$sql.'<BR>en wel:<BR>'.mysql_error());
else {
// Geef bevestiging
echo "<font size=\"-1\" color=\"#006699\" face=\"Verdana, Arial\">
Cool, het bericht is succesvol toegevoegd.";
include "index.php"; }
}
?>
//-- login
if ($_SERVER["PHP_AUTH_USER"] != "naam" || $_SERVER["PHP_AUTH_PW"] != "wachtwoord")
{
header("WWW-Authenticate: Basic realm=\"Enter username and password to proceed\"");
header("HTTP/1.0 401 Unauthorized");
echo "<h1>Authentication failed</h1>Je hebt geen rechten tot deze pagina.";
}
else
{
// OORSPRONKELIJKE PAGINA
if (isset($_POST[submit])) {
// Maak verbinding met MySQL server
$db = mysql_connect("localhost","naam","wachtwoord");
mysql_select_db("database",$db);
// Zet voor 'gevaarlijke' tekens (', ", en \) een extra \
$titel = addslashes($titel);
$datum = addslashes($datum);
$kop = addslashes($kop);
$bericht = addslashes($bericht);
// Maak SQL query om toe te voegen (INSERT)
$sql = "UPDATE tabel SET titel = '$_POST[titel]', kop = '$_POST[kop]', bericht = '$_POST[bericht]' ";
// Voer SQL uit
$res = mysql_query($sql);
if($res===false) die('er zit een fout in deze query:<BR>'.$sql.'<BR>en wel:<BR>'.mysql_error());
else {
// Geef bevestiging
echo "<font size=\"-1\" color=\"#006699\" face=\"Verdana, Arial\">
Cool, het bericht is succesvol toegevoegd.";
include "index.php"; }
}
?>
<!-- TABEL //-->
<table border="-1" style="border-collapse : collapse" bordercolor="#006699" width="500"
cellpadding="2" cellspacing="0">
<!-- BERICHT //-->
<tr>
<td bgcolor="white" bordercolor="#006699" colspan="2" width="500">
<font size="-1" color="#006699" face="Verdana, Arial">
<p>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
echo "
<form method=\"post\" action=\" $PHP_SELF \">
Titel:<br>
<input type=\"text\" name=\"titel\" size=\"50\">$record->titel<br>
Kop:<br>
<textarea name=\"kop\" cols=\"50\" rows=\"5\">
$record->kop</textarea><br>
Bericht:<br>
<textarea name=\"bericht\" cols=\"50\" rows=\"5\">$record->bericht</textarea><br>
<input type=\"submit\" name=\"submit\" value=\" Voeg toe \">
</form>
</font>";
?>
echo "
<form method=\"post\" action=\" $PHP_SELF \">
Titel:<br>
<input type=\"text\" name=\"titel\" size=\"50\">$record->titel<br>
Kop:<br>
<textarea name=\"kop\" cols=\"50\" rows=\"5\">
$record->kop</textarea><br>
Bericht:<br>
<textarea name=\"bericht\" cols=\"50\" rows=\"5\">$record->bericht</textarea><br>
<input type=\"submit\" name=\"submit\" value=\" Voeg toe \">
</form>
</font>";
?>
<p>
</table>
</body>
</html>
$record-> titel of bericht of kop is dus om voor het uitlezen van bericht, wat in deze pagina dus blanco wordt.
WHERE id = $_GET[id] moet nog achter bij update en daarmee neem ik aan dat ik enkel 1 bericht update. Alleen lukt het nog niet goed om huidige waardes in database uit te lezen, en als het lukt krijg ik wel weer errors na voeg toe knop.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
# Eerst ff een querytje
$sql = "SELECT * FROM tabel WHERE id = '$_GET[id]'";
$res = mysql_query($sql);
# Dan kun je een arraytje of objectje fetchen :)
# Voor het arraytje:
$rijtje = mysql_fetch_array($res);
# $rijtje[0] geeft waarde 1, of $rijtje['veldnaam'] geeft de waarde van dat veld
# Voor het objectje:
$objectje = mysql_fetch_object($res);
# Dit roep je aan met $objectje->veldnaam
# Bijvoorbeeld:
echo "<input type=\"text\" name=\"veldje1\" value=\"$objectje->naam\">";
# Succes!
?>
# Eerst ff een querytje
$sql = "SELECT * FROM tabel WHERE id = '$_GET[id]'";
$res = mysql_query($sql);
# Dan kun je een arraytje of objectje fetchen :)
# Voor het arraytje:
$rijtje = mysql_fetch_array($res);
# $rijtje[0] geeft waarde 1, of $rijtje['veldnaam'] geeft de waarde van dat veld
# Voor het objectje:
$objectje = mysql_fetch_object($res);
# Dit roep je aan met $objectje->veldnaam
# Bijvoorbeeld:
echo "<input type=\"text\" name=\"veldje1\" value=\"$objectje->naam\">";
# Succes!
?>
Ga tevens ook ubb codes proberen erin te verwerken, wel zo gemakkelijk.
Ben alleen exit functie kwijt dat wanneer bericht in database is gezet niet het opnieuw het form wordt getoond. Dus ipv include index.php iets als exit(0); waarna je dus alleen te zien krijgt: cool bericht succesvol geupdate.
$sql = "UPDATE tabel SET titel = '$_POST[titel]', kop = '$_POST[kop]', bericht = '$_POST[bericht]' WHERE id = '$_GET[id]'";
bovenstaande regel werkt niet goed omdat ie dan niks update:( Toon bijv. invulformulier met id 22 en toch update ie rij 22 niet.
Gewijzigd op 15/03/2004 17:06:00 door Vincent
Gewijzigd op 15/03/2004 19:26:00 door Rick
exit(); werkte ook prima. BBCodes is ook gelukt. Nu nog even aan de slag met update.
kijk maar naar de broncode je zal waarschijnlijk geen </html> vinden
Updaten zal nog wel wat werk zijn om dat goed te krijgen en dan kan ik naar volgende stap:)
en aangezien die niet komt zien ze dus alleen een lege witte pagina