- D1Rect: Nagy "hülyétkapokazapróktól" topik
- hdanesz: Hyundai Ioniq 28kWh - Első benyomások - második felvonás
- btz: Internet fejlesztés országosan!
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- koxx: Bloons TD5 - Tower Defense játék
- sziku69: Szólánc.
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sto1911: Pinball FX3 PH! verseny
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Használd a stripslashes() függvényt ott, ahol a kiíratást elvégzed, és ha jól csinálod, megvagy.
-
DviDee
csendes tag
Azt még hozzáfűzném a problémámhoz, hogy ez írja ki:
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE9 0x63 0x73 0x2C in /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php on line 6
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: w="0" mobile_zipped="1" row="0" section="0" ><forecast_information><city data="P in /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php on line 6
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php on line 6
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php:6 Stack trace: #0 /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php(6): SimpleXMLElement->__construct('<?xml version="...') #1 /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php(31): getWeather() #2 {main} thrown in /mnt/storage/virtual/domain.hu/htdocs/T/a/weather.php on line 6
-
Sk8erPeter
nagyúr
Legegyszerűbb, ha checkbox-ok formájában jeleníted meg az összes fájlt, így többet is tudsz törölni. A következő módon képzeltem el (a könyvtár nevénél az általad írt nevet használtam fel):
legyen a megjelenítésért felelős fájl az index.php
index.php :<?php
session_start(); //sessiont indítunk
header('Content-Type: text/html; charset=utf-8'); //karakterkódolás
$dir = opendir("../ahol_torlok"); //könyvtár beállítása
while(false !== ($file = readdir($dir))){
if (strpos($file, '.txt',1)){
$file_array[]=$file; //fájlnév eltárolása tömbben
}
}
?>
<html>
<head><title>Txt-törlő</title></head>
<body>
<?php
if( isset($_SESSION['message']) ){ //ha létezik a változó, vagyis van törlésről szóló üzenet (siker vagy hiba)
echo $_SESSION['message']; //kiírjuk
unset($_SESSION['message']); //kiírás után töröljük
}
?>
<form method="post" action="torles.php">
<?php
//=0;
foreach($file_array as $i=>$file_to_delete)
echo '<input type="checkbox" name="file_select[]" value="'.$file_to_delete.'" id="'.$i.'" />'.$file_to_delete.'<br />';
?>
<input type="submit" name="del_files" value="Kép feltöltése" onclick="return confirm('Biztos, hogy törlöd a kijelölt fájlokat?')" style="height:50px;margin:20px;" />
</form>
</body>
</html>És legyen egy torles.php (az index.php-vel azonos könyvtárban), amelyik fájlba az űrlapot átirányítod, és amivel törlöd a kijelölt fájlokat (ez a feldolgozó fájl):
torles.php :
<?php
if( isset($_POST['del_files']) )
{
session_start();
$_SESSION['message']=''; //hibaüzenetekre és sikert jelző üzenetekre
$dir='../ahol_torlok';
foreach($_POST['file_select'] as $index=>$name_of_file){
$name_of_file=stripslashes($name_of_file);
if(true === unlink( $dir.'/'.$name_of_file ) )
$_SESSION['message'].=($index+1).'. sikeres törlés! A "'.$name_of_file.'" nevű fájl törlése sikeresen megtörtént! <br />';
else
$_SESSION['message'].=($index+1).'. Hiba! A "'.$name_of_file.'" nevű fájl törlése meghiúsult! <br />';
}
}
//Átirányítás az eredeti oldalra
header('Location: index.php');
?>Persze esetleg a fájlnevekre még be lehetne tenni valami ellenőrzést, de ezzel most nem foglalkoztam. De mivel pl. az idézőjel nem megengedett a fájlnévben, ezért nem lesz probléma.
Természetesen előtte kipróbáltam, működik.
Ha valami nem világos, kérdezz.
Remélem sokat segítettem. -
Sk8erPeter
nagyúr
Hű, kicsit túlbonyolítod.
<html>
<head>
<title>Üdv az oldalamon! - <?php
switch ($_GET['KV'])
{
case 'kapcsolat': echo 'Kapcsolat'; $oldal='pages/contact.php'; break;
case 'rolam' : echo 'Rólam'; $oldal='pages/my.php'; break;
default : echo 'Főoldal'; $oldal='pages/home.php'; break;
}
?>
</title>
</head>
<body>
<?php
if( is_file($oldal) )
include_once($oldal);
else echo 'Nincs ilyen fájl!';
?>
</body>
</html>Még nyilván ennél van szebb megoldás, de most elsőre ez jutott eszembe.
-
Tele von Zsinór
őstag
-
Tele von Zsinór
őstag
-
1ed
csendes tag
A FILE_TEXT-re ezt írja: 'This flag is only available since PHP 6.' Szal az szerintem nem is kell. Illetve lemaradt egy ' a fájlnév után.
file_put_contents('../levelek/mails.txt', $to.$subject.$msg.$mailheaders."\n\n", FILE_APPEND);
Ez a rész: '../levelek/mail-'.date("Y-m-d-His",time()) mindig új fájlnevet generál az aktuális időből, szal ha egy fájlba akarod akkor ez nem jó.
-
1ed
csendes tag
Akkor mondjuk:
file_put_contents('../levelek/mail-'.date("Y-m-d-His",time()), $to.$subject.$msg.$mailheaders, FILE_TEXT);
A mail ($to, $subject, $msg, $mailheaders); helyére.
Persze még ki lehet egészíteni hibaellenőrzéssel és valami random számot is lehet belerakni hogy biztos ne legyenek egyforma nevű fájlok, vagy lehet egy fájlba is menteni.http://www.php.net/manual/en/function.file-put-contents.php
http://www.php.net/manual/en/function.fwrite.php -
PazsitZ
addikt
A head tag, de még a <html> tag is (bármely html elem) azonnal kiírandó input.
A session-t rakd be a fő fájlod legelejére.
(A session_start elé max. PHP parancsok kerülhetnek, amelyek nem írnak az outputra, de többnyire még így is szinte mindig legelöl helyezkedik el)1: <?PHP
2: session_start();
3: ?>
4: <html>
5: <head>
6: </head>
7: <body>
8: <?PHP include 'mail.php'; ?>
9: ... -
cucka
addikt
Na lássuk.
Ha elolvasod a hibaüzenetet, akkor kiderül, hogyoutput started at /mnt/storage/www/virtual/.../index.php:8
Itt írtál ki először valamit a script kimenetére, ekkor a php létrehozta a http header-t. (Korábban ezt már leírtam)
in /mnt/storage/www/virtual/.../mail.php on line 3
Itt próbálod meghívni a session_start()-ot. Ez az előző kódsor után fut le.
Ennél jobban nem tudom elmagyarázni, bocs.
-
ArchElf
addikt
Ugye...
1) mentettél is
2a) nem inline a php kódod, hanem <?php val kezdődik a fájl, és az első sor a session_start();
2b) ha inline de mégsem az első, ugye az include-olt fájlok is BOM nélkül vannak mentve, és nem inline-osak, és nincs bennük egy szem kimenetre írás sem.AE
-
cucka
addikt
A hibaüzenet azt jelenti, hogy a session_start kiírtál valamit az output-ra. Ez lehet egy egyszerű print, vagy egy szóköz a <?php tag előtt, esetleg a szövegszerkesztőd a file elejére illeszti a BOM-ot, tehát azt kapcsold ki.
Ha valakit mélyebben érdekel: a php a http válasz fejlécét akkor hozza létre, amikor először kikerül valami a programod standard kimenetére. Bármilyen, a http fejléceket módosító függvényt csak ez előtt lehet meghívni. Ilyen például a header(), a session_start() vagy a setcookie() függvény is.
-
Tele von Zsinór
őstag
[...]
if ($_POST[op] != "ds") {
$a = rand(1,9);
$b = rand(1,9);
$_SESSION['c']=$a+$b;
echo "<form method=\"post\" action=\"$PHP_SELF\">
<p><strong>Your name:</strong><br>
<input type=\"text\" name=\"name\" size=30 value=\"$_POST['name']\"</p>
<p><strong>Your email:</strong><br>
<input type=\"text\" name=\"email\" value=\"$_POST['email']\"size=30</p>
<p>$a + $b = <br>
<input type=\"text\" name=\"szam\" value=\"$_POST['szam']\"size=30</p>
<p><strong>Comments:</strong><br>
<textarea name=\"comments\" cols=30 rows=5 wrap=virtual>$_POST['comments']</textarea></p>
<input type=\"hidden\" name=\"op\" value=\"ds\">
<p><input type=\"submit\" name=\"submit\" value=\"Mehet\"></p></font>
</form>";
} [...]
Új hozzászólás Aktív témák
Hirdetés
- Hívószám-hamisítás
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- One otthoni szolgáltatások (TV, internet, telefon)
- Sütés, főzés és konyhai praktikák
- Végleg lenyomta a tévét a streaming az USA-ban
- NBA és kosárlabda topic
- Viccrovat
- Pokoli repetát hoz az új GeForce driver
- SSD kibeszélő
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- Szerezd meg a tökéletes házat most!
- BESZÁMÍTÁS! Gigabyte A620M R5 7600 32GB DDR4 512GB SSD RTX 5060 Ti 16GB Zalman i3 NEO Enermax 650W
- Huawei Nova Y90 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S23 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo Thinkpad T14 üzleti i5-10310u 10th gen. 8-32Gb RAM 256GB-1TB SSD gar.
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged