Avatar billede joe_joe Novice
02. november 2006 - 09:34 Der er 12 kommentarer og
1 løsning

nyhedsscript med en db

jeg har skrevet følgende kode, fra en bog:

?>
<html>
<body>
<?
if(isset($_POST['indtastet_kodeord']) && $_POST['indtastet_kodeord'] == "kodeord")
{

echo "nyheden er tilføjet";
$db=mysql_connect("localhost","root","password");
mysql_select_db("nyheder", $db);
$nyhed_dato=time();
mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$nyhed_overskrift', '$nyhed_tekst')");

}else{

?>
<form method=post action=<? echo $_SERVER['PHP_SELF'];?>>
kodeord:<br>
<input type=password name="indtastet_kodeord">
overskrift:<br>
<input type=text name="nyhed_overskrift">
tekst:<br>
<textarea name=nyhed_tekst>her indtastes nyheden</textarea><br>
<input type=submit value="skriv">

</form>
<?
}
?>
</body>
</html>

men når jeg kører det, får jeg følgende fejl meddellelser:

?> nyheden er tilføjet
Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in c:\programmer\easyphp1-8\www\nyhed.php on line 9

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\programmer\easyphp1-8\www\nyhed.php on line 10

Notice: Undefined variable: nyhed_overskrift in c:\programmer\easyphp1-8\www\nyhed.php on line 12

Notice: Undefined variable: nyhed_tekst in c:\programmer\easyphp1-8\www\nyhed.php on line 12

Warning: mysql_query(): Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\programmer\easyphp1-8\www\nyhed.php on line 12

Warning: mysql_query(): A link to the server could not be established in c:\programmer\easyphp1-8\www\nyhed.php on line 12

de kommer efter jeg har indtastet data til databasen.

nogle der kan hjælpe mig?
Avatar billede joe_joe Novice
02. november 2006 - 09:36 #1
jeg bruger easy php
Avatar billede sw_red_6 Nybegynder
02. november 2006 - 09:50 #2
prøv det her:
<html>
<body>
<?
if(isset($_POST['indtastet_kodeord']) && $_POST['indtastet_kodeord'] == "kodeord")
{

echo "nyheden er tilføjet";
$db=mysql_connect("localhost","root","password");
mysql_select_db("nyheder", $db);
$nyhed_dato=time();
mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$_POST[nyhed_overskrift]', '$_POST[nyhed_tekst]')");

}else{

?>
<form method=post action=<? echo $_SERVER['PHP_SELF'];?>>
kodeord:<br>
<input type=password name="indtastet_kodeord">
overskrift:<br>
<input type=text name="nyhed_overskrift">
tekst:<br>
<textarea name=nyhed_tekst>her indtastes nyheden</textarea><br>
<input type=submit value="skriv">

</form>
<?
}
?>
</body>
</html>

og så skal du selvfølgelig sørge for at du har oprettet en database der hedder nyheder og en tabel der hedder nyheder, med de her felter: dato,overskrift,tekst
Avatar billede Slettet bruger
02. november 2006 - 09:57 #3
Man kan ikke bare skrive "nyheden er tilføjet", uden at lave et tjek på om den bliver tilføjet...

ex. 1.
if(mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$_POST[nyhed_overskrift]', '$_POST[nyhed_tekst]')")) {
echo "Nyheden er tilføjet";
} else {
echo "Der skete en fejl";
}


ex. 2
$query = mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$_POST[nyhed_overskrift]', '$_POST[nyhed_tekst]')");
if($query) {
echo "Nyheden er tilføjet";
} else {
echo "Der skete en fejl";
}
Avatar billede joe_joe Novice
02. november 2006 - 10:16 #4
når jeg bruger dit ex.1 sådan her:
<html>
<body>
<?
if(isset($_POST['indtastet_kodeord']) && $_POST['indtastet_kodeord'] == "kodeord")
{

echo "nyheden er tilføjet";
$db=mysql_connect("localhost","root","password");
mysql_select_db("nyheder", $db);
$nyhed_dato=time();
mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$nyhed_overskrift', '$nyhed_tekst')");

}else{

?>
<form method=post action=<? echo $_SERVER['PHP_SELF'];?>>
kodeord:<br>
<input type=password name="indtastet_kodeord">
overskrift:<br>
<input type=text name="nyhed_overskrift">
tekst:<br>
<textarea name=nyhed_tekst>her indtastes nyheden</textarea><br>
<input type=submit value="skriv">

</form>
<?
}
if(mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$_POST[nyhed_overskrift]', '$_POST[nyhed_tekst]')")) {
echo "Nyheden er tilføjet";
} else {
echo "Der skete en fejl";
}

?>
</body>
</html>

så får jeg følgende fejl:

nyheden er tilføjet
Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in c:\programmer\easyphp1-8\www\nyhed.php on line 8

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\programmer\easyphp1-8\www\nyhed.php on line 9

Notice: Undefined variable: nyhed_overskrift in c:\programmer\easyphp1-8\www\nyhed.php on line 11

Notice: Undefined variable: nyhed_tekst in c:\programmer\easyphp1-8\www\nyhed.php on line 11

Warning: mysql_query(): Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\programmer\easyphp1-8\www\nyhed.php on line 11

Warning: mysql_query(): A link to the server could not be established in c:\programmer\easyphp1-8\www\nyhed.php on line 11

Warning: mysql_query(): Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\programmer\easyphp1-8\www\nyhed.php on line 28

Warning: mysql_query(): A link to the server could not be established in c:\programmer\easyphp1-8\www\nyhed.php on line 28
Der skete en fejl
Avatar billede joe_joe Novice
02. november 2006 - 10:17 #5
og det samme med ex. 2.
Avatar billede Slettet bruger
02. november 2006 - 12:41 #6
fordi du har sat det op forkert...


<html>
<body>
<?
if(isset($_POST['indtastet_kodeord']) && $_POST['indtastet_kodeord'] == "kodeord")
{

$db=mysql_connect("localhost","root","password");
mysql_select_db("nyheder", $db);
$nyhed_dato=time();
if(mysql_query("insert into nyheder(dato,overskrift,tekst)values('$nyhed_dato', '$_POST[nyhed_overskrift]', '$_POST[nyhed_tekst]')")) {
    echo "Nyheden er tilføjet";
} else {
    echo "Der skete en fejl";
}

}else{

?>
<form method=post action=<? echo $_SERVER['PHP_SELF'];?>>
kodeord:<br>
<input type=password name="indtastet_kodeord">
overskrift:<br>
<input type=text name="nyhed_overskrift">
tekst:<br>
<textarea name=nyhed_tekst>her indtastes nyheden</textarea><br>
<input type=submit value="skriv">
</form>
<?
}
?>
</body>
</html>
Avatar billede joe_joe Novice
02. november 2006 - 13:37 #7
når jeg indsætter den kode, får jeg disse fejl meddellelser:

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in c:\programmer\easyphp1-8\www\nyhed.php on line 7

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\programmer\easyphp1-8\www\nyhed.php on line 8

Warning: mysql_query(): Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\programmer\easyphp1-8\www\nyhed.php on line 10

Warning: mysql_query(): A link to the server could not be established in c:\programmer\easyphp1-8\www\nyhed.php on line 10
Der skete en fejl
Avatar billede Slettet bruger
02. november 2006 - 17:16 #8
Fordi den ikke kan connecte til databasen.
Avatar billede hoeks Nybegynder
04. november 2006 - 16:07 #9
joe_joe, det er fordi dine databaseoplysninger er forkerte - ikke noget vi kan hjælpe dig med :)
Avatar billede Slettet bruger
04. november 2006 - 17:15 #10
Ser ud til at du bruger wamp?
Hvis ja skal din kode ændres:
til ingenting.
$db=mysql_connect("localhost","root","");
mysql_select_db("nyheder", $db);
Avatar billede joe_joe Novice
25. august 2011 - 09:14 #11
send et svar
Avatar billede joe_joe Novice
25. august 2011 - 09:46 #12
luk
Avatar billede joe_joe Novice
25. august 2011 - 09:46 #13
luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester