Versio

Sinds vandaag werkt insert in database niet meer

Overzicht Reageren

Elsy Vriens

Elsy Vriens

04/12/2011 09:36:10
Quote Anchor link
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
 
PHP hulp

PHP hulp

25/05/2012 15:48:46
Gesponsorde koppelingen:
 
Noppes Homeland

Noppes Homeland

04/12/2011 10:10:34
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
    }
}

?>


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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors',1);
ini_set('error_reporting', E_ALL);
?>
Gewijzigd op 04/12/2011 10:27:32 door Noppes Homeland
 
Elsy Vriens

Elsy Vriens

04/12/2011 10:48:23
Quote Anchor link
Admin kan mijn topic verwijderen
Gewijzigd op 04/12/2011 18:42:39 door Elsy Vriens
 
Noppes Homeland

Noppes Homeland

04/12/2011 11:03:49
Quote Anchor link
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.
 
Ger van Steenderen

Ger van Steenderen

04/12/2011 11:47:13
Quote Anchor link
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.

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
 



Overzicht Reageren