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?

Hier een stukkie script:

<?
include ("../../scripts/safe/connection.php");


$query = "insert into accessoires (id, artikel, naam, beschrijving, prijs, foto, foto2) values('id','$artikel','$naam','$beschrijving','$prijs','$foto','$foto2')";


$result=mysql_query($query)or die (mysql_error());

?>

Bij voorbaat dank!!

Gr, Pim
Sorry, dit werkte niet.
deze query klopt opzich wel, alhoewel je beter de $varrs buiten de "" kunt houden,

wat ik wel heel gek vind is dat je als id opgeeft: 'id'

normaal laat je id gewoon automatisch gaan, dan kan daar ook niks verkeerd gaan

edit:

dus:
$query = "insert into accessoires (artikel, naam, beschrijving, prijs, foto, foto2) values('".$artikel."','".$naam."','".$beschrijving."','".$prijs."','".$foto."','".$foto2."')";
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?
oke jongens alvast erg bedankt voor de reacties.

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.

Bedankt, Pim
Ik denk dat jij problemen hebt met superglobals. Je gebruikt waarschijnlijk in jouw scripts nergens $_POST en/of $_GET.
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.

Succes.
Dus zou de query dan worden:

$query = "insert into accessoires (id, artikel, naam, beschrijving, prijs, foto, foto2) values('id','$_POST['artikel']','$_POST['naam']','$_POST['beschrijving']','$_POST['prijs']','$_POST['foto']','$_POST['foto2']')";

of moet het dan worden:

$query = "insert into accessoires (id, artikel, naam, beschrijving, prijs, foto, foto2) values(id,$_POST['artikel'],$_POST['naam'],$_POST['beschrijving'],$_POST['prijs'],$_POST['foto'],$_POST['foto2'])";

In het formulier gebruik ik methode Post..

Bedankt..
en moet ik dan in het formulier ook $_POST gebruiken in deze line:

<input type=text name=artikel>
@ Pim: er moeten inderdaad enkele quotes om de velden in je insert-query. Maar zet NOOIT rechtstreeks user-input in een insert-query.

Het minste dat je kunt doen is in ieder geval zoiets:

$artikel = htmlspecialchars ($_POST['artikel']);

en verder voor de andere velden.
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'] . "'.... )

Reageren