Risolto, grazie mille
- Home
- beetlejuice
- Post
beetlejuice
@beetlejuice
Post creati da beetlejuice
-
[Risolto] Compilazione file .c con ubuntu
Ciao a tutti, ho appena installato ubuntu 8.04 e ho provato a compilare un file .c estremamente banale ma ottengo l'errore:
provac.c
19: error: stdio.h: Nessun file o directory
provac.c: In function ?main?:
provac.c:5: warning: incompatible implicit declaration of built-in function ?printf?Informazioni aggiuntive:
- ho usato gedit per scrivere provac.c
- ho provato sia gcc provac.c sia cc provac.c
- provac.c è contenuto in una sottocartella della mia home
- ho installato ubuntu senza cd con wubi perchè ho il lettore fuori combattimento (la
procedura che ho seguito è descritta qui: ictv.it/file/vedi/710/come
installare-ubuntu-in-windows-con-wubi/)
Grazie mille per l'aiuto
-
Meccanismo di logout da un'area ristretta
Ciao a tutti, descrivo la questione. Devo implementare un meccanismo di
logout dall'area ristretta di un sito con php e avrei pensato ad un
sistema decisamente standard: se il login dell'utente va a buon fine, viene
settata la variabile di sessione $_SESSION["user"]; ogni pagina dell'area
ristretta controlla se $_SESSION["user"] esiste: se si, la pagina mostra
il proprio contenuto altrimenti ridirect al login. Tutte le pagine della
sezione ristretta presentano un link alla pagina logout.php che distrugge
la variabile $_SESSION["user"] ed esgue una redirect a index.php.
La struttura delle pagine dell'area ristretta è:[PHP]
<?phpif( !isset($_SESSION["user"] || $_SESSION["user"]!="logged" )
{
header('location:login.php');
exit();
}?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stric......-strict.dtd">
<html>
...html della pagina...
<a href="logout.php">logout</a>
.....
</html>
[/PHP]La pagina logout.php contiene solo le istruzioni php:
[PHP]
<?php
session_start();unset($_SESSION["user"]);
header('location:index.php');
?>
[/PHP]La domanda è: la pagina logout.php va bene anche così o deve
necessariamente distruggere la sessione con session_destroy? 1000 grazie -
RE: Eventuali istruzioni html dopo una redirect con header
D'accordo, allora il codice corretto sarebbe qualcosa del genere:
[php]
<?php
if( isset($_SESSION["user"]) )
{
header('location:altrapagina.php');
exit();
}?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stri......
<html>
...codice html di questa pagina...
[/php]
Ad ogni modo, il codice html di questa pagina che fine fa? Viene ignorato grazie alla exit pur non essendo incluso nello script php?
Grazie ancora -
Eventuali istruzioni html dopo una redirect con header
Ciao tutti, ho un dubbio che non sono riuscito a risolvere con la documentazione di php. Vi scrivo subito il codice:
[PHP]
<?php
if( isset($_SESSION["user"] )
header("location:altra_pagina.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stri......
<html>
...codice html di questa pagina...
[/PHP]
Come descritto nel codice, se $_SESSION["user"] esiste, l'utente viene spedito su di un'altra pagina. La domanda è: una volta eseguita la header,
il codice html di questa pagina che fine fa? Viene ugualmente caricato in qualche modo? Sarebbe più corretto racchiudere l'html in un else alternativo all'if? Alternativamente all'else avevo pensato di aggiungere una exit dopo la header ma non so se la exit causi l'interruzione dello script (cioè fino a ?> ) o la mancata esecuzione di qualunque cosa segua.
Grazie di nuovo, ciao -
Accesso all'area ristretta di un sito in presenza di SSL
Ciao a tutti, il problema è il seguente: devo realizzare un sito (con PHP) che include un'area ristretta e avrei pensato ad un meccanismo abbastanza banale per consentire o meno l'accesso all'area ristretta: pagina di login con nome utente e password; se il login va a buon fine, la pagina crea una variabile di sessione tipo $_SESSION["login-ok"]="login_ok" e manda l'utente alla prima pagina dell'area ristretta altrimenti errore.
Tutte le pagine della sezione ristretta controllano l'esistenza e il contenuto di $_SESSION["login-ok"] e, se è tutto ok, la pagina viene visualizzata altrimenti redirect al login. Sapendo che il sito sarà ospitato da un server che implementa il protocollo SSL, il meccanismo è abbastanza sicuro per un sito che, tutto sommato, non contiene nulla di così importante?Grazie mille per l'n-esima volta (con n sufficientemente grande).
-
RE: Unlink per la cancellazione dei file
Grazie per la pronta risposta Darkita ma sono un imbecille: la unlink funziona benissimo ma avevo dimenticato di incrementare il contatore del ciclo while che richiama la unlink sui nomi dei file da cancellare memorizzati in un array (che usa lo stesso contatore). E' che 90 volte su 100 uno usa il for e poi capitano ste cose. Grazie ancora e scusa per il tempo perso.
-
Unlink per la cancellazione dei file
Salve a tutti, ho problemi con la funzione unlink per la cancellazione dei file.
La situazione è questa: un form di upload permette all'utente di caricare i file che vengono spostati nella cartella giusta con la funzione move_uploaded_file. I nomi dei file caricati vengono registrati nella tabella "file" del db sql che associa ad ognuno di essi un identificatore univoco (auto increment). Prima di effettuare lo spostamento viene ovviamente generato un nuovo nome per il file (diverso da tutti gli altri) sfruttando l'auto increment generato dal db attraverso la funzione mysql_insert_id. Il nuovo nome viene salvato nella tabella "file". In termini di php:[PHP]$file_name=$_FILES["filename"]["name"];
$data=date("Y-m-d");$query="INSERT
INTO files (nome, nuovoNome, data)
VALUES ('$file_name', 'temp', '$data')";mysql_query($query) or die ("Query non valida: ".mysql_error());
$id=mysql_insert_id(); //auto increment generato dalla query precedente
$new_file_name=$id.$file_name;$query2="UPDATE files
SET nuovoNome='$new_file_name'
WHERE id='$id'";mysql_query($query2) or die ("Query non valida: ".mysql_error());
move_uploaded_file($_FILES["filename"]["tmp_name"], $dir.'/'.$new_file_name);[/PHP]
Fatto questo, se provo a cancellare uno qualunque dei file caricati con la funzione unlink(percorso/nuovoNome) non succede nulla. Il nuovoNome viene prelevato dalla tabella "file". Ho provato a usare sia il percorso assoluto sia quello relativo oppure a spostarmi nella cartella giusta con chdir e poi a invocare la unlink ma il risultato è sempre lo stesso.
Grazie mille per il vostro aiuto, ciao. -
Eventuali istruzioni dopo una redirect con header
Ciao a tutti, vi descrivo il problema:
ho realizzato una pagina php che presenta un form di autenticazione all'area ristretta del sito. L'utente inserisce nome utente e password e, cliccando sul pulsante log-in, i due campi vengono inviati alla stessa pagina che, collegandosi al db sottostante, verifica l'eventuale riscontro. Se il riscontro ha successo, viene eseguita una redirect che porta l'utente alla
prima pagina dell'area ristretta altrimenti l'utente rimane sulla pagina corrente che ripresenta il form di autenticazione accompagnato da un messaggio di errore.
Il codice php all'inizio della pagina è:[php] <?php
session_start();
//Se $_REQUEST["name"] e $_REQUEST["password"] esistono l'utente
//ha compilato il form perciò lancio la queryif( isset($_REQUEST["name"]) && isset($_REQUEST["password"]) )
{
$name=$_REQUEST["name"];
$pass=$_REQUEST["password"];$con=mysql_connect("localhost", "root", "") or die... mysql_select_db("mydb") or die ("Connessione al db impossibile...") $query="SELECT userName FROM users WHERE userName='$name' AND password='$pass'"; $result=mysql_query($query) or die ("Query non valida: ".mysql_error()); $row=mysql_fetch_array($result); if(mysql_num_rows($result)==0) $msg="Autenticazione fallita"; //Messaggio di errore per l'utente else { $_SESSION["user"]="Logged"; header('Location: area_ristretta.php'); } mysql_free_result($result); mysql_close($con);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01....
...Qui c'è il form di autenticazione che richiama questa stessa pagina...
</html>[/php]
La domanda è: quando viene eseguita la redirect attraverso la header, le istruzioni mysql_free_result($result); e mysql_close($con); vengono eseguite? Se si, vorrei sapere se si tratta di una pratica "eticamente corretta" (ovviamente potrei ripetere entrambe le istruzioni sia nell'if sia nell'else e buonanotte al secchio ma vorrei comunque avere chiarimenti riguardo al caso qui sopra).
Mille grazie per il vostro prezioso aiuto, ciao. -
RE: Prprietà firstChild dei DomNode nella libreria DOM
Ciao Sups,
ti sarò grato finchè campo! In questo modo riesco finalmente a estrarre tutti i
titoli dei film:<?php
$xml=new DOMDocument();
$xml->load('disordinato.xml');$movies=$xml->getElementsByTagName("movie");
for($i=0; $i<$movies->length; $i++)
{
$m = $movies->item($i);
$figli_m = $m->childNodes;
$t = $figli_m->item(1)->nodeValue;echo "<p>$t</p>\n";
}
?>Inizialmente la terza istruzione del ciclo era: $t = $figli_m->item(0)->nodeValue;
ma non visualizzava nulla come prima perciò ho chiesto l'item successivo ed ecco
che sono saltati fuori i titoli dei film. A questo punto credo che chiedere l'item
di indice 0 o il primo figlio con firstChild sia la stessa cosa ma non ho idea di cosa
sia esattamente restituito. La descrizione di firstChild su php.net è "the first child
of this node", vai a sapere.
Grazie ancora, mitico, ciao. -
RE: Prprietà firstChild dei DomNode nella libreria DOM
Grazie Sups, posso provare a usare la funzione childNodes sui vari film e a prelevare il primo elemento della lista restituita.
Grazie ancora, ciao. -
Prprietà firstChild dei DomNode nella libreria DOM
Ciao a tutti,
sto utilizzando la libreria DOM di php per manipolare i documenti xml ma ho
un problema con la proprietà firstChild degli oggetti DOMNode che non
riesco a risolvere. Vorrei pertanto chiedervi una mano. Vi riporto subito il
codice e poi siego il problema:<?php
$xml=new DOMDocument();
$xml->load('movies.xml');$movies=$xml->getElementsByTagName("movie"); for ($i = 0; $i < $movies->length; $i++) { $m=$movies->item($i); $t=$m->firstChild->nodeValue; echo "<p>$t</p>\n"; }
?>
Questo script apre il documento movies.xml (un elenco di film), preleva
tutti gli elementi "movie" e dovrebbe visualizzare i titoli di tutti i film
accedendo al primo figlio di ogni film (che è il titolo appunto).
Il problema è che il browser non si degna di visualizzare niente di niente,
nessun testo, nessun errore. Ho anche provato a copiare la lista dei film
restituita da getElementsByTagName in un array vero e proprio ma non è
cambiato niente. Non so più cosa inventarmi.
Vi ringrazio per l'aiuto, ciao