Avatar billede akki Nybegynder
18. februar 2003 - 08:41 Der er 16 kommentarer

for en mærkelig fejl.. brug for HJÆLP

Hey..

Jeg har netop sat en Win2000 server op med php og mysql.

har lavet en gæste bog, som har virket på min gamle server.
scriptet ser sådan ud.

**********bog.php*******************

  <?
$db = mysql_connect("localhost","www158","xivkkgga");
mysql_select_db("www158",$db);
if ($skriv)
{
    $Besked = str_replace("\n","<br>",$Besked);
    $dato_array = getdate();
    $Dato = $dato_array["mday"] . "/". $dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO cv_bog (Navn, Email, Dato, Besked) VALUES ('$Navn','$Email','$Dato','$Besked')");
}

?>
</font>
<center>
  <form method=post action="bog.php">
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=#FF9933>
    <input type=hidden name=skriv value=1>
  <font color="#000000">Navn:
  <input type=text NAME=Navn>
  <br>
  Email:</font>
  <input type=text NAME=Email>
    <br>
    <textarea name=Besked Cols=30 rows=5></textarea>
    <br>
    <input type=submit value="send">
    </font>
  </form>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <br>
  </font>

  <table>
    <?
    if(empty($start)) {
$start = 0;
}
$limit = 3; // Antallet af rækker der skal vises per gang

$foresp = mysql_query("SELECT Navn, Email, Dato, Besked FROM cv_bog ORDER BY id DESC LIMIT $start, $limit");
while($data =mysql_fetch_row($foresp)){
   
    print "<table border=0 width=100% class=forum><td>";
    print "<font size=2 color=#FF9933 face=Verdana, Arial, Helvetica, sans-serif><b>Skrevet af : <A HREF=\"mailto:$data[1]\">$data[0]</b></font>";
    print "<td ALIGN=right><font size=2 color=#FF9933 face=Verdana, Arial, Helvetica, sans-serif> <b>d. $data[2]</b></font></td></tr>\n </font>";

    print "<table border=0 width=100% ><tr><td>\n";
    print "<font size=2 color=#000000 face=Verdana, Arial, Helvetica, sans-serif>$data[3]</font></td></tr>\n";
    print "<tr><td></td></tr>\n";
    print "</table><br>";
   
   
        }
$query = mysql_query("SELECT id FROM cv_bog");

if($start >= $limit) {
if($start < mysql_num_rows($query)+$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start - $limit).'"><font size=2 color=#FF9933 face=Verdana, Arial, Helvetica, sans-serif>&laquo;&laquo; Tilbage</font></a> &nbsp; ';
}
}

if($start <= mysql_num_rows($query)-$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start + $limit).'"><font size=2 color=#FF9933 face=Verdana, Arial, Helvetica, sans-serif>Frem &raquo;&raquo;</font></a>';
}
?>

når jeg så prøver at få siden vist, for jeg denne fejl:

Notice: Undefined variable: skriv in :\inetpub\wwwroot\bog.php on line 4

kan ikke helt forstå det..

har lige ledes også problemer med mit login, var den også fortæller mig  Notice: Undefined variable..

er der nogen der kan hjælpe
Avatar billede xyborx Nybegynder
18. februar 2003 - 08:45 #1
Det er ikke ligefrem en fejl. Blot en advarsel om en mulig fejl.
error_reporting(E_ALL ^ E_NOTICE i toppen skulle kunne gøre det.
(http://www.php.net/manual/en/function.error-reporting.php)
Avatar billede xyborx Nybegynder
18. februar 2003 - 08:46 #2
Hov.. Der manglede self. lige en slut-parentes..
error_reporting(E_ALL ^ E_NOTICE);
Avatar billede xyborx Nybegynder
18. februar 2003 - 08:49 #3
Den kan iøvrigt også sættes i php.ini:
error_reporting = E_ALL & ~E_NOTICE
Avatar billede xyborx Nybegynder
18. februar 2003 - 08:52 #4
Ser lige at du har glemt at slette dit brugernavn og password fra koden, inden du postede.. :/ Det kan være vi skal få en co-admin til at slette spørgsmålet, så der ikke bliver offentliggjort følsomme oplysninger..
Avatar billede akki Nybegynder
18. februar 2003 - 09:30 #5
det gør ikke noget med den kode..

den ligger nemlig lokalt, og er ikke en eksten server...
Avatar billede erikjacobsen Ekspert
18. februar 2003 - 09:59 #6
Du skal blot ændre
if ($skriv)
til
if (isset($skriv))

Lad være med at ændre din opsætning i PHP - den giver dig gode
oplysninger om potentielle problemer.
Avatar billede akki Nybegynder
18. februar 2003 - 10:07 #7
det virker stadig ikke.. jeg for ingen fejl.. men kan stadig ikke skrive i min gæstebog.. men kan godt læse fra den...

min admin del melder blot denne fejl.. No input file specified. ...
Avatar billede sukos Juniormester
18. februar 2003 - 10:18 #8
if(isset($_POST['skriv'])) {
............................


http://dk.php.net/manual/en/security.registerglobals.php


Med andre ord, skal du ændre dine vars, så de svarer til $_POST, $_GET m.m.
Avatar billede akki Nybegynder
18. februar 2003 - 10:33 #9
nu er den næsten ved at være der tror jeg..

for nu ser det ud som om den skriver noget.. men kun datoen.. der bliver ikke sat noget ind i de andre tabeler...
Avatar billede akki Nybegynder
18. februar 2003 - 10:42 #10
for nu disse fejl.



Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\book.php on line 57

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\book.php on line 77


mit script ser sådan ud nu:

<html>
<head>
<title>Min gæstebogt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css-script/bund.CSS" rel="stylesheet" type="text/css">
</head>
<style>
BODY {    scrollbar-3d-light-color:#ffffff;
          scrollbar-arrow-color:#000000;
          scrollbar-base-color:#000000;
          scrollbar-dark-shadow-color:#000000;
          scrollbar-face-color:#eceae9;
          scrollbar-highlight-color:#eceae9;
          scrollbar-shadow-color:#eceae9}
</style>
<body bgcolor="#eceae9" text="#000033" link="#000033">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<?
$db = mysql_connect("localhost","www158","xivkkgga");
mysql_select_db("www158",$db);
if(isset($_POST['skriv']))
{
    $Besked = str_replace("\n","<br>",$Besked);
    $dato_array = getdate();
    $Dato = $dato_array["mday"] . "/". $dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO cv_bog (Navn, Email, Dato, Besked) VALUES ('$Navn','$Email','$Dato','$Besked')");
}

?>
</font>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=skriv value=1>
    Navn:
    <input type=text NAME=Navn>
    <br>
    Email:
    <input type=text NAME=Email>
    <br>
    <textarea name=Besked Cols=30 rows=5></textarea>
    <br>
    <input type=submit value="send">
    </font>
  </form>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <br>
  </font>
  <table>
    <?
    if(empty($start)) {
$start = 0;
}
$limit = 5; // Antallet af rækker der skal vises per gang

$foresp = mysql_query("SELECT Navn, Email, Dato, Besked FROM cv_bog ORDER BY id DESC LIMIT $start, $limit");
while($data =mysql_fetch_row($foresp)){
   
    print "<table border=0 width=500 bgcolor=#ac9d91><td>";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Skrevet af : <A HREF=\"mailto:$data[1]\">$data[0]</font>";
    print "<td ALIGN=right><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif> d. $data[2]</font></td></tr>\n </font>";

    print "<table border=0 width=500 bgcolor=#cdd0bd><tr><td>\n";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>$data[3]</font></td></tr>\n";
    print "<tr><td></td></tr>\n";
    print "</table><br>";
   
        }
        $query = mysql_query("SELECT id FROM guestbook");

if($start >= $limit) {
if($start < mysql_num_rows($query)+$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start - $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>&laquo;&laquo; Tilbage</font></a> &nbsp; ';
}
}

if($start <= mysql_num_rows($query)-$limit) {
#      echo '<a href="'.basename($PHP_SELF).'?start='.($start + $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Frem &raquo;&raquo;</font></a>';
}
?>
  </table>
</center>
</body>
</html>

hvad gør jeg forkert..

dette sript virker på en anden server....
Avatar billede sukos Juniormester
18. februar 2003 - 10:46 #11
$Besked = str_replace("\n","<br>",$_POST['Besked']);

("INSERT INTO cv_bog (Navn, Email, Dato, Besked) VALUES ('$Navn','$Email','$Dato','$Besked')");

skal måske være:

("INSERT INTO cv_bog (Navn, Email, Dato, Besked) VALUES ('$_POST[Navn]','$_POST[Email]','$Dato','$Besked')");
Avatar billede sukos Juniormester
18. februar 2003 - 10:47 #12
Men brug gerne:
mysql_query("INSERT INTO cv_bog (Navn, Email, Dato, Besked) VALUES ('$Navn','$Email','$Dato','$Besked')") or die (mysql_error());
til at teste med, så du får en besked om hvilken fejl du laver
Avatar billede akki Nybegynder
18. februar 2003 - 11:01 #13
jeg har gjort sådan her :::
<html>
<head>
<title>Min gæstebogt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css-script/bund.CSS" rel="stylesheet" type="text/css">
</head>
<style>
BODY {    scrollbar-3d-light-color:#ffffff;
          scrollbar-arrow-color:#000000;
          scrollbar-base-color:#000000;
          scrollbar-dark-shadow-color:#000000;
          scrollbar-face-color:#eceae9;
          scrollbar-highlight-color:#eceae9;
          scrollbar-shadow-color:#eceae9}
</style>
<body bgcolor="#eceae9" text="#000033" link="#000033">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<?
$db = mysql_connect("localhost","www158","xivkkgga");
mysql_select_db("www158",$db);
if(isset($_POST['skriv']))
{
    $Besked = str_replace("\n","<br>",$_POST['Besked']);
    $Navn = str_replace("\n","<br>",$_POST['Navn']);
    $Email = str_replace("\n","<br>",$_POST['Email']);
    $dato_array = getdate();
    $Dato = $dato_array["mday"] . "/". $dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO cv_bog (Navn, Email, Dato, Besked) VALUES ('$Navn','$Email','$Dato','$Besked')") or die (mysql_error());
}

?>
</font>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=skriv value=1>
    Navn:
    <input type=text NAME=Navn>
    <br>
    Email:
    <input type=text NAME=Email>
    <br>
    <textarea name=Besked Cols=30 rows=5></textarea>
    <br>
    <input type=submit value="send">
    </font>
  </form>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <br>
  </font>
  <table>
    <?
    if(empty($start)) {
$start = 0;
}
$limit = 5; // Antallet af rækker der skal vises per gang

$foresp = mysql_query("SELECT Navn, Email, Dato, Besked FROM cv_bog ORDER BY id DESC LIMIT $start, $limit");
while($data =mysql_fetch_row($foresp)){
   
    print "<table border=0 width=500 bgcolor=#ac9d91><td>";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Skrevet af : <A HREF=\"mailto:$data[1]\">$data[0]</font>";
    print "<td ALIGN=right><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif> d. $data[2]</font></td></tr>\n </font>";

    print "<table border=0 width=500 bgcolor=#cdd0bd><tr><td>\n";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>$data[3]</font></td></tr>\n";
    print "<tr><td></td></tr>\n";
    print "</table><br>";
   
        }
        $query = mysql_query("SELECT id FROM guestbook");

if($start >= $limit) {
if($start < mysql_num_rows($query)+$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start - $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>&laquo;&laquo; Tilbage</font></a> &nbsp; ';
}
}

if($start <= mysql_num_rows($query)-$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start + $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Frem &raquo;&raquo;</font></a>';
}
?>
  </table>
</center>
</body>
</html>



men mangler nu kun at få rettet denne fejl.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\book.php on line 79
Avatar billede nyhjem Nybegynder
18. februar 2003 - 17:34 #14
Bare en hurtig kommentar til Akki.
Når du sender scripts og/eller andre ting til et forum er det en meget dårlig ide at skrive ens passwords.
Jeg kan se at du udenviddere har dit MySQL brugernavn os password stående i dit script. Dette gør at eventuelle ondsindede personer kan gå ind i din database og læse plus slette alle indlæg og tabeller.
Dette er en dårlig ide, så husk det til en anden gang :)
Måske kunne du endda få en admin her fra sitet til at rette dit indlæg til så passworded ikke længere står der :)
Avatar billede xyborx Nybegynder
21. februar 2003 - 20:04 #15
nyhjem: Det har jeg allerede gjort opmærksom på, men det er åbenbart en lokal server uden adgang fra internettet. Et godt råd: læs alle indlæggene før du poster ;) hehe
Avatar billede nyhjem Nybegynder
22. februar 2003 - 14:23 #16
xyborx >> Heh, du har ret :) Har bare efterhånden set så mange der sender sit password ud, også til deres betalings webhoteller, så er begyndt bare at smide en kommentar til dem allesammen.
Der er jo formentelig nogen som kunne finde på at misbruge det :)
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