Hallo, ik ben bezig met een website...
Alleen het werkt niet, want bij toevoegen.php komt het niet in database.
en bij geefweer.php weet ik niet of het werkt omdat er niks in database staat. De gegevens moeten in de tabel aflevering komen...

uitgevoerde sql:
CREATE TABLE `aflevering` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`naam` VARCHAR( 255 ) NOT NULL ,
`datum` VARCHAR( 10 ) NOT NULL ,
`url` VARCHAR( 2500 ) NOT NULL ,
`titel` VARCHAR( 2500 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
);


config.php

<?
$dburl="localhost";
$dbuser="-.-";
$dbpass="-.-";
mysql_connect("$dburl","$dbuser","$dbpass");
?>


geefweer.php
<?php
include 'config.php';
mysql_query('*SELECT id, titel, FROM aflevering');
?>


toevoegen.php
<?php
include 'config.php';
$verzend = $_POST['verzend'];
$naam= $_POST['naam'];
$datum= $_POST['datum'];
$url= $_POST['url'];
$titel= $_POST['titel'];
$id= $_POST['id'];

if ($verzend && $naam && $datum && $url && $titel && $id) {
mysql_query("INSERT INTO aflevering (naam, datum, url, titel, id) VALUES ('".$naam."', '".$datum."', '".$url."', '".$titel."', '".$id."')");
                          echo "U aflevering ".$titel." is succesvol geplaatst.";
                                      
        }else{
?>
                <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
                <b>naam: </b><br /><input type="text" name="naam"><br />
                <b>datum: </b><br /><input type="text" name="datum"><br />
                <b>url: </b><br /><input type="text" name="url"><br />
                <b>titel: </b><br /><input type="text" name="titel"><br />
                <b>id: </b><br /><input type="text" name="id"><br />
                <input type="submit" name="verzend" value="Verzenden" />
                </form>
<?php
        }
?> 


Nog iets over het formulier, van toevoegen.php, hoe zorg je dat het vak url ongeveer zo groot is als het vak waar je een bericht op dit forum typt is?

Als iemand kan helpen, bedankt!
Dit is tekst en geen datum
`datum` VARCHAR( 10 ) NOT NULL ,

$vars niet tussen quotes
mysql_connect("$dburl","$dbuser","$dbpass");

Gebruik dubbele quotes omdat in de query enkele quotes worden gebruikt. En wat doet die * daar? Waar is de foutafhandeling?
mysql_query('*SELECT id, titel, FROM aflevering');

Copiƫren is niet nuttig. Kost alleen maar extra geheugen.
$naam= $_POST['naam'];

Lees eens over sql-injection. Je INSERT is lek.
Dat van varchar komt omdat het in tekst komt, 17 okt bijvoorbeeld.

dat van die vars dus '$var'?

SELECT id, titel, FROM aflevering moet het zeker zijn??

en van die sql-injection snap ik niet wat je bedoelt.
`datum` DATETIME NOT NULL ,

mysql_connect($dburl, $dbuser, $dbpass);

mysql_query("SELECT id, titel FROM aflevering");

Lees eens over sql-injection. Je INSERT is lek. GOOGLE.
Moet je niet nog ergens [php]mysql_select_db[/php] hebben staan?
En moet je niet de user-input controleren? En vooral niet direct in je query zetten.
Henk schreef op 01.11.2008 15:44
Moet je niet nog ergens [php]mysql_select_db[/php] hebben staan?
En moet je niet de user-input controleren? En vooral niet direct in je query zetten.

db select nog niet aangedacht, en die pagina word nog beveiligt, dus dan kan alleen ik er bij.

edit, van dat sql injection, ik zie dat gevaarlijk is, maar hoe moet ik het dan doen?
ralph schreef op 01.11.2008 15:46
db select nog niet aangedacht, en die pagina word nog beveiligt, dus dan kan alleen ik er bij.

No offence maar als ik zie hoe je de boel gewoon in je query pleurt vraag ik me af hoe goed die beveiliging gaat zijn.
je kan toch de map beveiligen met .htacces?
Dan kun jij nog steeds je eigen data verprutsen aangezien je alles gewoon meteen uitvoert. Kijk eens naar [php]mysql_real_escape_string[/php]
Met dat mysql_real_escape_string hoe moet je dat doen,,

en waarom werkt toevoegen.php niet?

edit:
config.php aangepast
<?
mysql_connect('localhost','...','...');
mysql_select_db('aflevering')
?>

Reageren