Gå til innhold

problem med php


Anbefalte innlegg

hei

 

jeg har lest og gjort akkurat det som står i denne tutorial

 

jeg kan skrive i gjestebok og blir sendt til siden der det står:

Successful

View guestbook

 

da trykker jeg på vis gjestebok og kommer til en blank side??? :dontgetit:

 

jeg er helt sikker på at linken går til rett side :(

Lenke til kommentar
Videoannonse
Annonse

Da høres det ut som om det er noe feil i koden din :) men hvis du skal ha muligheten til å hjelpe deg må vi nesten se koden.

 

Utifra "oppskriftet" ser jeg en enkelte feil i den også.

 

MEn det hadde vært fint om vi kunne se koden.

 

btw før du legger ut koden, husk på forandre/fjern passord, bruker og host som mysql bruker å koble seg til med.

Lenke til kommentar

gjestebok.php

 

<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong>Test Sign Guestbook </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form id="form1" name="form1" method="post" action="addgjestebok.php">
<td>
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="117">Name</td>
<td width="14">:</td>
<td width="357"><input name="name" type="text" id="name" size="40" /></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input name="email" type="text" id="email" size="40" /></td>
</tr>
<tr>
<td valign="top">Comment</td>
<td valign="top">:</td>
<td><textarea name="comment" cols="40" rows="3" id="comment"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

 

addgjestebok.php

<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="t"; // Database name
$tbl_name=""; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");

$datetime=date("y-m-d h:i:s"); //date time

$sql="INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email', '$comment', '$datetime')";
$result=mysql_query($sql);

//check if query successful
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='visgjestebok.php'>View guestbook</a>"; // link to view guestbook page
}

else {
echo "ERROR";
}

mysql_close();
?>

 

visgjestebok.php

<?php

$host=""; // Host name
$username=""; // Mysql username
$password="l"; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name"; $result=mysql_query($sql);

while($rows=mysql_fetch_array($result)){
?>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td><table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td>ID</td>
<td>:</td>
<td><? echo $rows['id']; ?></td>
</tr>
<tr>
<td width="117">Name</td>
<td width="14">:</td>
<td width="357"><? echo $rows['name']; ?></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><? echo $rows['email']; ?></td>
</tr>
<tr>
<td valign="top">Comment</td>
<td valign="top">:</td>
<td><? echo $rows['comment']; ?></td>
</tr>
<tr>
<td valign="top">Date/Time </td>
<td valign="top">:</td>
<td><? echo $rows['datetime']; ?></td>
</tr>
</table></td>
</tr>
</table>
<BR>
<?
}
mysql_close(); //close database
?>

Endret av larsan92
Lenke til kommentar
Over $host i visgjestebok.php sett inn:

error_reporting(E_ALL);

ini_set("display_errors", 1);

 

Det bør føre til at en evnt feilmelding dukker opp i stedet for en blank side. ;)

6426787[/snapback]

 

har gjort det nå men dt kommer fortsatt blank side :(

Lenke til kommentar
Prøv en echo "test"; øverst i filen da, se om du får noe output da?

6426870[/snapback]

 

den er fortsatt blank :dontgetit:

 

men hvis jeg fjerner php codinga kommer fram tabelen som innleggene skulle vises i :dontgetit:

Endret av larsan92
Lenke til kommentar

Jeg har opplevd blanke sider når jeg har hatt syntaksfeil i koden. Da får jo ikke PHP laget noe output, men det skal kunne settes et sted at PHP skal vise syntaksfeilmeldinger. Jeg ser ikke umiddelbart noen syntaksfeil. Prøv å kommentere ut deler av PHP-koden slik at du får isolert feilen.

 

En annen ting: Jeg tror du ønsker å bruke

 

while($rows=mysql_fetch_assoc($result)){   // assoc

i steden for

 

while($rows=mysql_fetch_array($result)){   // array

ettersom du bruker $rows['id'] osv og ikke $rows(0).

 

Edit: Sjekk direktivet som heter display_errors i PHP Core, f.eks. ved hjelp av phpinfo() eller ved å titte i php.ini.

Endret av balletryne
Lenke til kommentar

<?php

echo "test";

error_reporting(E_ALL);
ini_set("display_errors", 1);

$host=""; 
$username=""; 
$password=""; 
$db_name=""; 
$tbl_name=""; 


mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * from $tbl_name";
$result=mysql_query($sql);

//while($rows=mysql_fetch_assoc($result)){   // assoc
?>

 

 

hvis jeg kommenterer ut

while($rows=mysql_fetch_assoc($result)){   // assoc

så får jeg output

 

jeg skrv inn display_errors = On i php.ini men phpinfo viser fortsatt off

Lenke til kommentar

Det han mente var at du skulle bruke

while($rows = mysql_fetch_array($result)) {

istede for

while($rows = mysql_fetch_assoc($result)) {

Dette siden du bruker "$rows['id']" til å hente infoen fra databasen, og ikke "$rows('0')".

 

Og når jeg ser gjennom scriptet dit, så ser jeg ikke hvor den henter variablene "$name", "$email" osv fra. Du må derfor bruke dette for å hente ut POST-infoen.

$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];

 

Problemet kan også ligge i at du bruker såkalte short-tags. Dette er vel skrudd av som default i php5(?).

 

Skru det derfor på, eller endre alle <? til <?php.

 

Feks.

td><?php echo $rows['id']; ?></td>

Istede for

td><? echo $rows['id']; ?></td>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...