Mysql instalatie script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sam Koster

Sam Koster

11/10/2009 05:10:00
Quote Anchor link
Ik ben al een paar dagen bezig om een instalatie scriptje te maken voor mijn server, waarmee ik gemakkelijk mysql gegevens kan invoeren, zonder steeds naar de phpmyadmin paginas te gaan, maar gewoon gemakkelijk via de administratie pagina van mijn site. Dit is wat ik nu heb, maar ik krijg steeds een vreemde melding:

mysql.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
?>


mysql_update.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();

 ?>


Voorbeeld mysql quiry:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
CREATE TABLE IF NOT EXISTS `test` (
  `content` mediumtext NOT NULL
);


En de foutmelding die hierbij komt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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?
 
PHP hulp

PHP hulp

25/11/2024 07:01:07
 
Michael -

Michael -

11/10/2009 11:39:00
Quote Anchor link
Mis je niet een regel op 't eind? Weet niet of 't heel veel uit maakt hoor.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
CREATE TABLE IF NOT EXISTS test (
  content mediumtext NOT NULL
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
TJVB tvb

TJVB tvb

11/10/2009 11:53:00
Quote Anchor link
die error heeft het over NOT NULLrn, waar komt die rn vandaag?
Turmin wat jij zegt gaat over de engine, hij pakt de default als je die niet meeneemt;
 
Sam Koster

Sam Koster

11/10/2009 12:22:00
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

11/10/2009 13:05:00
Quote Anchor link
klinkt als een newline waarvan de backslashes gestript worden.
 
- SanThe -

- SanThe -

11/10/2009 13:08:00
Quote Anchor link
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.
 
Steen

steen

11/10/2009 14:07:00
Quote Anchor link
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.
 
- SanThe -

- SanThe -

11/10/2009 14:40:00
Quote Anchor link
Nog een noot:
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.
 
Sam Koster

Sam Koster

11/10/2009 14:41:00
Quote Anchor link
Daar ben ik het mee eens, maar gelukkig zijn de pagina's goed beveiligd. Het systeem draait momenteel ook alleen op een home web-server, samen met een flash media streaming server. Gezamelijk dus een groot project, waar al een paar weken werk in zit.

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...
 
Sam Koster

Sam Koster

11/10/2009 20:56:00
Quote Anchor link
probleem is inmiddels opgelost. Mischien een beetje omslachtig maar ik heb nu dit maar staan:

Onderaan functions.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
function stro_replace($search, $replace, $subject)
{
    return strtr( $subject, array_combine($search, $replace) );
}


Bovenin mysql_update.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$search = array('rn');
$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::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Sam Koster
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.