Mysql instalatie script
mysql.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php include "incl/temp_header.php"; ?>
<div class="notification information png_bg">
<a href="#" class="close"><img src="resources/images/icons/cross_grey_small.png" title="Close this notification" alt="close" /></a>
<div>
Mysql gegevens toevoegen/updaten/bewerken.
</div>
</div>
<?
echo "<form action='mysql_update.php' method='post'>";
echo "<textarea rows='20' cols='90' name='content'></textarea><br><br>";
echo "<input type='Submit' value='Opslaan' class=\"button\">";
echo "</form>";
?>
<div class="notification information png_bg">
<a href="#" class="close"><img src="resources/images/icons/cross_grey_small.png" title="Close this notification" alt="close" /></a>
<div>
Mysql gegevens toevoegen/updaten/bewerken.
</div>
</div>
<?
echo "<form action='mysql_update.php' method='post'>";
echo "<textarea rows='20' cols='90' name='content'></textarea><br><br>";
echo "<input type='Submit' value='Opslaan' class=\"button\">";
echo "</form>";
?>
mysql_update.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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
include "incl/iframe_header.php";
include "connect.php"; //mysql db connection here
$sql=$_POST['content'];
$result = mysql_query($sql);
if($result == 1)
{
?>
<div class="notification success png_bg">
<a href="#" class="close"><img src="resources/images/icons/cross_grey_small.png" title="Close this notification" alt="close" /></a>
<div>
Database succesvol bijgewerkt!
</div>
</div>
<?
}
else
{
?>
<div class="notification error png_bg">
<a href="#" class="close"><img src="resources/images/icons/cross_grey_small.png" title="Close this notification" alt="close" /></a>
<div>
Er is iets fout gegaan. Lees hieronder wat er is fout gegaan!
</div>
</div>
<?
echo mysql_error();
}
mysql_close();
?>
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
include "incl/iframe_header.php";
include "connect.php"; //mysql db connection here
$sql=$_POST['content'];
$result = mysql_query($sql);
if($result == 1)
{
?>
<div class="notification success png_bg">
<a href="#" class="close"><img src="resources/images/icons/cross_grey_small.png" title="Close this notification" alt="close" /></a>
<div>
Database succesvol bijgewerkt!
</div>
</div>
<?
}
else
{
?>
<div class="notification error png_bg">
<a href="#" class="close"><img src="resources/images/icons/cross_grey_small.png" title="Close this notification" alt="close" /></a>
<div>
Er is iets fout gegaan. Lees hieronder wat er is fout gegaan!
</div>
</div>
<?
echo mysql_error();
}
mysql_close();
?>
Voorbeeld mysql quiry:
En de foutmelding die hierbij komt:
Code (php)
1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'content` mediumtext NOT NULLrn)' at line 1
Heeft iemand een idee wat ik fout doe of wat ik hier mis?
Turmin wat jij zegt gaat over de engine, hij pakt de default als je die niet meeneemt;
dat zie ik dus nu net pas. Er zit verder niks om de pagina mysql.php, behalve een database connectie. Iemand een idee waar het vandaan kan komen? Web-browser mischien?
klinkt als een newline waarvan de backslashes gestript worden.
Die rn komt waarschijnlijk van een of andere enter. (rn was waarschijnlijk \r\n) Geen backtics gebruiken, dat kan er namelijk mee te maken hebben.
Niet handig dit, als iemand dan je account zou hacken heeft hij/zij direct toegang tot de database. Je kunt beter phpmyadmin bookmarken en bijvoorbeeld je browser het wachtwoord laten onthouden, net zo makkelijk.
if(!session_is_registered(myusername)){
session_is_registered() is antiek en moet je niet gebruiken. Gebruik $_SESSION['...']. En is myusername een contante? Zo nee, gebruik quotes.
Ik ben zelf niet zon voorstander van phpmyadmin, aangezien ik het liefst alles onder 1 dak heb, zonder extra instalaties te hoeven doen indien ik dit project ergens anders onder ga brengen.
Veilig is het dus wel (veel controlle's, htpass beveiligingen etc) en het nut hiervan is bij deze ook even uitgelegd;)
Quote:
Die rn komt waarschijnlijk van een of andere enter. (rn was waarschijnlijk \r\n) Geen backtics gebruiken, dat kan er namelijk mee te maken hebben.
is hiervan dan een stukje str bekend o.i.d?? Ik wil wel gewoon graag volledige mysql quiries toevoegen zonder steeds de backslash weg te halen en er een hele regel van te maken...
Onderaan functions.php:
Code (php)
1
2
3
4
2
3
4
function stro_replace($search, $replace, $subject)
{
return strtr( $subject, array_combine($search, $replace) );
}
{
return strtr( $subject, array_combine($search, $replace) );
}
Bovenin mysql_update.php:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$search = array('rn');
$replace = array('');
$subject = $sql;
$out = stro_replace($search, $replace, $subject);
$result = mysql_query($out);
$replace = array('');
$subject = $sql;
$out = stro_replace($search, $replace, $subject);
$result = mysql_query($out);
Met deze oplossing hoop ik ook andere te helpen, dus zet ik het er maar even netjes bij:)
@SanThe - thnx voor de tip ivm de sessions. Ik heb het inmiddels netjes aangepast en ga denk ik ook even wat session vars toevoegen voor beveiliging (random chars en numbers moet denk ik wel aardig werken tegen session hijacks)
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Sam Koster