Problemen met CKeditor
Dat is me gelukt maar wanneer ik dan op wijzigen druk dan doet hij niets.
Kan iemand zeggen wat ik verkeerd doe?
Een soortgelijk script werkte wel (maar dan zonder CKeditor)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<html>
<head>
<script src="CKEditor/ckeditor.js"></script>
<script src="http://code.jquery.com/jquery.min.js">
</script>
<?php
if (isset($_POST['Omschrijving'])){
echo '<pre>';
print_r( $_POST['Omschrijving']);
echo '</pre>';
}
?>
</head>
<body>
<?php
// include functie verbinden met database + verbinden met vriendenboek
include 'VerbindenmetDB.php'
?>
<?php
//Querry
$query = "SELECT * FROM vrienden";
//Gegevens uit query halen
$result = mysqli_query($conn, $query) or die ("query fout".mysqli_error($conn));
//Resultaat op scherm
echo "<table border='1'>";
while ( $record=mysqli_fetch_array($result) ) {
$ID=$record['ID'];
$Voornaam=$record['Voornaam'];
$Achternaam=$record['Achternaam'];
$Omschrijving=$record['Omschrijving'];
echo "<form id='Wijzigen' action='' method='post'><tr><td><input type='hidden' name='ID' id='ID' value='".$ID."'>
</td><td><input type='text' name='Voornaam' id='Voornaam' value='".$Voornaam."'>
</td><td><input type='text' name='Achternaam' id='Achternaam' value='".$Achternaam."'>
</td><td><input type='text' name='Omschrijving' id='Omschrijving' value='".$Omschrijving."'>
<form>
<textarea class='ckeditor' id='Omschrijving' name='Omschrijving' rows='10' cols='80'>
" . $Omschrijving . "
</textarea>
<script>CKEDITOR.replace( 'Omschrijving' );</script>
</form>
</td><td><input type='Submit' name='Insert' value='Wijzigen'></td></tr></form>";
}
echo "</table>";
if (isset($_POST['Wijzigen'])) {
$IDnieuw=$_POST['ID'];
$Voornaamnieuw=$_POST['Voornaam'];
$Achternaamnieuw=$_POST['Achternaam'];
$Omschrijvingnieuw=$_POST['Omschrijving'];
$query = "UPDATE vrienden
SET Voornaam = '$Voornaamnieuw', Achternaam = '$Achternaamnieuw', Omschrijving = '$Omschrijvingnieuw'
WHERE ID = '$IDnieuw' ";
mysqli_query ($conn,$query) ;
echo "gegevens zijn aangepast";
}
mysqli_free_result($result);
//Verbinding sluiten;
mysqli_close( $conn );
?>
</body>
</html>
<head>
<script src="CKEditor/ckeditor.js"></script>
<script src="http://code.jquery.com/jquery.min.js">
</script>
<?php
if (isset($_POST['Omschrijving'])){
echo '<pre>';
print_r( $_POST['Omschrijving']);
echo '</pre>';
}
?>
</head>
<body>
<?php
// include functie verbinden met database + verbinden met vriendenboek
include 'VerbindenmetDB.php'
?>
<?php
//Querry
$query = "SELECT * FROM vrienden";
//Gegevens uit query halen
$result = mysqli_query($conn, $query) or die ("query fout".mysqli_error($conn));
//Resultaat op scherm
echo "<table border='1'>";
while ( $record=mysqli_fetch_array($result) ) {
$ID=$record['ID'];
$Voornaam=$record['Voornaam'];
$Achternaam=$record['Achternaam'];
$Omschrijving=$record['Omschrijving'];
echo "<form id='Wijzigen' action='' method='post'><tr><td><input type='hidden' name='ID' id='ID' value='".$ID."'>
</td><td><input type='text' name='Voornaam' id='Voornaam' value='".$Voornaam."'>
</td><td><input type='text' name='Achternaam' id='Achternaam' value='".$Achternaam."'>
</td><td><input type='text' name='Omschrijving' id='Omschrijving' value='".$Omschrijving."'>
<form>
<textarea class='ckeditor' id='Omschrijving' name='Omschrijving' rows='10' cols='80'>
" . $Omschrijving . "
</textarea>
<script>CKEDITOR.replace( 'Omschrijving' );</script>
</form>
</td><td><input type='Submit' name='Insert' value='Wijzigen'></td></tr></form>";
}
echo "</table>";
if (isset($_POST['Wijzigen'])) {
$IDnieuw=$_POST['ID'];
$Voornaamnieuw=$_POST['Voornaam'];
$Achternaamnieuw=$_POST['Achternaam'];
$Omschrijvingnieuw=$_POST['Omschrijving'];
$query = "UPDATE vrienden
SET Voornaam = '$Voornaamnieuw', Achternaam = '$Achternaamnieuw', Omschrijving = '$Omschrijvingnieuw'
WHERE ID = '$IDnieuw' ";
mysqli_query ($conn,$query) ;
echo "gegevens zijn aangepast";
}
mysqli_free_result($result);
//Verbinding sluiten;
mysqli_close( $conn );
?>
</body>
</html>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 08/12/2015 18:39:50 door - Ariën -
Het beste is altijd om te kijken of een formulier verstuurd is, dan in plaats van te kijken of een bepaalde formulierknop is aangeroepen.
gebruik dus in plaats van lijn 47, dit:
Daarnaast is het onnodig om lijn 48 t/m 51 aan te maken. Je kan prima in je query de $_POST['Achternaam'] etc. gebruiken.
Let daarbij ook op SQL-injection, waarmee anderen redelijk eenvoudig toegang kunnen krijgen tot je database door het aanpassen van de queries. Gebruik daarom de mysqli_real_escape_string-functie op al je $_POST (en evt. $_GET, $_ENV en $_COOKIE)-variabelen.
Gewijzigd op 08/12/2015 18:46:29 door - Ariën -
Over die SQL injection weet ik. Dat is de volgende stap :) Bedankt iig voor de tip.
Of nog netter is om de OO versie van MySQLi te gebruiken, en je ->query() methode te extenden, zodat je altijd meteen foutafhandeling hebt. Het gaat wel een stapje verder!
- Ariën - op 08/12/2015 19:09:34:
TRUE geeft hij namelijk nooit terug, maar een resource
Dat is niet helemaal waar, van php.net:
Quote:
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
Bedankt voor de tips. Ik ben er uiteindelijk uit en hij werkt perfect.