Joachricar Skrevet 6. mars 2008 Rapporter Del Skrevet 6. mars 2008 (endret) Holder på å mekke et lite script for å oppdatere div greier i databasen. Men det funker ikke å oppdatere noe. Endrer jeg overskriften, blir den kun endret til "0" uansett hva jeg skriver, mens innholdet ikke blir endret idetheletatt. Her er koden jeg bruker: enyhet.php <?php $con = mysql_connect('localhost','***','***'); $id = $_GET['id']; if(!$con){ die ("Kunne ikke koble til databasen: " . mysql_error()); } mysql_select_db('joachimc_mysql', $con); $data = "SELECT * FROM Person WHERE Brukernavn = '$bruker'"; $sel = mysql_query($data); $velg = mysql_fetch_array($sel); if ($velg['Status'] != 'Innlogget') { die ("Du må være logget inn for å se denne siden"); } if ($velg['Rank'] != 'Admin') { die ("Du må være administrator for å se denne siden"); } $nyhet = mysql_query("SELECT * FROM Nyheter WHERE Nummer = '$id'"); $hent = mysql_fetch_array($nyhet); $hentO = $hent['Overskrift']; $hentB = $hent['Beskjed']; echo "<form method='post' action='index.php?page=endretnyhet&id=$id'> <input type='text' name='Overskrift' value='$hentO'></br></br> <input type='text' cols='80' rows='10' name='Beskjed' value='$hentB'></br> <input type='Submit' value='Legg til'> </form>"; mysql_close($con); ?> entretnyhet.php <?php $con = mysql_connect("localhost","***","***"); $bruker = $_SESSION['bruker']; $id = $_GET['id']; $beskjed = $_POST['Beskjed']; $overs = $_POST['Overskrift']; if (!$con) { die ("Kunne ikke koble til databasen: " . mysql_error()); } mysql_select_db("joachimc_mysql", $con); $data = "SELECT * FROM Person WHERE Brukernavn = '$bruker'"; $sel = mysql_query($data); $velg = mysql_fetch_array($sel); if ($velg['Status'] != 'Innlogget') { die ("Du må være logget inn for å se denne siden"); } if ($velg['Rank'] != 'Admin') { die ("Du må være administrator for å se denne siden"); } $oppd = mysql_query("UPDATE Nyheter SET Overskrift = '$overs' AND Beskjed = '$beskjed' WHERE Nummer = '$id'"); if (!$oppd){ die ("Kunne ikke oppdatere: " . mysql_error()); } else{ echo "Nyheten ble oppdatert"; } mysql_close($con); ?> Har sittet og leitet etter feil her nå en stund, men finner den bare ikke. Takker for hjelp Endret 6. mars 2008 av Jokkeman Lenke til kommentar
Martin A. Skrevet 7. mars 2008 Rapporter Del Skrevet 7. mars 2008 echo "<pre>"; print_r( $_POST ); print_r( $_GET ); die(); Putt det i toppen av entretnyhet.php, rett under <?php, og se om verdiene i arrayene faktisk er det du forventer. Bruk også & istede for & i lenker. Du ville fått feilmelding om det om du hadde forsøkt å validere siden. Og sist, men absolutt ikke minst, scriptet ditt er fult mottakelig for SQL injections. Bruk mysql_real_escape_string() på tekst, og intval() / is_numeric() på tall. if( ! is_numeric( $_GET['id'] ) ) { die( "IDen må være et tall!" ); } $beskjed = mysql_real_escape_string( $_POST['beskjed'] ); // etc Lenke til kommentar
Joachricar Skrevet 7. mars 2008 Forfatter Rapporter Del Skrevet 7. mars 2008 (endret) Ahh oki, takk skal sjekke det ut senere. Er fortsatt på basicsene tror jeg så kan ikke så mye om sql-injections og hvrdan jeg skal sikre meg mot det. EDIT: Kjørte den øverste koden og fikk fram de verdiene jeg skulle ha. Endret 7. mars 2008 av Jokkeman Lenke til kommentar
Martin A. Skrevet 7. mars 2008 Rapporter Del Skrevet 7. mars 2008 SQL-syntaxen din under UPDATE er også feil. UPDATE tabell SET row = "value", aotherrow = "new value" WHERE soemthing = 2 Lenke til kommentar
Joachricar Skrevet 7. mars 2008 Forfatter Rapporter Del Skrevet 7. mars 2008 Der funket det ja Vet ikke helt vhor jeg har "AND" fra Men takk for hjelpen Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå