Avatar billede only-boy Nybegynder
04. januar 2005 - 23:09 Der er 6 kommentarer og
1 løsning

Fejl i koden, men hvor?

Hejsa,

håber at nogen af jer gutter eller gutinder er mere friske end søvnige mig lige nu. Har problemer med et script som bliver ved med at fejle, og lige på et tidspunkt hvor det IKKE skal.


<input type="hidden" name="ip" value="<?php $ip=$_SERVER['REMOTE_ADDR']; ?>">


Hvordan skal ovenstående kode se rigtig ud? Noget med nogen HTML-Klammer vist, men er rimelig blind lige nu? Help...
Avatar billede erikjacobsen Ekspert
04. januar 2005 - 23:10 #1
<input type="hidden" name="ip" value="<?php print $_SERVER['REMOTE_ADDR']; ?>">
Avatar billede jakoba Nybegynder
04. januar 2005 - 23:11 #2
<input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
Avatar billede rene_graff Nybegynder
04. januar 2005 - 23:13 #3
<input type="hidden" name="ip" value="<?php print $_SERVER['REMOTE_ADDR']; ?>">
Avatar billede only-boy Nybegynder
04. januar 2005 - 23:21 #4
Naaah, ingen af dem virker for mig vedkommende...
- skal måske begrundes lidt mere.

Kode:

<form method="post" action="form.handle.php">
<table border="0" width="100%">
  <tr>
    <td width="8%">Navn</td>
    <td width="1%">:</td>
    <td width="91%"> <input type="text" name="name" style="width: 167; height: 23" size="20">
    </td>
  </tr>
  <tr>
    <td width="8%">E-mail</td>
    <td width="1%">:</td>
    <td width="91%"> <input type="text" name="email" style="width: 166; height: 23" size="20"></td>
  </tr>
  <tr>
    <td width="8%" vAlign="top">Indlæg</td>
    <td width="1%" vAlign="top">:</td>
    <td width="91%">
<textarea name="text" rows="7" cols="0" style="width: 314; height: 155"></textarea></td>
  </tr>
  <tr>
    <td width="8%" vAlign="top">&nbsp;</td>
    <td width="1%" vAlign="top"></td>
    <td width="91%">
    </td>
  </tr>
  <tr>
    <td width="8%" vAlign="top"></td>
    <td width="1%" vAlign="top"></td>
    <td width="91%">

<input type="submit" value="Send">
<input type="reset" value="Slet alt" name="B1"></td>
  </tr>
</table>
<input type="hidden" name="referer" value="comment">
<input type="hidden" name="parent" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
</form>


kopi af form.handle.php
<?php
include('inc.config.php');

if ($_POST['referer'] == 'comment') {
    if (empty($_POST['name']) && empty($_POST['text'])) {
        echo '<font color="red">Alle felter er ikke udfyldt!</font>';
    } else {
        $_POST['email'] = preg_match("/^[\w\.\-_]+@([\w\-_]+\.)+\w+$/i",$_POST['email']) ? $_POST['email'] : '';
        mysql_query("INSERT INTO comments VALUES ('','".$_POST['name']."','".$_POST['email']."',now(),'".$_POST['text']."','".$_POST['ip']."','".$_POST['parent']."')") or die(mysql_error());
        header("Location: news.display.php?id=".$_POST['parent']);
    }
}
?>



Problemet er at når man så skriver et indlæg, så gemmer den det de forkerte steder i databasen. IPén bliver ikke gemt i feltet ip.
Avatar billede only-boy Nybegynder
04. januar 2005 - 23:36 #5
-------------------------> L U K K E R <----------------------
Avatar billede neocron Nybegynder
04. januar 2005 - 23:37 #6
Jeg ville prøve at gøre det sådan her:

mysql_query("INSERT INTO comments(navn, alder, telefon) VALUES('$navn', '$alder', '$telefon')") or die(mysql_error());

(ret selv din kode til, så den passer)

Men som du kan se, viser jeg hvor den skal gemme det.
  1: navn
  2: alder
  3: telefon

Og dernæst kommer de data, der skal gemmes
  1: $navn
  2: $alder
  3: $telefon

Så er jeg ihvertfald sikker på at det kommer de rigtige steder hen :)
Avatar billede neocron Nybegynder
04. januar 2005 - 23:58 #7
<input type="hidden" name="ip" value="<?=$_SERVER["REMOTE_ADDR"]; ?>">

Sådan kan den se ud (beklager forrige fejl)!
Når du kalder $ip efter at have sendt formen får du ip'en.
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