Avatar billede well_r Nybegynder
01. april 2001 - 11:37 Der er 11 kommentarer og
2 løsninger

jeg kan ikke finde fejlen:(

Jeg kan ikke få det her til at funke?

Hvor har jeg lavet en fejl!?
please help me :(


<?
if( $HTTP_POST_VARS[navn] && $HTTP_POST_VARS[overskrift] && $HTTP_POST_VARS[nyhed] && $HTTP_POST_VARS[email])
{
require(\"config.php\");
mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($database);
class opret_nyhed
{
function register()
{
$nar = func_num_args();
if( $nar != 4 )
return 0;
$args = func_get_args();
$result = MYSQL_QUERY(\"SELECT * FROM nyheder WHERE overskrift=\'$args[0]\'\");
if( ($num = mysql_numrows($result)) == 1 )
return 0;
if( !MYSQL_QUERY(\"INSERT INTO nyheder (navn, overskrift, nyhed, email)
VALUES(\'$args[0]\', \'$args[1]\', \'$args[2]\', \'$args[3]\')\") )
return 0;
return 1;
}
function display_error($errormsg)
{
echo $errormsg;
}
}
$nyhed = new opret_nyhed();
if( $nyhed->register($HTTP_POST_VARS [navn], $HTTP_POST_VARS [overskrift], $HTTP_POST_VARS [nyhed], $HTTP_POST_VARS [email]) ){
$msg = \"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;url=<http://www.web-zone.dk/2001-2/nyheder.php3>;
<? echo $variabel ?><?\\\" >\";
echo \" \";
}
else
echo \"<h3>desværre - nyheden findes allerede i databasen.</h3>\";
mysql_close();
}

if($msg) echo $msg;
?>
<form action=opret_nyheder.php3 method=post enctype=multipart/form-data>
<pre><table width=\"100%\" border=\"0\">
<tr>
<td width=\"67%\" height=\"19\">Skriv dit navn:</td>
<td width=\"33%\" height=\"19\">
<input type=text size=16 name=navn maxlength=16>
</td></tr><tr>
<td width=\"67%\">Nyhedens overskrift:</td><td width=\"33%\">
<input type=text size=16 name=overkrift maxlength=40>
</td></tr><tr>
<td width=\"67%\" height=\"31\">Selve nyheden</td><td width=\"33%\" height=\"31\">
<input type=text size=16 name=nyhed maxlength=255>
</td></tr><tr>
<td width=\"67%\">Din email adressse</td><td width=\"33%\">
<input type=text size=16 name=email maxlength=50>
</td></tr>

</table><input type=submit value=\"Tilføj nyhed\"></pre>


Det er mit sciprt..
Avatar billede barefoot Nybegynder
01. april 2001 - 11:54 #1
Du kunne jo godt lige skrive noget om hvad det er som der går galt, og hvor meget der virker.

Men du skal huske at have gåseøjne udenom brugernavn osv. når du prøver at få forbindelse til MySQL.
mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($database);
Skal ændres til:
mysql_connect(\"$dbhost\", \"$dbuser\", \"$dbpass\");
mysql_select_db(\"$database\");

Noget helt andet:
I toppen skriver du følgende.
if( $HTTP_POST_VARS[navn] && $HTTP_POST_VARS[overskrift] && $HTTP_POST_VARS[nyhed] && $HTTP_POST_VARS[email])
Du behøver ikke at skrive HTTP_POST_VARS[variabel] hver gang!
Du kunne ændre det til:
if( $navn && $overskrift && $nyhed && $email)

Så lidt længere nede skriver du:
<? echo $variabel ?><?\\\" >\";
Du skal huske at afslutte echo med \";\".
Sådan:
<? echo $variabel; ?><?\\\" >\";
echo \" \";
Hvorfor i alverden skriver du:
<?\\\" >\"; og echo \" \"; ?????
Og hvorfor skriver du <? igen når du er inde i php? Jeg ville ændre:
<? echo $variabel ?><?\\\" >\";
echo \" \";
til
echo $variabel;
Avatar billede barefoot Nybegynder
01. april 2001 - 11:55 #2
Det skulle have været et svar.
Avatar billede well_r Nybegynder
01. april 2001 - 12:09 #3
ok..jeg tester det lige så ser jeg om det virker! :)
Avatar billede well_r Nybegynder
01. april 2001 - 12:15 #4
Nope..still nothing!:(
Avatar billede barefoot Nybegynder
01. april 2001 - 12:24 #5
Prøv at gå ind på http://www.webcafe.dk/php/artikler/204/phpa204.php3
Læs artiklen så prøv så at bruge nogle af funktionerne.
Hvis du gør det vil du få at vide hvad der er som der går galt.
Som det er nu aner jeg ikke hvor meget der ikke virker og hvad der gør. Det gør det lidt svært at hjælpe.

Du bør nok også skrive hvar du har i config.php
Det er jo en fil som du henter ind i din kode. Eksisterer den fil overhovedet?
Hvis den gør vil jeg gerne se indholdet af den.
Avatar billede well_r Nybegynder
01. april 2001 - 12:31 #6
Ja..selvfølgelig eksisterer den..jeg har lavet den så jeg ikke behøver at skrive host, db, pass HVER gang:)
Avatar billede rasher Nybegynder
01. april 2001 - 12:42 #7
Hvilken fejl melder php?
Avatar billede well_r Nybegynder
01. april 2001 - 12:44 #8
jeg fandt ud af det!

jeg brugte en af mine gamle scripts og ændrede nogle forskellige steder...

se her

<html><title>The X-Zone Tag-Zone</title>
<body bgcolor=\"153580\" text=#FFFFFF link=\"#000000\" vlink=\"#CCCCCC\">
<div align=\"center\">
  <pre>&nbsp;<font size=\"5\">Velkommen til X-Zone</font>
</pre>
</div>
<div align=\"center\">
    Her kan du få dit navn registreret hos os så folk ikke kan komme ind på det:)
</div>
 
<?
if( $HTTP_POST_VARS[navn] && $HTTP_POST_VARS[overskrift])
{
    require(\"config.php\");
    mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($database);
    class UserLogin
    {
        function register()
        {
            $nar = func_num_args();
            if( $nar != 4 )
                return 0;
            $args = func_get_args();
            $result = MYSQL_QUERY(\"SELECT * FROM nyheder WHERE navn=\'$args[0]\' AND overskrift=\'$args[1]\' AND nyhed=\'$args[2]\' AND email=\'$args[3]\'\");
            if( ($num = mysql_numrows($result)) == 1 )
                return 0;
            if( !MYSQL_QUERY(\"INSERT INTO nyheder (navn, overskrift, nyhed, email)
                              VALUES(\'$args[0]\', \'$args[1]\', \'$args[2]\', \'$args[3]\')\") )
                return 0;
            return 1;
        }
        function display_error($errormsg)
        {
            echo $errormsg;
        }
    }
$tagwall = new UserLogin();
// if( $tagwall->register($HTTP_POST_VARS [navn], $HTTP_POST_VARS [overskrift], $HTTP_POST_VARS [nyhed], $HTTP_POST_VARS [email]) ){
if( $tagwall->register($HTTP_POST_VARS [navn], $HTTP_POST_VARS [overskrift], $HTTP_POST_VARS [nyhed], $HTTP_POST_VARS [email]) ){
$msg = \"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;url=nyheder.php3;
<? echo $variabel ?><?\\\" >\";
echo \" \";
}
else
echo \"<h3>desværre - brugernavn allerede registreret - vælg et andet</h3>\";
mysql_close();
}

if($msg) echo $msg;
?>
<form action=\"opret.php\" method=post enctype=\"multipart/form-data\">
  <div align=\"center\"></div>
  <div align=\"center\"> </div>
  <pre><table width=\"100%\" border=\"0\">
    <tr>
      <td width=\"67%\">Skriv dit navn:</td>
      <td width=\"33%\">
        <input type=text size=16 name=navn maxlength=16>
      </td>
    </tr>
    <tr>
      <td width=\"67%\">Skriv nyhedens overskrift:</td>
      <td width=\"33%\">
        <input type=pass size=16 name=overskrift maxlength=16>
      </td>
    </tr>
    <tr>
      <td width=\"67%\">Skriv selve nyheden:</td>
      <td width=\"33%\">
        <input type=pass size=16 name=nyhed maxlength=16>
      </td>
    </tr>
    <tr>
      <td width=\"67%\">Skriv din email adresse:</td>
      <td width=\"33%\">
        <input type=pass size=16 name=email maxlength=16>
      </td>
    </tr>
  </table><input type=submit value=\"Opret\"> Vil du se de nuværende brugere? <a href=\"view.php\"><font color=\"#FFFFCC\">klik</font></a></pre>
</form>
</body></html>
</body>
</html>
Avatar billede well_r Nybegynder
01. april 2001 - 12:45 #9
du får 7 point da du ikke gav mig det endelige svar..og fordi du gav mig et link.. :)
Avatar billede mortenfn Nybegynder
01. april 2001 - 12:58 #10
prøv at start dit script sådan:

if(!$navn and !$overskrift and !$nyhed and !$email);
else
{
Avatar billede mortenfn Nybegynder
01. april 2001 - 12:59 #11
øv for sent
Avatar billede barefoot Nybegynder
01. april 2001 - 13:01 #12
finno:-)
Avatar billede rasher Nybegynder
01. april 2001 - 13:02 #13
Det andet var forøvrigt også smartere. For det første er det ikke alle steder at GCP variable kan tilgåes direkte. For det andet er man ved at bruge HTTP_POST_VARS sikker på at det er en POST request man får input\'sene fra, hvis det betyder noget.
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