webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > PHP

PHP Här diskuteras allt som har med scriptspråket PHP att göra.

Svar
 
Trådverktyg Visningsalternativ
Äldre 2012-04-27, 11:29   #1
kluringen
Medlem
 
kluringens avatar
 
Registrerad: 2011-07-16
Inlägg: 164
Lösningar: 0
Hjälp snälla, jag har kört fast

Jag vill permanent kunna ändra värden i en array

Testsnitten fugerar så här långt:
PHP-kod:
<?php
//hårdkodad dummy för test ersätts med variabel när min funktion fungerar
$aktfil 'yazx-fil.php';

include (
"z-tabell.php");

foreach(
$fil as $ind){
if(
$ind['namn'] == $aktfil)
{
// alla echo är bara för test, användare ska inte se något av detta
echo $ind['namn'];
echo 
", version ";
echo 
$ind['ver'];
$ind['ver']=$ind['ver']+1;
echo 
", ny version ";
echo 
$ind['ver'];
}
}
?>
z-tabell.php som jag hämtar med include
PHP-kod:
<?php
$fil
[0] ['namn'] = 'grupp1-fil.php';
$fil[0] ['ver'] = 1;

// totalt 17 tabellrader

$fil[17] ['namn'] = 'ezyx-fil.php';
$fil[17] ['ver'] = 1;
?>
Frid och fröjd, jag får det här resultatet ekat: yazx-fil.php, version 1, ny version 2
Nu vill jag ersätta den gamla z-tabbel.php med en ny som innhåller förändringen. Måste jag skriva om hela filen rad för rad och hur gör man det?
Har fösökt med fopen a+ men får inte till det. Tacksam för hjäp.

Tillägg:
Jag har kommit en bit på väg med att skriva rader. Får ut alla ['nam']= rätt värde och ['ver']= också rätt värde men får inte tabellen att se ut som den ska. "$fil [" tar den inte som en literal, inte den andra hakparentesn heller som ska omsluta ett indexnummer. Så det är väl stränghanteringen som är problemet som jag har kvar att lösa. Varken "]" eller "\]" gillar den. Sen vore det trevligt om jag kunde få radbrytningar så att den färdiga filen blir lättare att läsa och ändra i manuellt vid behov.
__________________
Mvh

Senast redigerad av kluringen, 2012-04-27 klockan 12:59 Anledning: Tillägg
kluringen besöker inte forumet just nu   Svara med citat
Äldre 2012-04-27, 18:16 Markerad som löst av kluringen   #2
kluringen
Medlem
 
kluringens avatar
 
Registrerad: 2011-07-16
Inlägg: 164
Lösningar: 0
Så här blev lösningen till slut

Man får visst inte säga fula ord på forumet. Synd, jag har massor att vräka ur mig om stränghanteringen i PHP. Man måste ha hökögon för att få till koden där där jag skriver rader. Tur att man inte behöver kladda i kod som är testad och fungerar.

PHP-kod:
<?php
$aktfil 
'yazx-fil.php'/*hårdkodad dummy för test */

include ("z-tabell.php");

$file fopen("z-tabell.php""w");
$nyrad fwrite($file"<?php ");
fclose($file);

$nyckel 0;

$file fopen("z-tabell.php""a+");


foreach(
$fil as $ind){
if(
$ind['namn'] == $aktfil)
{
if (
$ind['ver'] == 5)
$ind['ver']=1;
else
$ind['ver']=$ind['ver']+1;
}
$nyrad fwrite($file"\$fil"."[".$nyckel."]"."['namn'] = " ."'".$ind['namn']."'; ""\$fil"."[".$nyckel."]"."['ver'] = ".$ind['ver']."; " );

$nyckel $nyckel +1;

}
$nyrad fwrite ($file"?>");
fclose($file);
?>
__________________
Mvh
kluringen besöker inte forumet just nu   Svara med citat
Äldre 2012-04-27, 23:03   #3
nitro2k01
Forumvärd
 
nitro2k01s avatar
 
Registrerad: 2003-08-26
Inlägg: 7 469
Lösningar: 645
Farligt farligt...
Dagens kluring: Vad händer om exempelvis $ind['namn'] innehåller en enkelfnutt? Vad händer om en användare lyckas trycka in en enkelfnutt följt av giltig PHP-kod?
__________________
Gameboy Genius - Foto: Gatukonst och elektronikporr
Internklippning:
1) Snaggning av fångar.
2) Klippning frisörer emellan.
nitro2k01 besöker inte forumet just nu   Svara med citat
Äldre 2012-04-28, 08:27   #4
kluringen
Medlem
 
kluringens avatar
 
Registrerad: 2011-07-16
Inlägg: 164
Lösningar: 0
Citat:
nitro2k01 skrev: Visa inlägg
Farligt farligt...
Dagens kluring: Vad händer om exempelvis $ind['namn'] innehåller en enkelfnutt? Vad händer om en användare lyckas trycka in en enkelfnutt följt av giltig PHP-kod?
Det händer inte. Användare kommer inte åt att mixtra med filnamnen. Jag har bara öppnat en möjlighet för ett begräsat antal personer att ändra i vissa texter/textavsnintt. Se tillfällig test demo Så här ser z-skriv.php ut i färdigt skick:
PHP-kod:
<?php session_start();
$filnamn $_SESSION['filnamn'];
//hanterar versionsnummer

include ("z-tabell.php");

$file fopen("z-tabell.php""w");
$nyrad fwrite($file"<?php ");
fclose($file);

$nyckel 0;

$file fopen("z-tabell.php""a+");

foreach(
$fil as $ind){
if(
$ind['namn'] == $_SESSION['filnamn'])
{
if (
$ind['ver'] == 5)
$ind['ver']=1;
else
$ind['ver']=$ind['ver']+1;
$version $ind['ver'];
}
$nyrad fwrite($file"\$fil"."[".$nyckel."]"."['namn'] = " ."'".$ind['namn']."'; ""\$fil"."[".$nyckel."]"."['ver'] = ".$ind['ver']."; " );

$nyckel $nyckel +1;

}
$nyrad fwrite ($file"?>");
fclose($file);

//sparar en backup version
$backfil $_SESSION['sparfil']."-ver".$version.".php"/*filnamn med versionsnummer*/

$file fopen($backfil"w");
$innehall fwrite($file$_SESSION['sparversion']);
fclose($file);

//sparar ändringarna
$file fopen($filnamn"w");
$innehall fwrite($file$_POST['gruppsida']);
fclose($file);
header('Location: ' .$_SESSION['sida1']);
exit;
?>
Tabellen är till för arr hantera versionsnummer. Jag sparar upp till 5 gamla versioner när användarna ändrar något själva. Fnuttarna är ett H-E, jag har väldigt svårt för dem själv.
__________________
Mvh
kluringen besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > PHP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 17:34.


Powered by: vBulletin Version 3.8.6
Copyright © webForum