Sinds vandaag werkt insert in database niet meer
Ben zo geschrokken van alle reacties dat ik alles verwijderd heb. Ben een tijdje niet meer hier geweest......vroeger ging het wel anders. Sorry dat ik niet veel verstand heb van scripting en hier om raad kom vragen.....
Gewijzigd op 04/12/2011 18:41:46 door Elsy Vriens
Gesponsorde koppelingen:
Werkt niet, is nog al een ruim begrip.
Geef ons de foutmelding + het ingevulde sql statement welke de error doet opleveren.
En aangezien dit script zo mank is, kan het in feite niet goed werken, ook op andere plekken gaat het fout.
or die() is geen fatsoenlijke manier van foutafhandeling, pas correcte foutafhandeling toe.
is_numeric is ook geen correcte controle, dit laat meer door dan dat jij zult verwachten.
na header dient er een exit te volgen
Backticks horen niet thuis in sql, als je het niet zonder kunt dan zijn de gekozen namen niet toegestaan en zal je opzoek moeten naar een andere veldbenaming.
Oh en lees je even in in het begrip SQL-injectie, en verhelp dat probleem dan ook meteen. Daarnaast is het aanmaken van overbodige variabelen ook niet nodig en dan doel ik op $pagina = $_SERVER['PHP_SELF']; en de aanverwante met $_SERVER
Fatsoenlijke foutafhandeling:
Nog een toevoeging tabelnamen als linken_2011 zijn ook niet zoals het behoort. Ga wat lezen over database normalisatie!
En nog maar een tip:
Zorg er voor dat je je eigen code kan debuggen op fouten en dan kan het volgende wel eens helpen om bovenaan in je script te plaatsen:
Geef ons de foutmelding + het ingevulde sql statement welke de error doet opleveren.
En aangezien dit script zo mank is, kan het in feite niet goed werken, ook op andere plekken gaat het fout.
or die() is geen fatsoenlijke manier van foutafhandeling, pas correcte foutafhandeling toe.
is_numeric is ook geen correcte controle, dit laat meer door dan dat jij zult verwachten.
na header dient er een exit te volgen
Backticks horen niet thuis in sql, als je het niet zonder kunt dan zijn de gekozen namen niet toegestaan en zal je opzoek moeten naar een andere veldbenaming.
Oh en lees je even in in het begrip SQL-injectie, en verhelp dat probleem dan ook meteen. Daarnaast is het aanmaken van overbodige variabelen ook niet nodig en dan doel ik op $pagina = $_SERVER['PHP_SELF']; en de aanverwante met $_SERVER
Fatsoenlijke foutafhandeling:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql = "..........";
if (($result = mysql_query($sql)) === false) {
// fouteafhandeling en eventueel wat debug code
// debug code
echo 'Error: '.mysql_error().'<br />'.$sql;
}
else {
while ($row = mysql_fetch_assoc($result)) {
// het output verhaal
}
}
?>
$sql = "..........";
if (($result = mysql_query($sql)) === false) {
// fouteafhandeling en eventueel wat debug code
// debug code
echo 'Error: '.mysql_error().'<br />'.$sql;
}
else {
while ($row = mysql_fetch_assoc($result)) {
// het output verhaal
}
}
?>
Nog een toevoeging tabelnamen als linken_2011 zijn ook niet zoals het behoort. Ga wat lezen over database normalisatie!
En nog maar een tip:
Zorg er voor dat je je eigen code kan debuggen op fouten en dan kan het volgende wel eens helpen om bovenaan in je script te plaatsen:
Gewijzigd op 04/12/2011 10:27:32 door Noppes Homeland
Admin kan mijn topic verwijderen
Gewijzigd op 04/12/2011 18:42:39 door Elsy Vriens
Je gebruikt - hoogstwaarschijnlijk - $_GET['id'] ergens zonder dat deze gegeven is. Met als gevolg dat je query niet correct is.
Dus het komt neer op: script logica
Let wel, dat het blijft gissen, omdat je onvolledige informatie verstrekt.
toon: regels 80 t/m 90 van uit.php
en probeer dan ook weer te geven wat er binnenkomt en hoe dat wordt afgehandeld.
Als code in je openingspost == uit.php dan kan je aangeven welke regel 85 is.
Dus het komt neer op: script logica
Let wel, dat het blijft gissen, omdat je onvolledige informatie verstrekt.
toon: regels 80 t/m 90 van uit.php
en probeer dan ook weer te geven wat er binnenkomt en hoe dat wordt afgehandeld.
Als code in je openingspost == uit.php dan kan je aangeven welke regel 85 is.
Elsy Vriens op 04/12/2011 10:48:23:
Dit script heb ik lang geleden hier van php-hulp gekregen......
Ik ben niet goed in scripting dus zal proberen of ik het beter kan maken.
Ik ben niet goed in scripting dus zal proberen of ik het beter kan maken.
Jammer dat zo'n script hier terecht komt, Noppes heeft helemaal gelijk het rammelt aan alle kanten.
Om te beginnen:
Regel 39 t/m 63 slaan als een tang op een varken, de $_SERVER variabele is een superglobal en bestaat dus altijd.
Ook zie ik dat er 3 maal een query uitgevoerd wordt op dezelfde tabel met dezelfde voorwaarde.
Code die afhankelijk is van een bepaalde voorwaarde moet altijd uitgevoerd worden binnen die voorwaarde.
Zo kan ik nog een eindje doorgaan
Gewijzigd op 04/12/2011 13:17:25 door Ger van Steenderen



