php – ¿REST_Controller con codeignaiter no funciona en cpanel?

Estoy probando REST_Controller en codeignaiter 3 para hacer una API rest, pero cuando lo subo a cPanel no me encuentra las rutas.
En la documentación dice que tengo que poner el dominio en el base_url en el archivo config.php pero no funciona.

introducir la descripción de la imagen aquí

Esta es mi ruta escrita en el archivo routes.php.

introducir la descripción de la imagen aquí

Este es mi controller.

introducir la descripción de la imagen aquí

Estos son mis archivos.

introducir la descripción de la imagen aquí

En el localhost funciona perfectamente y cuando creo una ruta que no dependa de la clase funciona, de antemano muchas gracias por su tiempo.

php – Fatal error: Uncaught Error: Object of class DateTime could not be converted to string

Saludos al intentar ingresar información en mi base de datos mediandte consultas preparadas en php PDO me genera los siguientes errores en primer lugar al intentar subir una imagen a una carpeta del servidor y su ruta a la bd y luego otro error al intentar pasar por bindvalue un objeto Datetime:

Warning: Undefined array key “imagen” in C:xampphtdocslacoroterapagar.php on line 37

Warning: Trying to access array offset on value of type null in C:xampphtdocslacoroterapagar.php on line 37

Fatal error: Uncaught Error: Object of class DateTime could not be converted to string in C:xampphtdocslacoroterapagar.php:106 Stack trace: #0 C:xampphtdocslacoroterapagar.php(106): PDOStatement->bindValue(‘:fecha_pago’, Object(DateTime), 2) #1 {main} thrown in C:xampphtdocslacoroterapagar.php on line 106

1  <?php 
   2  $nombre=!empty($_POST('nombre')) ? $_POST('nombre') : NULL;
   3  $apellido=!empty($_POST('apellido')) ? $_POST('apellido') : NULL;
   4  $letras=!empty($_POST('letras')) ? $_POST('letras') : NULL;
   5  $documento=!empty($_POST('documento')) ? $_POST('documento') : NULL;
   6  $banco=!empty($_POST('banco')) ? $_POST('banco') : NULL;
   7  $numero_cuenta=!empty($_POST('numero_cuenta')) ? $_POST('numero_cuenta') : NULL;
   8  $referencia=!empty($_POST('referencia')) ? $_POST('referencia') : NULL;
   9  $monto=!empty($_POST('monto')) ? $_POST('monto') : NULL;
   10 $imagen=!empty($_POST('imagen')) ? $_POST('imagen') : NULL;
   11 $estatus=1;
   12 
   13 
   14 session_start();
   15 include "./php/conexion.php";
   16 
   17 if(!isset($_SESSION('datos_logueo'))){
   18   $url="login.php?error=Para poder pagar su plan debe iniciar sesión o registrarse";
   19  
   20 }
   21 $idp=$_GET('id_plan');
   22 if( isset($_GET('id_plan'))){
   23   $sql="select * from planes where id_plan=".$_GET('id_plan');
   24   $resultado=$conexion->prepare($sql);
   25   $resultado->execute();
   26 
   27   while($fila=$resultado->fetch(PDO::FETCH_ASSOC)){
   28       
   29     $duracion = $fila('duracion');
   30
   31      
   32           
   33           $fecha = new DateTime();
   34           $fecha_venc = new DateTime();
   35           $fecha_venc->modify( sprintf( '%+d months', intval( $duracion ) ) );    
   38           $carpeta="./imagenes/capturaspagos/"; 
   37           $nombre_foto= $_FILES('imagen')('name');
   38           
   39           //imagen.algo.jpg
   40           $temp= explode( '.' ,$nombre_foto);
   41           $extension= end($temp);
   42       
   43           $nombrefinal = time().'.'.$extension;
   44           if(!empty($_FILES('imagen')('name'))){  
   45           if(mime_content_type($_FILES('imagen')('tmp_name')) =='image/png' || 
   46  mime_content_type($_FILES('imagen')('tmp_name'))=='image/jpeg'){
   47           if(move_uploaded_file($_FILES('imagen')('tmp_name'), $carpeta.$nombrefinal)){ 
   48           $sql1 = ("insert into pagos
   49             
 50(nombre,apellido,tipo_doc,documento,banco,numero_cuenta,referencia,fecha_pago,fecha_vencimiento,monto,51 imagen,
52                id_usuario,id_plan,id_estatus) values
53                54(:nombre,:apellido,:tipo_doc,:documento,:banco,:numero_cuenta,:referencia,:fecha_pago,:fecha_vencimient55 o,:monto,:imagen,:id_usuario,:id_plan,:estatus)");
56              $stmt=$conexion->prepare($sql1);
57              $stmt->bindValue(":nombre", $nombre,PDO::PARAM_STR);
58              $stmt->bindValue(":apellido", $apellido,PDO::PARAM_STR);
59              $stmt->bindValue(":tipo_doc", $letras,PDO::PARAM_STR);
60
61              $stmt->bindValue(":documento", $documento,PDO::PARAM_STR);
62              $stmt->bindValue(":banco", $banco,PDO::PARAM_STR);
63              $stmt->bindValue(":numero_cuenta", $numero_cuenta,PDO::PARAM_INT);
64              $stmt->bindValue(":referencia",$referencia,PDO::PARAM_INT);
65              $stmt->bindValue(":fecha_pago",$fecha,PDO::PARAM_STR);
66              $stmt->bindValue(":fecha_vencimiento",$fecha_venc,PDO::PARAM_STR);
67              $stmt->bindValue(":monto",$monto,PDO::PARAM_STR);
68              $stmt->bindValue(":imagen",$nombrefinal,PDO::PARAM_STR);
69              $stmt->bindValue(":id_usuario",$id,PDO::PARAM_INT);
70              $stmt->bindValue(":id_plan",$idp,PDO::PARAM_INT);
71              $stmt->bindValue(":estatus",1,PDO::PARAM_INT);
72              $stmt->execute();
73              $url="../index.php?success";        
74          //SI SE REALIZA LA SUBIDA REALIZO EL INSERT   
75        }else{
76          $url="planes.php?error=No se pudo subir la imagen"; 
77
78         }
79      
80      }else{
81       
82          $url="planes.php?error=Por favor subir imagen jpg o png";  
83        
84      } 
85    
86    }
87      
88      else{
89
90              $sql2 =("insert into pagos
91                92(nombre,apellido,tipo_doc,documento,banco,numero_cuenta,referencia,fecha_pago,fecha_vencimiento,monto,
93                id_usuario,id_plan,id_estatus) values
94                95(:nombre,:apellido,:letras,:documento,:banco,:numero_cuenta,:referencia,:fecha_pago,:fecha_vencimiento,96 :monto,:id_usuario,:id_plan,:estatus)");
97              $stmt2=$conexion->prepare($sql2);
98              $stmt2->bindValue(":nombre", $nombre,PDO::PARAM_STR);
99              $stmt2->bindValue(":apellido", $apellido,PDO::PARAM_STR);
100             $stmt2->bindValue(":tipo_doc", $letras,PDO::PARAM_STR);
101             $stmt2->bindValue(":documento", $documento,PDO::PARAM_STR);
102             $stmt2->bindValue(":banco", $banco,PDO::PARAM_STR);
103             $stmt2->bindValue(":numero_cuenta", $numero_cuenta,PDO::PARAM_INT);
104             $stmt2->bindValue(":referencia",$referencia,PDO::PARAM_INT);
105             $stmt2->bindValue(":fecha_pago",$fecha,PDO::PARAM_STR);
106             $stmt2->bindValue(":fecha_vencimiento",$fecha_venc,PDO::PARAM_STR);
107             $stmt2->bindValue(":monto",$monto,PDO::PARAM_STR);
108             $stmt2->bindValue(":id_isuario",$id,PDO::PARAM_INT);
109             $stmt2->bindValue(":id_plan",$idp,PDO::PARAM_INT);
110             $stmt2->bindValue(":estatus",1,PDO::PARAM_INT);
111             $stmt2->execute();
112             $url="../index.php?success";    
113     
114         }   
115        
116      }
117    }
118    ?>

HTML

<form action="pagar.php?id_plan=<?php echo $_GET('id_plan'); ?>" method="POST" enctype="multipart/form-data"> 
  <div class="form-row">
  <div class="form-group col-md-6">
      <label for="nombre">Nombre(s) del titular de la cuenta</label>
      <input type="text" class="form-control" maxlength="30"  id="nombre"  name="nombre" autocomplete="off"  placeholder="nombre del titular de la cuenta o nombre de la empresa si es juridica">
    </div>
    <div class="form-group col-md-6">
      <label for="apellido">Apellidos</label>
      <input type="text" class="form-control" maxlength="30"  id="apellido"  name="apellido" autocomplete="off" placeholder="apellido del titular de la cuenta">
    </div>
    <div class="form-group col-md-6">
    <label for="tipo_doc">Tipo de documento del titular de la cuenta</label>    
                <select name="tipo" class="form-control" onchange="cambia()">
                <option data-lenght="8" value="1">C.I.
                <option data-lenght="9" value="2">R.I.F
                <option data-lenght="10" value="3">Pasaporte
                </select>
                 </div>
                <div class="form-group col-md-6">
                <label for="tipo_doc">Prefijo del tipo de documento</label> 
                <select name="letras" id="letras" class="form-control">
                <option value="V">V
                <option value="E">E
                </select>
            </div>
            <div class="form-group col-md-6">
                <label for="documento">Documento</label>
                <input type="text" class="form-control"  maxlength="8" onkeyup="mascara(this,'.',patron1,true)" onkeypress="return ValidarNumeros(event)" autocomplete="off" name="documento" placeholder="escriba el número de cédula, rif ó pasaporte según sea el caso" id="documento" required>
            </div>
            <div class="form-group col-md-6">
            <label for="banco">Banco desde donde se hizo la transferencia</label>
            <select id="banco" class="form-control" name="banco" >
            <option selected></option>
            <option value="100% BANCO">100% BANCO
            <option value="ABN AMRO BANK">ABN AMRO BANK
            <option value="BANCAMIGA">BANCAMIGA 
            <option value="BANCO ACTIVO">BANCO ACTIVO 
            <option value="BANCO AGRICOLA">BANCO AGRICOLA
            <option value="BANCO BANESCO">BANCO BANESCO
            <option value="BANCO BICENTENARIO">BANCO BICENTENARIO
            <option value="BANCO CARONI">BANCO CARONI
            <option value="BANCO DE VENENEZUELA">BANCO DE VENENEZUELA 
            <option value="BANCO DEL CARIBE">BANCO DEL CARIBE 
            <option value="BANCO DEL TESORO">BANCO DEL TESORO
            <option value="BANCO ESPIRITO SANTO">BANCO ESPIRITO SANTO
            <option value="BANCO EXTERIOR">BANCO EXTERIOR
            <option value="BANCO INTERNACIONAL DE DESARROLLO">BANCO INTERNACIONAL DE DESARROLLO
            <option value="BANCO MERCANTIL">BANCO MERCANTIL
            <option value="BANCO NACIONAL DE CREDITO">BANCO NACIONAL DE CREDITO
            <option value="BANCO B.O.D">BANCO B.O.D
            <option value="BANCO PLAZA">BANCO PLAZA
            <option value="BANCO PROVINCIAL BBVA">BANCO PROVINCIAL BBVA
            <option value="BANCO VENEZOLANO DE CREDITO">BANCO VENEZOLANO DE CREDITO
            <option value="BANCRECER">BANCRECER 
            <option value="BANFANB">BANFANB
            <option value="BANGENTE">BANGENTE
            <option value="BANPLUS">BANPLUS
            <option value="CITIBANK">CITIBANK
            <option value="DELSUR">DELSUR
            <option value="FONDO COMUN">FONDO COMUN
            <option value="INSTITUTO MUNICIPAL DE CREDITO POPULAR">INSTITUTO MUNICIPAL DE CREDITO POPULAR
            <option value="MIBANCA">MIBANCA
            <option value="SOFITASA">SOFITASA
        </select>
        </div>
    <div class="form-group col-md-6">
      <label for="numero_cuenta">Número de cuenta del banco desde donde transfirió</label>
      <input type="text" class="form-control" maxlength="20" onkeypress="return ValidarNumeros(event)" id="numero_cuenta"  name="numero_cuenta" autocomplete="off"  placeholder="Número de cuenta del banco desde donde transfirió">
    </div>
    <div class="form-group col-md-6">
      <label for="referencia">Número de Referencia de la transferencia</label>
      <input type="text" class="form-control" maxlength="20" onkeypress="return ValidarNumeros(event)"  id="referencia"  name="referencia" autocomplete="off" placeholder="Número de cuenta del banco desde donde transfirió">
    </div>
    <div class="form-group col-md-6">
      <label for="monto">Monto de la transferencia</label>
      <input type="text" class="form-control"  id="monto" name="monto"  placeholder="Monto en Bs.S de la transferencia realizada">
    </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="imagen">Captura de la transferencia (Opcional)</label>
        <input type="file" name="imagen" id="imagen" class="form-control">
    </div>
  </div>
  <div class="form-group col-md-6" style="margin:0px 470px;">
<button class="primary-btn order-submit">Pagar</button>
</div>
</form>
                            
                    
                    
                  
                </div>
              </div>
            </div>

          </div>
        </div>
      </div>
    </div>  
            
                <div class="row">
                </div>
            
            </div>
        
        </div>
    

php – Change billing fullname with a custom field in Woocommerce emails

I using Checkout Field Editor for WooCommerce to make 25 custom field.
I have problem billing_fullname not show in customer details but show in billing address.
So i have thinking about a solution that i create another Name custom field.

I will hide my Name custom field using css in the frontend but i wondering how can i copy value in the billing_fullname into my custom field billing_name in the backend

Beside how can i hide billing details in Emails

I try remove some code in admin-new-order.php
But when remove customer details remove too

enter image description here

Created php page in wordpress – Error Page can not be reached

I want to create a folder within wordpress site at root and add a php page abc.php with simple code like
<?php echo "Test php page." ?>
But when I try to run this page like this http://mydomainname.com/Myfolder/abc.php
it gives error "This site can’t be reached"
Why it is not reading my php page. I did the same on my another domain and it is working fine.
Please help.

linux – Why does file traversal not working in this PHP file upload code?

I am using this script to upload file to the system with apache2 as server and php7.
If I provide filename as ../../../../tmp/data.png of uploaded file, then also the file gets uploaded to /var/up/data.png.

<?php                                                                                                                                                                                                                                 
    $errors = (); // Store errors here                                                                                                                                                                                                
                                                                                                                                                                                                                                      
    $fileName = $_FILES('the_file')('name');                                                                                                                                                                                          
    $fileSize = $_FILES('the_file')('size');                                                                                                                                                                                          
    $fileTmpName  = $_FILES('the_file')('tmp_name');                                                                                                                                                                                  
    $fileType = $_FILES('the_file')('type');                                                                                                                                                                                          
    $fileExtension = strtolower(end(explode('.',$fileName)));                                                                                                                                                                         
                                                                                                                                                                                                                                      
    if (isset($_POST('submit'))) {                                                                                                                                                                                                    
                                                                                                                                                                                                                                      
      if ($fileSize > 4000000) {                                                                                                                                                                                                      
        $errors() = "File exceeds maximum size (4MB)";                                                                                                                                                                                
      }

      if (empty($errors)) {
        $didUpload = move_uploaded_file($fileTmpName, "/var/up/". basename($fileName));

        if ($didUpload) {
          echo "The file " . basename($fileName) . " has been uploaded";
        } else {
          echo "An error occurred. Please contact the administrator.";
        }
      } else {
        foreach ($errors as $error) {
          echo $error . "These are the errors" . "n";
        }
      }

    }
    else{
        echo "Bruhh!";
        }
?>

I don’t understand why is this happening?

php – (eloquent de laravel) OrderBy provoca un doble sentencia (DESC & ASC)

Actualmente estoy usando lo siguiente: (Mi intento por mostrar de forma descendente)

Post::whereVisible(1)->wherePrivate(0)->OrderBy("desc")->limit(16)->get();

Pero devuelve el siguiente error:

SQLSTATE(42S22): Column not found: 1054 Unknown column 'desc' in 'order clause' (SQL: select * from `posts` where `visible` = 1 and `private` = 0 order by `desc` asc limit 16)

En la parte del order by se puede observar que tiene el “desc” pero al costado el “asc”. ¿El desc no deberia remplazar al asc?

Adicionalmente tambien intente con:

Post::whereVisible(1)->wherePrivate(0)->sortByDesc()->limit(16)->get();

Pero me devuelve el siguiente error:

BadMethodCallException
Call to undefined method IlluminateDatabaseEloquentBuilder::sortByDesc()

De igual forma lo intente con este:

Post::whereVisible(1)->wherePrivate(0)->sortDesc()->limit(16)->get()

Pero devuelve el siguien teerror:

BadMethodCallException
Call to undefined method IlluminateDatabaseEloquentBuilder::sortDesc()

Estos últimos dos métodos lo saque de la documentación de que anteriormente me sugieran seguir para crear sus consultas. Collections (Estoy usando laravel 8)

php – Adjusting a shortcode to use a custom fields data

On my WordPress website I use a shortcode in my functions.php that displays someone’s age based on their date of birth. The shortcode was taken from this blog post. This is the code:

function beliefmedia_determine_age($atts, $content = null) {
  extract( shortcode_atts( array(
    'dob' => '', /* See post for date formats */
    'date' => 0,
    'dateformat' => 'jS F Y' /* http://php.net/manual/en/function.date.php */
  ), $atts ) );
 
 if ($dob == '') $dob = $content;
 $age = ($content == null) ? floor((time() - strtotime($dob)) / 31556926) : floor((time() - strtotime($content)) / 31556926);
 return ($date) ? date($dateformat, strtotime($dob)) . ' (age: ' .  $age . ')' : $age;
}
add_shortcode('age', 'beliefmedia_determine_age');

It works fine, but I’m trying to edit it, so that the “$dob” is taken from an ACF “date picker” custom field, named “date_of_birth”.

From my research, I believe I need to use “get_field” somehow, but my very limited PHP knowledge is causing me to become stuck with how I incorporate this in to the shortcode above.

Any help would be massively appreciated.

php – Missing post when i switch language from default english to japan

I am using polylang. The default language is english then it displays the news section, but when I switch to JP (japan), the news section is missing.

$news = new WP_Query(‘category_name=news’);
while ( $news->have_posts() ) : $news->the_post();

if (in_category('news-lpga-jlpga')) {   
    $all .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat01', 'LPGA/JLPGA', get_the_title() );
    $cat01 .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat01', 'LPGA/JLPGA', get_the_title() );
} elseif (in_category('news-planning'))  { 
    $all .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat02', '企画', get_the_title() );
    $cat02 .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat02', '企画', get_the_title() );
} elseif (in_category('news-goods')) { 
    $all .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat03', '>グッズ', get_the_title() );
    $cat03 .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat03', '>グッズ', get_the_title() );
} elseif (in_category('new-fun-club'))  {
    $all .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat04', '>ファンクラブ', get_the_title() );
    $cat04 .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), 'cat04', '>ファンクラブ', get_the_title() );
} else {
    $all .= news_item(get_permalink(), get_the_date( 'Y.m.d' ), "http://wordpress.stackexchange.com/", "http://wordpress.stackexchange.com/", get_the_title() );
}

if(in_category('news-featured')){
    $featured_news .=
    '<a href="http://wordpress.stackexchange.com/" . get_permalink() ."http://wordpress.stackexchange.com/" style ="text-decoration: none;">
        <div class="news_card slide-item-h">
            <img  src="https://wordpress.stackexchange.com/" .  catch_that_image() ."http://wordpress.stackexchange.com/" style="width: 100%; height: auto" alt="http://wordpress.stackexchange.com/" />
            <div class="caption mt-4">
            <p class="news_caption text-muted" style = "font-size: 12px; font-family: Georgia;">' .  get_the_date( 'Y/m/d' ) .'</p>
            <h5 class="news_title " style = "font-size: 16px; font-style: normal; font-family: Cursive; color: #333333;">' .  get_the_title() .'</h5>
            </div>
        </div>
        </a>
    ';
}

endwhile;

php – Como realizar un programa para tienda de electrónica?

me han dejado programar este ejercicio, puede ser realizado en cualquier lenguaje de programación.

Yo lo comencé a hacer en Python.

Intenté realizar la parte de las fichas con un ciclo while, pero al momento de ejecutarlo simplemente se ejecutan todos los números hasta el 10, he estado investigando y tratando de acomodarlo, pero no encuentro un resultado óptimo.

Lo que me estaría haciendo falta es únicamente esa parte de las fichas que pide que se den por cada día. Pero como les menciono, no sé cómo asignarlas.

A continuación les dejo lo que llevo.

Espero me puedan apoyar, o dar algún consejo para intentarlo, muchas gracias.

print("~~~~~~~~~~~~~~~~~~~~")

print("~TIENDA ELECTRÓNICA~")

print("~~~~~~~~~~~~~~~~~~~~")


print("Datos personales")
nombre = input("Ingresa tu nombre: ")


print("n Menú de opciones:")

print("1. Impresora")

print("2. Laptop")

print("3. PC")

numero = int(input("n Introduce la opción deseada: " ))

cantidad = int(input("Introduce la cantidad de equipos para servicio: "))

costo = 300

iva = 1.16


X = 1

while X <= 10:

    print(X)

    X += 1  

    
if numero == 1:

    print(nombre, "elegiste servicio de Impresora ")

    print("Su costo de reparación por equipo es de ", costo, "n")

    costo *= cantidad

    print(nombre, "el costo subtotal de su servicio fue de ", costo)

    costo *= iva

    print("El costo total de su servicio fue de ", costo)


elif numero == 2:

    print(nombre, "elegiste servicio de Laptop ")

    costo += 400

    print("Su costo de reparación por equipo es de ", costo, "n")

    costo *= cantidad

    print(nombre, "el costo subtotal de su servicio fue de ", costo)

    costo *= iva

    print("El costo total de su servicio fue de ", costo)


elif numero == 3:

    print(nombre, "elegiste servicio de PC ")

    costo += 300

    print("Su costo de reparación por equipo es de ", costo, "n")

    costo *= cantidad

    print(nombre, "el costo subtotal de su servicio fue de ", costo)

    costo *= iva

    print("El costo total de su servicio fue de ", costo)


else:

    print("Esta opción no existe")
    

print("Fin.")

introducir la descripción de la imagen aquí

Mastering PHP procedural style – Code Review Stack Exchange

Thanks for contributing an answer to Code Review Stack Exchange!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.

To learn more, see our tips on writing great answers.