Door
Pim
op 02-03-2006 00:33
gewijzigd op 02-03-2006 00:34
222 views
Goedenavond,
Ik zit met een probleem. We hebben een webshop met een admingedeelte, waar wij advertenties kunnen toevoegen aan een database. Nu hebben wij deze website naar een andere hosting over gebracht.
Ik heb de database geïmporteerd en hij word weer weergegeven op de website.
Het probleem is nu dat wanneer wij een advertentie toevoegen in de database, hij wel iets toevoegd in de tabellen, maar dit zijn lege waarden. Hij lijkt dus de waarden uit het formulier niet te pakken.
Na even gemailt te hebben met mijn hosting, die niet wisten wat het is, maar erop wezen dat het kon liggen aan zgn Register Globals ben ik ff gaan zoeken, maar kwam er niet zo uit.
Kan het hieraan liggen, ze zeiden dat de Register Globals functie op hun hosting servers uit geschakeld staat.
Kan het ook nog aan de collatie liggen?
De query had inderdaad gewoon moeten werken. Gijs heeft een goed punt wat ID en de quotes betreft.
Ik vraag me echter af of deze waarden ook uit je formulier worden overgenomen. Echo de waarden eerst eens naar je scherm. Wat krijg je dan als resultaat? Zijn de variabelen werkelijk gevuld?
het script werkte zoals boven al gezegd eerst wel, tot ik het geheel overplaatste naar de huidige hosting.
Ik heb ff gekeken, het komt erop neer dat ie dus de gegevens inderdaad niet uit het formulier haalt. Hij wilt het wel verzenden naar de database, maar hij kan dus niks uit het formulier pakken.
Ik had zelf het id dat het misschien door die registry globals kan komen? Kan dit, of waar kan het anders aan liggen.
Nogmaals, de scripts hebben wel gewerkt.
Van register_globals wordt al enige jaren gezegd dat dit uitgezet moet worden i.v.m. veiligheidsproblemen. Het is eigenlijk schandalig dat je vorige hoster dit nog steeds niet had gedaan en jouw script dus nog steeds 'goed' werkte.
Maar nu het probleem: $artikel moet worden $_POST['artikel'] of $_GET['artikel'], afhankelijk of jouw formulier POST of GET gebruikt. Verder moet je wel iets aan beveiliging gaan doen, jouw database is nu zo lek als een mandje. Zoek met Google eens op 'SQL-injection', dan zul je zelf wel zien dat er nog een hoop moet gebeuren om de boel veilig te krijgen.
Ik zou aanwennen om $vars buiten de quotes te houden. En in VALUES (id ..... wat is die id, dit geeft vast een error. Als id een auto_increment is laat je het leeg, dus '' (twee enkele quotes). De verdere $vars buiten de quotes worden dan zoiets VALUES ('', '" . $_POST['var'] . "', '" . $_POST['var'] . "'.... )