Gå til innhold

Php til sql problemer


Anbefalte innlegg

Hei alle sammen.

Sitter her og sliter med en poste kode jeg har sett meg blind på.

 

Alt ser bra ut på siden, men jeg får ikke noe informasjon inn i sql.

Hva kan være galt?

 

Her er koden til siden:

 

<?php
include('mysql_connect.php');
if(isset($_POST['submit']))
{

 $overskrift = mysql_real_escape_string($_POST['overskrift']);
 $ingress = mysql_real_escape_string($_POST['ingress']);
 $innhold = mysql_real_escape_string($_POST['innhold']);
 $skrevetav = mysql_real_escape_string($_POST['skrevetav']);
 $dato = mysql_real_escape_string($_POST['dato']);
 $bildetekst = mysql_real_escape_string($_POST['bildetekst']);
 $bilde = mysql_real_escape_string($_POST['bilde']);
    $result = mysql_query("INSERT INTO nyheter (`overskrift`, `ingress`, innhold`, skrevetav`, dato`, bildetekst`, bilde`)
                  VALUES ('$overskrift','$ingress','$innhold','$skrevetav','$dato','$bildetekst','$bilde')");
     echo "<strong>Nyheten er lagt til i databasen. Du blir nå overført til hovedsiden</strong>";
     echo "<meta http-equiv=Refresh content=3;url=http://www.tronder.net/vaffelkak/gjestebok/index.php>";
}
else
{
 ?>
 <br>
 <h3>Legg til nyhet</h3>
 <form method='post' action='<?php echo $PHP_SELF ?>'>
<table>
<tr>
     <td>Overskrift:</td>
     <td><input name='overskrift' size='40' maxlength='255'></td>
</tr>
<tr>
     <td>Ingress:</td>
     <td><textarea name='ingress' rows='5' cols='30'></textarea></td>
</tr>
<tr>
     <td>Innhold:</td>
     <td><textarea name='innhold' rows='10' cols='30'></textarea></td>
</tr>
<tr>
     <td>Skrevet av:</td>
     <td><input name='skrevetav' size='40' maxlength='255'></td>
</tr>
<tr>
     <td>Dato:</td>
     <td><input name='dato' size='40' maxlength='255'></td>
</tr>
<tr>
     <td>Bildetekst</td>
     <td><input name='bildetekst' size='40' maxlength='255'></td>
</tr>
<tr>
  <td>Bilde:</td>
  <td><input type="file" name="trusttecfile" size='40'></td>
</tr>
<tr>
  
  <td colspan='2'><input type="submit" name="submit" value="Legg til nyhet"></td>
</tr>
</table>
</form>
 
 <?
}

Lenke til kommentar
Videoannonse
Annonse

Tror det er fordi du har lagt mysql_query() i en variabel... Skal man egentlig ikke bare skrive slik?

 

mysql_query("INSERT INTO nyheter (`overskrift`, `ingress`, innhold`, skrevetav`, dato`, bildetekst`, bilde`)
                 VALUES ('$overskrift','$ingress','$innhold','$skrevetav','$dato','$bildetekst','$bilde')");

Endret av kjey
Lenke til kommentar

Når jeg skriver til database, så gjør jeg det slik

 

$q = "INSERT INTO tabellnavn(tabellfelt) VALUES('hei')";
if(!empty($diversefelt)) {
      mysql_query($q) OR die(mysql_error());
}

Hvor sjekker du foresten om noen felt er tomme? Og er $PHP_SELF en gyldig variabel? Bruker man ikke $_SERVER['PHP_SELF'] til det, evnt bare "action='' "

Lenke til kommentar

Du mangler også endel kjing-kjong kolon

 

("INSERT INTO nyheter (`overskrift`, `ingress`,`innhold`, `skrevetav`, `dato`, `bildetekst`, `bilde`)

 

Du kan også korte ned post variablene dine fra

$overskrift = mysql_real_escape_string($_POST['overskrift']);
$ingress = mysql_real_escape_string($_POST['ingress']);
$innhold = mysql_real_escape_string($_POST['innhold']);
$skrevetav = mysql_real_escape_string($_POST['skrevetav']);
$dato = mysql_real_escape_string($_POST['dato']);
$bildetekst = mysql_real_escape_string($_POST['bildetekst']);
$bilde = mysql_real_escape_string($_POST['bilde']);

til

foreach( $_POST as $key => $value )
{
${$key} = mysql_real_escape_string($value);
}

men dette har selvfølgelig ikkeno med problemene dine å gjøre, bare gjør scriptet litt mindre.

Endret av alp_renx
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...