Avatar billede ladyhawke Novice
02. juni 2003 - 19:50 Der er 24 kommentarer og
1 løsning

PHP og Form

Hvad er der lige galt her? Den bliver bare ved med at vise min Form (ingen fejlmeddelelser...)

<?php
if(isset($submit))
{
  $conn = mysql_connect("localhost", "root", "");
  mysql_select_db("testdb", $conn);
  $result = mysql_query("select title1, url1, title2, url2, title3,url3 from url_list where uid = '$username'", $conn);

$num_rows = mysql_num_rows($result);

// if no rows are returned then the username is invalid
    if(!$num_rows)
    {
?>

<html>

<head>
<basefont face="Arial">
</head>

<body>
<center>
<font size="3">User name not found!</font><br>
<a href="dbtest_3.php">Click here to try again.</a>
</center>
</body>
</html>

<?php
    }
   
else
    {
// display list
    $result = mysql_query("select title1, url1, title2, url2, title3, url3 from
url_list where uid = '$username'", $conn);
    list($title1,$url1,$title2,$url2,$title3,$url3) =
mysql_fetch_row($result);

?>

<html>
<head>
<basefont face="Arial">
</head>
<body>
<center>
<font size="3">Welcome, <?php echo $username; ?>!</font><br>
Pick your destination:
<p>
<?php echo "<a href=$url1>$title1</a>"; ?> 
<?php echo "<a href=$url2>$title2</a>"; ?> 
<?php echo "<a href=$url3>$title3</a>"; ?>
</center>
</body>
</html>

<?php
mysql_free_result($result);
}
}
else
{

// $submit not found
// so display a form
?>

<html>

<head>
<basefont face="Arial">
</head>

<body>
<form action="dbtest_3.php" method="POST">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" length=10 maxlength="30">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in">
</td>
</tr>
</table>
</form>
</body>
</html>

<?php
}
?>
Avatar billede ztyxx Nybegynder
02. juni 2003 - 19:53 #1
måske måden du sætter dine variabler

<?php
if(isset($_POST["submit"]))
{
  $conn = mysql_connect("localhost", "root", "");
  mysql_select_db("testdb", $conn);
  $result = mysql_query("select title1, url1, title2, url2, title3,url3 from url_list where uid = '$_POST[username]'", $conn);
Avatar billede ladyhawke Novice
02. juni 2003 - 20:04 #2
OK, det hjalp lidt, så mangler jeg bare lige resten... :o)
Avatar billede ladyhawke Novice
02. juni 2003 - 20:08 #3
hvad var der i øvrigt galt med det?
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:11 #4
denne linie skal også lige rettes
<font size="3">Welcome, <?php echo $username; ?>!</font><br>
til
<font size="3">Welcome, <?php echo $_POST["username"]; ?>!</font><br>
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:13 #5
det er de måder du sætter dine variabler, hvis dueks. bruger post som method i en for, skal variablerne hedde $_POST["variabel"] istedet for $variabel
læs her
http://www.php.net/manual/en/language.variables.predefined.php
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:15 #6
iøvrigt kan du se om dine mysql kald er iorden ved at sætte
or die(mysql_error()) efter dine mysql_querys
Avatar billede ladyhawke Novice
02. juni 2003 - 20:31 #7
hmmm. det virker stadig ikke...

Her er min nuværende version:

<?php

if(isset($_POST["submit"]))
{   

$conn = mysql_connect("localhost", "root", "") or die(mysql_error()) ;

mysql_select_db("testdb", $conn);

$result = mysql_query("select title1, url1, title2, url2, title3,url3 from url_list where uid = '$_POST[username]'", $conn);

$num_rows = mysql_num_rows($result) or die(mysql_error());

    if(!$num_rows)
    {
?>

<html>

<head>
<basefont face="Arial">
</head>

<body>
<center>
<font size="3">User name not found!</font><br>
<a href="dbtest_3.php">Click here to try again.</a>
</center>
</body>
</html>

<?php
    }
   
else
    {

    $result = mysql_query("select title1,url1,title2,url2,title3,url3 from
url_list where uid = '$_POST[username]'", $conn);
    list($title1,$url1,$title2,$url2,$title3,$url3) =
mysql_fetch_row($result);

?>

<html>
<head>
<basefont face="Arial">
</head>
<body>
<center>
<font size="3">Welcome, <?php echo $_POST["username"]; ?>!</font><br>
Pick your destination:
<p>
<?php echo "<a href=$url1>$title1</a>"; ?> 
<?php echo "<a href=$url2>$title2</a>"; ?> 
<?php echo "<a href=$url3>$title3</a>"; ?>
</center>
</body>
</html>

<?php
mysql_free_result($result);
}
}
else
{

?>

<html>

<head>
<basefont face="Arial">
</head>

<body>
<form action="dbtest_3.php" method="POST">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" length=10 maxlength="30">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in">
</td>
</tr>
</table>
</form>
</body>
</html>

<?php
}
?>
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:33 #8
smid lige et dump af din tabel
Avatar billede ladyhawke Novice
02. juni 2003 - 20:36 #9
#
# Table structure for table 'url_list'
#

CREATE TABLE url_list (
  uid varchar(8) NOT NULL,
  title1 varchar(30) NOT NULL,
  url1 text NOT NULL,
  title2 varchar(30) NOT NULL,
  url2 text NOT NULL,
  title3 varchar(30) NOT NULL,
  url3 text NOT NULL,
  PRIMARY KEY (uid)
);

#
# Dumping data for table 'url_list'
#

INSERT INTO url_list VALUES( 'john', 'Melonfire',
'http://www.melonfire.com', 'Devshed',
'http://www.devshed.com', 'PHP.Net',
'http://www.php.net');
INSERT INTO url_list VALUES( 'bill', 'Yahoo',
'http://www.yahoo.com',
'Slashdot', 'http://www.slashdot.org', '32Bit.com',
'http://www.32bit.com');
Avatar billede ladyhawke Novice
02. juni 2003 - 20:37 #10
det var det nemmeste...
Avatar billede ladyhawke Novice
02. juni 2003 - 20:41 #11
hjalp det?

Det er form showet der ikke virker, DB forbindelsen har kørt...
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:45 #12
hvor henter du dit username fra?
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:45 #13
ahh, UID
Avatar billede ladyhawke Novice
02. juni 2003 - 20:46 #14
ja :o) og det er bill eller john...
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:48 #15
jeg kan få den til at logge ind, men ikke vise linket hvis man skriver andet end john eller bill
Avatar billede ladyhawke Novice
02. juni 2003 - 20:50 #16
hmmm, det skal virke sådan bortset fra linket, men jeg får bare formen igen og igen og...
Avatar billede ztyxx Nybegynder
02. juni 2003 - 20:53 #17
det var din $num_rows der gjorde det, har nu ændret til

<?php

if(isset($_POST["submit"]))
{   

$conn = mysql_connect("localhost", "root", "");
  mysql_select_db("testdb", $conn);

$result = mysql_query("select title1, url1, title2, url2, title3,url3 from url_list where uid = '$_POST[username]'", $conn);


    if(!mysql_num_rows($result) == 1)
    {
?>

<html>

<head>
<basefont face="Arial">
</head>

<body>
<center>
<font size="3">User name not found!</font><br>
<a href="dbtest_3.php">Click here to try again.</a>
</center>
</body>
</html>

<?php
    }
   
else
    {

    $result = mysql_query("select title1,url1,title2,url2,title3,url3 from
url_list where uid = '$_POST[username]'", $conn);
    list($title1,$url1,$title2,$url2,$title3,$url3) =
mysql_fetch_row($result);

?>

<html>
<head>
<basefont face="Arial">
</head>
<body>
<center>
<font size="3">Welcome, <?php echo $_POST["username"]; ?>!</font><br>
Pick your destination:
<p>
<?php echo "<a href=$url1>$title1</a>"; ?> 
<?php echo "<a href=$url2>$title2</a>"; ?> 
<?php echo "<a href=$url3>$title3</a>"; ?>
</center>
</body>
</html>

<?php
mysql_free_result($result);
}
}
else
{

?>

<html>

<head>
<basefont face="Arial">
</head>

<body>
<form action="dbtest_3.php" method="POST">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" length=10 maxlength="30">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in">
</td>
</tr>
</table>
</form>
</body>
</html>

<?php
}
?>

har testet på min lokale maskine, der virker det
Avatar billede ladyhawke Novice
02. juni 2003 - 20:57 #18
hmmm.. jeg forstår ikke helt hvad der sker hos mig i starten virkede lidt af det du sendte (bortset fra de senere fejl som du indikerede), men det gør det slet ikke nu, den kommer bare med formen, hverken login eller noget (har kopieret din løsning for en sikkerhedsskyld og gemt den som "dbtest_3.php"... Jeg tjekker lige noget cache etc....
Avatar billede ladyhawke Novice
02. juni 2003 - 21:00 #19
weird... nu kom den med fejlmeddelelsen hvis man angiver forkert brugernavn, men jeg kan stadig ikke "logge ind" og hver anden gang virker det ikke... Skal vist lige tjekke reset at submit...

Kigger på det senere...
Avatar billede ztyxx Nybegynder
02. juni 2003 - 22:25 #20
prøv at sætte dette som det ALLER første i din fil, så gemmes filen ikke i din cache

<?
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
Avatar billede ztyxx Nybegynder
02. juni 2003 - 22:29 #21
Avatar billede ladyhawke Novice
03. juni 2003 - 10:10 #22
OK, jeg har prøvet igen, men den virker ikke konsistent... Det er én gang lykkedes at logge in og få den rigtige side frem, men det er ikke helt stabilt... Jeg arbejder videre med det.

Mange tak for hjælpen, det gav mig nogle gode tips!
Avatar billede ztyxx Nybegynder
03. juni 2003 - 10:44 #23
takker for point, men sig bare til, så hjælper jeg gerne, jeg forstår ikke hvorfor den ikke vil hos dig...
Avatar billede ladyhawke Novice
03. juni 2003 - 12:30 #24
Som sagt så virkede den delvist hos mig (efter reboot etc.), da jeg prøvede din version (linket) virkede det, bortset fra at der ikke kom tekst på siden efter login...

Bare rolig der skal nok komme flere spørgsmål fra den kant... Jeg skal til at lave en hjemmeside med PHP/MySQL, så der skal nok komme et enkelt spørgsmål eller 2 ;o)
Avatar billede ladyhawke Novice
03. juni 2003 - 14:09 #25
:o) Det virker nu, jeg har indsat "no cache" koden og desuden har jeg konstateret at jeg havde overset en detalje: Enter/Return events er åbenbart ikke default for login knappen... Derfor virkede det ikke når jeg ville logge ind (med enter/return), men når jeg brugte knappen...

Mange tak for hjælpen endnu engang!
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