TRUNCATE TABLE privileges

Status
Niet open voor verdere reacties.

Radio247

Gebruiker
Lid geworden
8 dec 2011
Berichten
31
Ik ben lekker op weg naar de laatste afwerkingen bij de herbouw van een website voor een hobby webradio station.
Voor het indienen van verzoeknummers is er een weer werkend systeem, hierbij wordt er in een sql bijgehouden hoeveel verzoekjes iemand heeft aangevraagd.
Deze tabel kan door de betreffende presentator worden geleegd, helaas lijkt alles te werken behalve dat het ook wordt uitgevoerd.
Zoeken heeft mij opgeleverd dat het mogelijk met SQL privileges te maken kan hebben hoewel ik geen enkele melding hierover zie.
Is er iemand die mij op weg kan helpen?

Onderstaand de basis van het systeem zoals ik het nu heb.

PHP:
<?php
include '../../connect.php';

function controleLOG() {
 if(confirm('Zeker weten dat je het LOG wilt legen? Iedereen kan dan weer verzoekjes aanvragen!'))
  {
  location == 'leeglog.php?deletelog';
  }
}
?>
<form action="leeglog.php" method="POST" style="padding: 0">
<?php
    # Delete logfile
    if(isset($_GET['deletelog']))
    {
        $del = "TRUNCATE TABLE verzoekjes_log";
        $result = mysqli_query($conn, $del);
    }
?>

			<table width="100%" border="0" cellpadding="0" cellspacing="5" bgcolor="#DEDEDE">
			  <tr>
				<td height="35"><center>
				  <font color="#000000" size="2" face="Verdana">
<input type="button" onClick="controleLOG()" value="Leeg LOG-file" style="font-family: Arial; font-size: 8pt">&nbsp;
				</td>
			  </tr>
			</table>
 
Je vraagt nu of mysqli de query moet uitvoeren, maar je vraagt nergens of die bevestiging kan geven.
Dus bouw foutafhandeling in. Altijd doen!
Code:
<?php
    if(isset($_GET['deletelog']))
    {
        $del = "TRUNCATE TABLE verzoekjes_log";
        $result = mysqli_query($conn, $del);
        if($result === false) {
         echo "Het verwijderen is niet gelukt: ".mysqli_error($conn);
        } else {
         echo "Het verwijderen van de verzoeken-tabel is gelukt";
        }
    }
?>

Verder denk ik eerder dat de fout er eerder in zet dat je POST en GET op een opmerkelijke maner gebruikt.
Je kan prima een enkele POST gebruiken, en en de knop voorzien van een een confirm.

PS: <font>-tags en <tables> zijn behoorlijk oud.
Stap liever over naar CSS-stylesheets voor meer flexibiliteit in je het stylen van je site.
 
truncate werkt weer

Hoe het gekomen is snap ik even niet maar het script werkt weer als vanouds.

De confirm had ik geheel bovenaan staan en werkte hier aldoor netjes.
De uitvoering daarna werkt nu gelukkig ook weer.

De gehele opmaak uit de scripts werken is een punt waar ik nog mee beginnen moet, de prioriteit was om eerst de site weer werken te krijgen.

Hartelijk dank voor het meedenken.
 
Code:
<?php
    # Delete logfile
    if(isset($_GET['deletelog']))
    {
Dit zal denk ik $_POST zijn
Afhankelijk van de rest van de php zou iedereen met www.example.nl/deletelog= deze functie kunnen uitvoeren.

<font>-tags en <tables> zijn behoorlijk oud
Bovenaan in de html moet altijd een doctype staan. Als dit <!DOCTYPE html> is, dan zijn bijvoorbeeld <font> <center> face="..." color="..." en bgcolor="..." niet toegestaan. De complete lijst die niet mag worden gebruikt vind je bij 13.2 op https://dev.w3.org/html5/pf-summary/obsolete.html#non-conforming-features
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan