Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 20:27 Der er 21 kommentarer og
1 løsning

Mangler stor hjælp til en masse småfejl

Jeg har nu set så meget på det her, at mine øjne sikkert ligner rosiner.
Jeg er ved at prøve at lave et ”opret bruger” <form> men ikke alt vil helt som jeg vil.
I kan se hele koden med PHP her: http://www.a-mweb.dk/Portal/Problem.txt
I kan se ”opret bruger” siden her: http://www.a-mweb.dk/Portal/WWW_Den-lille-kogebog_MySQL.php?profil=opret

Følgende fejl har jeg fundet, men ikke i stand til at rette (i kan søge efter koden jeg har skrævet men det er jo ikke sikkert det er der den er gal)…
Brugernavn
$num_rows = mysql_num_rows($result);
Af en og anden grund bliver $num_rows altid 1, uanset hvad.
Der er en bruger som hedder test.
Post nr.
if (isset($_POST['postnr']))
denne valider slet ikke noget, den skiver heler ikke ” – koret!”
Det er da
Avatar billede erikjacobsen Ekspert
14. januar 2009 - 20:29 #1
I dit første link vil det hjælpe lidt at rette

            if ($num_rows = 1)
            {
            $brugernavn = "$spango - Brugernavnet findes allerede - velg et andet <br />$num_rows<br />$query<br />$result! $spanend";
            $fejl = "1";
            }
            elseif ($num_rows = 0)
            {
            $brugernavn = " - Korekt!";
            }


til

            if ($num_rows == 1)
            {
            $brugernavn = "$spango - Brugernavnet findes allerede - velg et andet <br />$num_rows<br />$query<br />$result! $spanend";
            $fejl = "1";
            }
            elseif ($num_rows == 0)
            {
            $brugernavn = " - Korekt!";
            }
Avatar billede erikjacobsen Ekspert
14. januar 2009 - 20:31 #2
Hvad er det du vil opnå med:

  if (isset($_POST['postnr']))

Du spørge om variablen $_POST['postnr'] findes - du spørger ikke om den indeholder noget.
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 20:38 #3
1 det virkede, tænk at jeg kunne overse det :D
2 der kommer også noget efter...
if (isset($_POST['postnr']))
    {
        if ($_POST['postnr'] == "Post nr.")
        {
        $post = "$spango - Skiv dit postnr! $spanend";
        }
        elseif (preg_match("/^[0-9]{4}$/", $_POST['postnr']))
        {
        $post = " - Korekt!";
        }
        else
        {
        $post = "$spango - Ukendt postnr.! $spanend";
        $fejl = "1";
        }
    }
Avatar billede jakobdo Ekspert
14. januar 2009 - 20:42 #4
Hvorfor ikke samle disse 2:
if (isset($_POST['postnr']))
    {
        if ($_POST['postnr'] == "Post nr.")
        {
til:
if(isset($_POST['postnr']) && $_POST['postnr'] == "Post nr."){
....
Avatar billede g1mzee Nybegynder
14. januar 2009 - 20:42 #5
du må meget undskylde, men af hvad jeg har set.. så er den kode virkeligt ikke godt lavet.
du har 4014325 af echo.. Du skulle overveje at sætte nogle af dem sammen :)
//// Din tekst ////
echo '<h2>Opret bruger</h2>';
echo '<form method="post" action="WWW_Den-lille-kogebog_MySQL.php?profil=opret">';
echo '<div><input type="hidden" name="opret" value="tjek" /></div>';
echo '<table>';
echo '<tr>';
echo '<td>';
echo '</td>';
echo '<td>';
echo '<span style="font-size:75%;position:relative;top:5px;left:0px;">Max 60 tegn'.$navn.'</span><br />';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<strong>Dit navn: </strong>';
echo '</td>';
echo '<td>';

////min måde ////
echo '<h2>Opret bruger</h2>
<form method="post" action="WWW_Den-lille-kogebog_MySQL.php?profil=opret">
<div>
  <input type="hidden" name="opret" value="tjek" /></div>
    <table>
      <tr>
        <td>
        </td>
        <td>
          <span style="font-size:75%;position:relative;top:5px;left:0px;">Max 60 tegn'.$navn.'</span><br />";

OG så videre derned af..
hav nogle niveu'er i din kode. sådan som jeg gjorder med table, og så længere inde er tr, hvis du kan se logikken i det, det gør det meget nemmere at holde styr på
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 20:44 #6
Nå nu fandt jeg enlig selv den sidste, jeg havde bare glemt at sætte $porst og ikke $ost
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 20:46 #7
Ja det kan jeg godt se ville være bedre ;D
Men det taget lidt tid at blive mester til php startede for nogle uger siden :)
Avatar billede g1mzee Nybegynder
14. januar 2009 - 20:59 #8
Og tiden løber stadigvæk ;)
Det er meget nemmere kode og er faktisk også nemmere for dig at lave :p
hvad vil du da lave?
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 21:48 #9
Hvad for en tid løber stadigvæk ?
Det er  såmen ren hobbi, men jeg har fået en masse tid så jeg forsøge mig ud i PHP og MySQL, og som mision lave en kogebog, hvor jeg kan indsættet nogle opskrifter og skirve om de er "biopatisk venlige", det har familien nemlig spurgt lidt om, om jeg ikke kunne lave :D

Men jeg har stadig et lille problem, som ikke kan ses i txt dokumentet, dette virker ikke, den skiver :Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /dennefil.php on line 432

line 432 er $1 = $_POST['navn'];

elseif ($fejl == "0")
{
$1 = $_POST['navn'];
$2 = $_POST['opretbrugernavn'];
$3 = $_POST['opretkodeord'];
$4 = $_POST['by'];
$5 = $_POST['postnr'];
$6 = $_POST['vej'];
$7 = $_POST['email'];

echo 'Alt er indtastet rigtigt<br />';

//<
$send = "INSERT INTO `kogebogen-bruger` (`navn`,`brugernavn`,`kodeord`,`by`,`postnr`,`vej`,`e-mail`) VALUES ('$1', '$2', '$3', '$4', '$5', '$6', '$7')";

mysql_query("$send") OR DIE(mysql_error());
}
?>
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 21:49 #10
Undskyld dette !

Hvad for en tid løber stadigvæk ?
Det er  samen ren hobbi, men jeg har fået en masse tid så jeg forsøge mig ud i PHP og MySQL, og som mission lave en kogebog, hvor jeg kan indsætte nogle opskrifter og skrive om de er "biopatisk venlige", det har familien nemlig spurgt lidt om, om jeg ikke kunne lave :D

Men jeg har stadig et lille problem, som ikke kan ses i txt dokumentet, dette virker ikke, den skiver :Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /dennefil.php on line 432

line 432 er $1 = $_POST['navn'];

elseif ($fejl == "0")
{
$1 = $_POST['navn'];
$2 = $_POST['opretbrugernavn'];
$3 = $_POST['opretkodeord'];
$4 = $_POST['by'];
$5 = $_POST['postnr'];
$6 = $_POST['vej'];
$7 = $_POST['email'];

echo 'Alt er indtastet rigtigt<br />';

//<
$send = "INSERT INTO `kogebogen-bruger` (`navn`,`brugernavn`,`kodeord`,`by`,`postnr`,`vej`,`e-mail`) VALUES ('$1', '$2', '$3', '$4', '$5', '$6', '$7')";

mysql_query("$send") OR DIE(mysql_error());
}
?>
Avatar billede erikjacobsen Ekspert
14. januar 2009 - 21:52 #11
Du kan bare give dine variabler et rigtigt navn ;)  Fx $a1, $a2 osv.
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 22:00 #12
må man nu ikke kalde sine børn for nr :(

Den skiver den samme fejl.

elseif ($fejl == "0")
{
$a1 = $_POST['navn'];
$a2 = $_POST['opretbrugernavn'];
$a3 = $_POST['opretkodeord'];
$a4 = $_POST['by'];
$a5 = $_POST['postnr'];
$a6 = $_POST['vej'];
$a7 = $_POST['email'];

echo 'Alt er indtastet rigtigt<br />';

//<
$send = "INSERT INTO `kogebogen-bruger` (`navn`,`brugernavn`,`kodeord`,`by`,`postnr`,`vej`,`e-mail`) VALUES ('$a1', '$a2', '$a3', '$a4', '$a5', '$a6', '$a7')";

mysql_query("$send") OR DIE(mysql_error());

}
?>
Avatar billede olebole Juniormester
14. januar 2009 - 22:03 #13
<ole>

Giv os lige 5-10 linjer før linjen:
    elseif ($fejl == "0")

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
14. januar 2009 - 22:04 #14
Samme fejl? Det vil hjælpe at lægge det rettede dokument på webserveren.
Avatar billede olebole Juniormester
14. januar 2009 - 22:05 #15
Hvorfor i øvrigt pakke strengen $send ind i gåseøjne i:
    mysql_query("$send") OR DIE(mysql_error());

Det er ikke forkert, men helt unødvendigt  =)
Avatar billede olebole Juniormester
14. januar 2009 - 22:07 #16
Men jeg tror nu godt, Erik kan sætte et kryds i kalenderen for kommentaren(14/01-2009 22:04:42)  ;o)

- oversat betyder det, at jeg giver ham ret  :D
Avatar billede andreas13_fam Nybegynder
14. januar 2009 - 22:08 #17
Nå nu virker det, der var en midlertidig fil.
erikjacobsen lig et svar :D
Avatar billede erikjacobsen Ekspert
14. januar 2009 - 22:11 #18
Jeg er hverken bedemand, eller samler på point, tak. Krydser, ja, dem kan man samle på ;)
Avatar billede cronaldo Nybegynder
14. januar 2009 - 23:29 #19
Brug konsekvent !empty() istedet for isset :) .. hehe.
Avatar billede olebole Juniormester
14. januar 2009 - 23:52 #20
Nej, under ingen omstændigheder 'konsekvent'. De gør to vidt forskellige ting, så det kommer helt an på, hvad man vil opnå  =)
Avatar billede jakobdo Ekspert
15. januar 2009 - 08:03 #21
Og isset() er god at bruge, for den vil netop fange variabler som ikke er lavet og som ellers ville smide en fejl.
Avatar billede andreas13_fam Nybegynder
15. januar 2009 - 18:42 #22
Nå nå, tak for de mange svar og gode råd :D
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