Gå til innhold

Script


Gjest Slettet+432

Anbefalte innlegg

Gjest Slettet+432

Hei! har mekket et lite script... skal være en erstatning for dette her: http://www.reboothome.com/?side=dataproblemer.

 

men vil det funke?

 

dataproblemer.php:

 

<form action="index.php?side=dataproblemerny_resultat" method="POST">
Navn: <br>
<input type="text" name="navn"> <br>
Problem: <br>
<textarea rows="6" cols="50" name="problem"><br>
<input type="submit" value="Legg inn">
</form>

 

legginn.php:

<?php
/* Henter variabler */
$navn = $_POST['navn'];
$problem = $_POST['problem'];

/* Kobler til databasen */
  $mysql_host = "localhost";
  $mysql_user = "******";
  $mysql_pass = "*******";
  $mysql_db = "*******";

  @mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die("Kobling til database mislyktes.");
  @mysql_select_db($mysql_db) or die("Valg av database mislyktes");
  $query = "INSERT INTO `dataproblemer` (`navn`,`problem`) VALUES('$navn','$problem');";
     $errarr = array();
 if(!@mysql_query($query))
        array_push($errarr,"Et eller annet gikk galt. Feilmeldingen fra mysql er: " . mysql_error());

     else
        array_push($errarr,"Innlegget ditt ble lagt til!");
?>

 

vis.php:

<?php
/* Kobler til databasen */
  $mysql_host = "localhost";
  $mysql_user = "******";
  $mysql_pass = "*******";
  $mysql_db = "*******";

  @mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die("Kobling til database mislyktes.");
  @mysql_select_db($mysql_db) or die("Valg av database mislyktes");
  
$setning = @mysql_query("SELECT * FROM dataproblemer order by date");
while($pdb = @mysql_fetch_array($setning))
{
print("$navn
<br><br>

$problem

<br><br>
<b>Svar fra $brukernavn:</b> <br>
$svar

<br><br> ");
if($_SESSION['brukernavn'] && $_SESSION['passord'])
{
   print("
<font size=\"-7\"> » </font><a href=\"index.php?side=dataproblemerny&slett=$id\">Slett</a> <br>
<font size=\"-7\"> » </font><a href=\"index.php?side=dataproblemerny&svar=$id\">Svar</a>
");

else
{
    print(" ");
}
?>

 

svar.php:

<form action="index.php?side=dataproblemerny&svar=resultat" method="POST">
Svar: <br>
<textarea rows="6" cols="50" name="svar"><br>
<input type="submit" value="Legg inn">
</form>

 

svar_handling.php:

<?php
/* Henter variabler */
$svar = $_POST['svar'];

/* Kobler til databasen */
  $mysql_host = "localhost";
  $mysql_user = "******";
  $mysql_pass = "*******";
  $mysql_db = "*******";

  @mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die("Kobling til database mislyktes.");
  @mysql_select_db($mysql_db) or die("Valg av database mislyktes");
  $query = "UPDATE dataproblemer SET svar = '$svar' WHERE svar = '$svar'";
     $errarr = array();
 if(!@mysql_query($query))
        array_push($errarr,"Et eller annet gikk galt. Feilmeldingen fra mysql er: " . mysql_error());

     else
        array_push($errarr,"Svaret ble lagt til!");
?>

Lenke til kommentar
Videoannonse
Annonse

Må nesten være enig med sven-o. Selv har jeg ikke tid til å teste script for andre, men hjelper gjerne til dersom de viser den koden det er noe feil med og en eventuell feilmelding.

 

Det er mange poster her jeg kunne tenke meg å svare på, men har ikke tid - spesielt ikke dersom det kun er mange linjer med kode. ;)

Som sven-o sier: sikker noen som er mindre late. Og har mer tid :)

Lenke til kommentar

Får slenge meg med på listen over de late.

Synes en viss skikk bør utøves når man spørr etter hjelp. En god beskrivelse av problemet, feilmeldingen man får, og annen informasjon som kan være greit å ha. Prøv å begrens koden du viser fram her, ta kun med det som er reelt. Jeg kunne normalt ikke tenke meg å lese gjennom sidevis med kode for å finne en feil hos andre. De fleste av oss har ikke tid til det.

 

Nå håper jeg ikke trådstartet føler seg ille til mote. Tenkte det kunne være greit å bare nevne det for alle. Det er en del som kommer med veldig dårlig formulerte spørsmål og sånt.

Lenke til kommentar
Nå håper jeg ikke trådstartet føler seg ille til mote. Tenkte det kunne være greit å bare nevne det for alle. Det er en del som kommer med veldig dårlig formulerte spørsmål og sånt.

Som Findus sier, dette er ikke bare rettet mot trådstarter men generelt. :thumbup:

Endret av ????????
Lenke til kommentar

Har bare skumma over litt her:

 

Men har sett noe som ikke virker helt bra:

 

I legginn.php

$query = "INSERT INTO `dataproblemer` (`navn`,`problem`) VALUES('$navn','$problem');";

//ta bort nest siste;

 

I svar_handling.php

 

$query = "UPDATE dataproblemer SET svar = '$svar' WHERE svar = '$svar'";

Dette kan jo ikke bli riktig $svar er jo det nyeinnholdet og det finnes da ikke fra før.

 

Kan vi få se db strukturen din og?

Lenke til kommentar
Gjest Slettet+432

Denne: ?

 

CREATE TABLE `dataproblemer` ( `navn` VARCHAR( 255 ) NOT NULL ,'. ' `problem` VARCHAR( 255 ) NOT NULL ,'. ' `svar` VARCHAR( 255 ) NOT NULL );'. '

Lenke til kommentar
I legginn.php

$query = "INSERT INTO `dataproblemer` (`navn`,`problem`) VALUES('$navn','$problem');";

//ta bort nest siste;

; betyr slutten av spørringen - du må ha den med hvis du jobber i command vinduet til f.eks. mysql. ; avslutter en spørring og gjøre det mulig å starte en ny spørring - så den kan godt stå der. Den er ikke med i mange scripts da den ikke er nødvendig.

Lenke til kommentar
Gjest Slettet+432

Og hvordan få det til å bli to vanlige variabler? Og forresten, er det noe galt med dette:

 

 

$query = "UPDATE dataproblemer SET svar = '$svar' WHERE svar = '$svar'";

 

?

 

jeg gjetta bare hva det kunne være...

Lenke til kommentar
Og hvordan få det til å bli to vanlige variabler? Og forresten, er det noe galt med dette:

 

 

$query = "UPDATE dataproblemer SET svar = '$svar' WHERE svar = '$svar'";

 

?

 

jeg gjetta bare hva det kunne være...

Ja, den er feil, litt logisk tenkning også er du der.

$svar kan ikke settes inn ett sted der $svar er $ svar for da vil du jo ikke sette den inn noe sted fordi det du skrev aldri har blitt lagt inn.

Lenke til kommentar

Kreves mer enn forandring i mysql-setningen her.

1. Du mangler noen form for tilstandshåndtering. I det svarskjemaet lastes, forsvinner informasjon som beskriver hvilket dataproblem som skal svares på. Når jeg ser på linken "index.php?side=dataproblemerny&svar=$id", ser jeg at nødvendig info sendes, men ikke lagres. Hva svar.php derfor trenger er et hidden field som lagrer denne id, la oss kalle den problemID:

<input type="hidden" name="problemID" value="<?=$_GET['svar']?>">

2. svar_handling.php vil nå kreve lite forandring for at dette skulle tilsynelatende fungere. Alt vi forandrer er SQL-setningen:

$query = "UPDATE dataproblemer SET svar = '$svar' WHERE ID= $_POST['svar']";

3. Herregud mann! Først etter nærmere titt nå legger jeg merke til at scriptet ditt er spedalsk! Litt ekstra hint:

  • Alltid.... ALLTID ha en unik id i form av indeksert integer med auto_increment. Denne ID'en vil du ha stor glede av når du senere skal forandre(UPDATE) en post.
  • Ser at du i vis.php bruker ORDER BY date. Hvor får du date fra?? I følge struktur-dumpen din har du du bare 3 felt; navn, problem og svar .
  • Etter at du har hentet ut data fra databasen, $pdb = @mysql_fetch_array($setning), rører du ikke $pdb igjen. Har jeg gått glipp av noe? Det er jo her dataen ligger($pdb['navn'],$pdb['problem '],$pdb['svar ']).
  • Mamma.... Jeg orker ikke mer...

Det var litt på overflaten.

 

 

Dersom vi nå var i webdesign-delen, og dette scriptet var en såkalt "fisk", OG jeg var en blærete forum-gjenganger, ville ikke dette innlegget inneholdt noe annet enn:

Sorry pal! Dette var ubrukelig. Start over! :thumbdown:

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...