Ik zie iets over het hoofd maar wat.

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.055
Besturingssysteem
Wndows 10
Office versie
2016
Probeer een "Alert" dialog box te laten zien na dat de opdracht is uitgevoerd, maar op een of andere manier werkt het niet.

Wat zie ik over het hoofd.

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$ldate= date("d.m.Y---H.i");
$data = 'logbuch.txt';
$current = file_get_contents($data);
$schreiben=  $current;
$file= "logold.txt";
file_put_contents($file, $schreiben);
header('location: wartung.php');
  ?>
  <script type="text/javascript">
     alert("message successfully sent"); 
  </script>
  <?php

 // exit;
  ?>

Tot en met
PHP:
header('location: wartung.php');
gaat het goed maar dan??????

Iemand een tip
 
Dat een header je direct doorstuurt... ;)
Zie het alsof je tegen iemand praat, en het gesprek afmaakt en wegloopt. Waarna de 'ontvanger' je nog wat wil zeggen terwijl je al weg bent. Dat kan jij dan nooit meer ontvangen.

Maar waarom zou je een alert() willen tonen als je iemand doorstuurt. Dat bericht kan je toch prima tonen op je wartung.php?

En verder ALTIJD een exit; na een header. Je script moet ook stoppen namelijk.
 
Dankje PHP4U,

Heb het script verplaatst en de exit achter de header gezet.

Het beste kan ik dan het script onder de sumit knop zetten denk.
 
Nu heb ik het wel onder een knop gemaakt na een voorbeeld dat ik vond, krijg nu alleen geen melding.

PHP:
</form>
<form action="logmove.php">
<input type="submit" name="move" value="logbuch lössen" onclick=alert("message successfully sent");> 
</form>
 
Dit werkt beter.
Code:
<input type="submit" name="move" value="logbuch lössen" onclick="javascript:alert('message successfully sent');">
Maar zo een statische melding is gewoon bedrog. Want wat als de afhandeling stuk is? Dan schotel je de bezoekers valse informatie door.
Zorg liever voor een AJAX-request waarmee je kijkt of het script werkt. en zo niet, dan een melding teruggeeft.
 
Dankje PHP4U,

Ik ga dit proberen te maken.:thumb::thumb::thumb:
 
Prima, als je vragen hebt dan hoor ik het wel.
 
Voor dat ik mij op het AJAX gebeuren stort:eek: wilde ik nog wat toevoegen maar op een of andere manier klopt er iets niet.

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$ldate= date("d.m.Y---H.i");
$data = 'logbuch.txt';
if($_SERVER['REQUEST_METHOD']=="POST")
{
$inhalt='
'.$_POST["-------------------"].'
'.$_POST["Datum Eintragung---"].'
'.$_POST['$ldate'].'
'.$_POST["-------------------"].'
';
}
$current = file_get_contents($data);
$schreiben= ($inhalt, $current);
$file= "logold.txt";
file_put_contents($file, $schreiben);

//header('location: wartung.php');
exit;
?>

Op een andere site heb ik een soort gelijk script staat en deze vergeleken en zie dat alleen de namen anders zijn (moet ook)
maar verder kan ik niets vinden waarom de "$inhalt" niet word geprint in de "logold.txt file.

Ik krijg ook geen foutmelding.
 
Lijn 16 klopt niet. ( en ) gebruik je uitsluitend bij functies. En verder combineer je variabelen met een punt i.p.v een komma.
 
PHP4U & kenikavanbis,

Dank voor jullie hulp

De fout meldingen in regel 16 "Undefined variable" maar ik heb toch alles gedefinieerd.

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$ldate= date("d.m.Y---H.i");
$data = 'logbuch.txt';
if($_SERVER['REQUEST_METHOD']=="POST")
{
$inhalt='
'.$_POST["-------------------"].'
'.$_POST["Datum Eintragung---"].'
'.$_POST['$ldate'].'
'.$_POST["-------------------"].'
';
}
$current = file_get_contents($data);
$schreiben= [$inhalt. $current];
$file= "logold.txt";
file_put_contents($file, $schreiben);

//header('location: wartung.php');
exit;
?>

maar de gegevens van "$inhalt" worden niet naar "logold.txt" geschreven.
 
$schreiben= [$inhalt. $current];

Dit slaat nog steeds nergens op. Het is geen array wat je wilt gebruiken.
Vanwaar je gedachten om blokhaken te gebruiken? Of is het puur gokken, en hopen dat het werkt zonder de juiste syntax te kennen?

Er is ook een append-flag zodat je niet eerst de data op hoeft te halen, om vervolgens de nieuwe data eraan toe te voegen.
http://php.net/manual/en/function.file-put-contents.php, zie Example #2.
 
Laatst bewerkt:
$schreiben= [$inhalt. $current];

Dit slaat nog steeds nergens op. Het is geen array wat je wilt gebruiken.
Vanwaar je gedachten om blokhaken te gebruiken? Of is het puur gokken, en hopen dat het werkt zonder de juiste syntax te kennen?

Er is ook een append-flag zodat je niet eerst de data op hoeft te halen, om vervolgens de nieuwe data eraan toe te voegen.
http://php.net/manual/en/function.file-put-contents.php, zie Example #2.
Daar heb je volledig gelijk en ik had het maar kruislings gelezen.
(ik werk met een array en dan implodeer ik het naar een lijn maar ik denk dat dat het nog te hoog gegrepen is).
dus mijn vraag hoe stuur je je post en mag ik je form zien.(zolang je niets verstuurt zal er ook geen data worden opgeslagen).
vervolgens maak je een copy van je bestand en plaats het op een veilige plaats
...
PHP:
if($_SERVER['REQUEST_METHOD']=="POST"){
    $inhalt= "\n"."-------------------"."\n".
                "Datum Eintragung---"."\n".
                 date('M j Y - G:i:s')."\n".
                "-------------------"."\n".
                implode(',',$_POST) ."\n".
                "-------------------"."\n";
}
/*...
//hier controleren of de variable bestaat met isset() moet je maar uitzoeken wat het doet je kan ook kijken naar empty()
...*/
PHP:
$schreiben= $inhalt . $current ;


dit is mijn log klasse NU BEN JE ER NIET MEE maar later kan die je nog van pas komen
Code:
class LogFile{
	private	$Delimiter=',';
	private $filelocation;
	private $file;
	/** 
	 * @param mixed $pathname
	 * @param mixed $filelocation
	 * @return
	 */
	public function __construct($pathname,$fname){
		$this->filelocation=$pathname.$fname;
        if(!is_dir($pathname)&& $pathname!=""){mkdir($pathname);}
	}
	private function open($mode){
		return($this->is_readytouse()&& $this->file = fopen($this->filelocation,$mode)); //File!found E53 
	}
	function save_line($arrData,$extraTextDelemiter = '"',$mode='a+'){
		$datastring = @implode($extraTextDelemiter.$this->Delimiter.$extraTextDelemiter,$arrData);//space on the front is for search
		return ($this->open($mode)&& fputs($this->file, $extraTextDelemiter.$datastring.$extraTextDelemiter."\n"));
	}
	public function is_readytouse(){
		return(isset($this->filelocation));
	}
	function __destruct(){
		@fclose($this->file);
	}	 	
}
 
Een class in PHP is leuk, maar AtTwist heeft daar gezien zijn kennis nog niks aan.
 
Inderdaad is mijn kennis van PHP niet erg groot, daarom ziet het er in jullie ogen zeer knullig uit maar voor mij is gewoon "als het maar werkt".

Heb nu het script aan gepast naar
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
//$ldate= date("d.m.Y---H.i");
$data = 'logbuch.txt';
$current = file_get_contents($data);
if($_SERVER['REQUEST_METHOD']=="POST"){
    $inhalt= "\n"."-------------------"."\n".
                "Datum Eintragung---"."\n".
                 date('M j Y - G:i:s')."\n".
                "-------------------"."\n".
                implode(',',$_POST) ."\n".
                "-------------------"."\n";
}
$schreiben= $inhalt . $current;
$file= "logold.txt";
file_put_contents($file, $schreiben);

//header('location: wartung.php');
exit;
?>

Maar ook nu werkt het niet, wel het logbuch deel maar niet het "$inhalt" deel.



Code:
Login Systemadmin am--27-02-2016 07:40   
Login Systemadmin am--27-02-2016 11:45   
Login Systemadmin am--27-02-2016 17:00   
Login Systemadmin am--27-02-2016 18:14   
Login Systemadmin am--28-02-2016 09:32   
Login Systemadmin am--28-02-2016 10:54   
Login Systemadmin am--28-02-2016 13:06   
Login Systemadmin am--28-02-2016 18:27   
Login Systemadmin am--28-02-2016 18:35   
Login Systemadmin am--29-02-2016 14:49   
Login Systemadmin am--01-03-2016 10:33   
Login Systemadmin am--01-03-2016 12:30   
Login Systemadmin am--07-03-2016 18:07   
Login Systemadmin am--25-03-2016 14:16   
Login Systemadmin am--26-04-2016 18:01   
Login Systemadmin am--04-06-2016 10:42   
Login Wartung am--04-06-2016 11:26   
Login Wartung am--04-06-2016 12:14   
Login Wartung am--04-06-2016 16:53   
Login Wartung am--04-06-2016 19:01   
Login Wartung am--05-06-2016 09:02   
Login Systemadmin am--05-06-2016 09:56   
Login Wartung am--05-06-2016 10:15   
Login Systemadmin am--06-06-2016 10:04   
Login Systemadmin am--06-06-2016 17:08
 
Laatst bewerkt:
Met andere woorden: hij logged niks?

ga eens debuggen met echo, en kijk eens wat $inhalt en $current voor inhoud bevatten.
Maar waarom gebruik je niet de APPEND-FLAG zoals ik al heb beschreven?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan