Når du så vil have numrene frem skriver du bare $telefon[0](er lig med det første nummer) $telefon[1] (lig med det andet nummer) osv. Og hvis du skal sætte det i en database laver du jo bare en insert.
mysql_query("INSERT INTO numre (nummer 1, nummer 2, nummer 3, nummer 4, nummer 5, nummer 6, nummer 7) VALUES ('$telefon[0]', '$telefon[1]', '$telefon[2]', '$telefon[3]', '$telefon[4]', '$telefon[5]', '$telefon[6]')")
Du kunne også bare lave det hele til et array med det samme:
// Html <input name="tjek" type="checkbox" name = "telefon[]" value="7"> <input name="tjek" type="checkbox" name = "telefon[]" value="93">
// PHP <?php $array = $_POST['telefon'];
/* * I tilfælde af at du har designet din * database 'numre' ordentligt, med en række pr nummer. * * Følgende vil indsætte alle numre som en række for * sig selv i databasen */
mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die (mysql_error()); mysql_select_db($mysql['db']) or die (mysql_error());
$result = mysql_query("SELECT * FROM `contact_module` ORDER BY `time` DESC"); $edit_news = mysql_query("SELECT * FROM `contact_module` WHERE `id`=" . $_REQUEST['edit']) or die (mysql_error() . ' in select from `contact_module` in edit mode'); $edit_news = mysql_fetch_array($edit_news); mysql_query("UPDATE `contact_module` SET `title`='" . $edit_news['title'] . "', `url`='" . $edit_news['url'] . "', `time`='" . time() . "', `numre`='" . $edit_news['numre'] . "" . foreach($_POST["ejer"] as $eje) { echo $eje . " "; } . "', `content`='" . $edit_news['content'] . "' WHERE `id`=" . $_REQUEST['id']) or die (mysql_error());
Input: ?id=2 og post'en ($_POST["ejer"])
Skulle dette script gerne tjekke hvad der står i databasen ud for bruger id 2 sætte det ind (så ingen ting bliver ændret) og udfylde numre men den vil ikke smide dem ind hvad er forkert?
med mysql 'UPDATE' funktion, behøver du kun opdatere det ene felt, resten forbliver som før:
mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die (mysql_error());
mysql_select_db($mysql['db']) or die (mysql_error());
$sql = "UPDATE `contact_module` SET `numre`=concat(`numre`,' ', '" . mysql_real_escape_string(implode(" ", $_POST["ejer"])) . "') WHERE `id`='" . mysql_real_escape_string($_REQUEST['id']) . "'") or die (mysql_error());
Jeg har her brugt funktionen implode(), der samler et array til en streng, (her) adskilt af et mellemrum. Desuden bør du tjekke at det rent faktisk er numeriske værdier du modtager. Hvis du ikke tjekker indhold, eller i det mindste escaper det (brug mysql_real_escape_string()) har du et stort sikkerhedsproblem.
if($_REQUEST['action'] == 'own') { mysql_query("UPDATE `contact_module` SET `film`='" . $_POST['ejer'] . "' WHERE `id`=" . $_REQUEST['id']) or die (mysql_error()); }
Fået den til at skrive Array men den skal jo skrive verdien af array.
if($_REQUEST['action'] == 'own') { mysql_query("UPDATE `contact_module` SET `telefon`='" . $_POST['ejer'] . "' WHERE `id`=" . $_REQUEST['id']) or die (mysql_error()); }
Hvade åbenbart bare glemt at trykke GEM mig store torsk.
Svaret er sikkerhed, hvis jeg havde adgang til din formular, kunne jeg i princippet udfører alle de databaseforespørgsler jeg ville. Se f.eks. eksempel 2 på følgende link:
det med sikkerheden har jeg tænkt mig at tage senere, Nu vil jeg bare have det hele til at køre.
Men takker for jeres deltagelse.
Synes godt om
Ny brugerNybegynder
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.