login  Naam:   Wachtwoord: 
Registreer je!
 Forum

admin script werkt niet. (Opgelost)

Offline tomate - 06/10/2007 22:15 (laatste wijziging 06/10/2007 22:16)
Avatar van tomateLid hy,

Ik heb dit script niet zelf gemaakt, ik heb alleen de layout een beetje (veel) gewijzigd. Maar nu mijn probleem dit admin script werkt niet.
Alle gegevens van de gebruikers moeten kunnen wijzigen. Ik ik om submit klik krijgt ik altijd "er is een fout opgetreden (het else statement in het script)".

Kan je me helpen.
Code:
http://www.plaatscode.be/3556

7 antwoorden

Gesponsorde links
Offline Sam - 07/10/2007 01:21
Avatar van Sam PHP expert Probeer eens van

dit te maken:

Dan krijg je meer gedetailleerde informatie overwat er is fout gegaan
Offline Giant - 07/10/2007 10:15 (laatste wijziging 07/10/2007 10:17)
Avatar van Giant PHP beginner maak van:
WHERE id='".$_POST['gebruiker']."'";
eens:
WHERE naam='".$_POST['gebruiker']."'";

omdat je in de select met de naam gebruiker geen id ophaalt;-)
werkte ook voor mij met scriptjes:P
Offline tomate - 07/10/2007 10:37 (laatste wijziging 07/10/2007 10:43)
Avatar van tomate Lid
Giant schreef:
maak van:
WHERE id='".$_POST['gebruiker']."'";
eens:
WHERE naam='".$_POST['gebruiker']."'";


Heb ik al geprobeert, werkt ook niet.

Ik hebt die or die toegevoegd nu krijg ik dit:
Access denied for user 'klas3alfa'@'82.197.131.22' (using password: NO)
Offline marvelade - 07/10/2007 10:51 (laatste wijziging 07/10/2007 11:09)
Avatar van marvelade Nieuw lid aaaaaaah dan is het omdat je geen verbinding kan maken met je databank. Die fout krijg je als ej een SQL query uit wil voeren zonder dat je credentials hebt opgegeven voor je d.b. connectie

doe aan het begin van elke pagina (slimste = stop dit in een include)


<?php
$dbh = mysql_connect ("localhost", "user", "pass") or die ('I cannot CONNECT TO the database because: ' . mysql_error());

mysql_select_db ("mijn_db") or die ('I cannot SELECT the database because: <br>' . mysql_error());

?>

en dan zou het moeten lukken.

nog een paar opmerkingkjes aan die code:

1)
if($query == TRUE)
je kan ook gewoon
if($query)

2)
Stop wat structuur in je query-opbouw:

$sql = "UPDATE gebruikers SET naam='".$_POST['naam']."',email='".$_POST['email']."',actief='".$_POST['actief']."',status='".$_POST['status']."' WHERE id='".$_POST['gebruiker']."'";

beter:

$sql = "UPDATE gebruikers SET ";
$sql.= "naam='".$_POST['naam']."',";
$sql.= "email='".$_POST['email']."',";
$sql.= "actief='".$_POST['actief']."',";
$sql.= "status='".$_POST['status']."' ";
$sql.= "WHERE id='".$_POST['gebruiker']."'";

3)
Echo je HTML tussen single quotes dan hoef je niet elke dubbele quote te escapen. Het enige nadeel is dat je je linebreaks wel tussen dubbele quotes moet concateneren. Ik zorg altijd dat ik een nieuwe echo begin na een "\n". Is ook logischer, dan zie je ook in je php code een nieuwe regel. (alhoewel ik ook zonder \n over ga naar nieuwe regels hoor, maar bij een \n altijd)

echo "De nieuwe wachtwoorden zijn niet hetzelfde.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";

beter:

echo 'De nieuwe wachtwoorden zijn niet hetzelfde.<br />'."\n";
echo '<a href="javascript:history.back()">&laquo; Ga terug</a>';


4)

NOOOOOOOOOOOOOIT een GET variabele rechtstreeks in je SQL gebruiken:

$sql = "DELETE FROM gebruikers WHERE id='".$_GET['del']."'";

ook niet als je eerst is_numeric toepaste. Iedereen kan dan door de url aan te passen alle gebruikers uit je databank knikkeren.

maak een variabele die je op vanalles checkt wat kwaad zou kunnen en zorg ook voor een standaard waarde als die GET variabele uit je url werd gehaald. Beter is altijd om in dergelijke gevallen in POST te werken, dat is minder transparant.

5)
Werk met mysql_fetch_assoc() ipv mysql_fetch_object()

while($rij = mysql_fetch_object($query)) {
$id = htmlspecialchars($rij->id);
$naam = htmlspecialchars($rij->naam);
echo "<option value=\"".$id."\">".$naam."</option>\n";
}

beter:

while($rij = mysql_fetch_assoc($query)) {
echo '<option value="' . $rij['id'] . '">' . $rij['naam'] . '</option>' . "\n";
}


greetz,
Marvelade
Offline tomate - 07/10/2007 11:17
Avatar van tomate Lid THX nu werkt het.   
Offline tomate - 07/10/2007 11:17
Avatar van tomate Lid THX nu werkt het.   
Offline marvelade - 07/10/2007 13:02
Avatar van marvelade Nieuw lid fijn dat te horen. Waar heb je dat script trouwens van gekopiëerd? staan heel wat onorthodoxe dingen in, mijn gedacht.

greetz,
GB
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s